chore: add prettier with config and format all files
This commit is contained in:
@@ -1,12 +1,6 @@
|
||||
'use client';
|
||||
|
||||
import React, {
|
||||
createContext,
|
||||
useCallback,
|
||||
useContext,
|
||||
useEffect,
|
||||
useState,
|
||||
} from 'react';
|
||||
import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
|
||||
import type { TimeRange, TimeMode, TriggeredAlert } from './types';
|
||||
import { TIME_RANGE_MS } from './types';
|
||||
import { checkAlerts } from './api';
|
||||
@@ -14,15 +8,15 @@ import { buildReverseMap } from './localization';
|
||||
import type { LocaleMap, ReverseMap } from './localization';
|
||||
|
||||
interface AppContextValue {
|
||||
timeRange: TimeRange;
|
||||
setTimeRange: (r: TimeRange) => void;
|
||||
timeMode: TimeMode;
|
||||
setTimeMode: (m: TimeMode) => void;
|
||||
timeRange: TimeRange;
|
||||
setTimeRange: (r: TimeRange) => void;
|
||||
timeMode: TimeMode;
|
||||
setTimeMode: (m: TimeMode) => void;
|
||||
triggeredAlerts: TriggeredAlert[];
|
||||
refreshAlerts: () => Promise<void>;
|
||||
getFromTo: () => { from: string; to: string };
|
||||
localeMap: LocaleMap;
|
||||
reverseMap: ReverseMap;
|
||||
refreshAlerts: () => Promise<void>;
|
||||
getFromTo: () => { from: string; to: string };
|
||||
localeMap: LocaleMap;
|
||||
reverseMap: ReverseMap;
|
||||
}
|
||||
|
||||
const AppContext = createContext<AppContextValue | null>(null);
|
||||
@@ -32,18 +26,18 @@ export function AppProvider({
|
||||
localeMap,
|
||||
children,
|
||||
}: {
|
||||
token: string;
|
||||
token: string;
|
||||
localeMap: LocaleMap;
|
||||
children: React.ReactNode;
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
const [timeRange, setTimeRange] = useState<TimeRange>('6h');
|
||||
const [timeMode, setTimeMode] = useState<TimeMode>('real');
|
||||
const [timeRange, setTimeRange] = useState<TimeRange>('6h');
|
||||
const [timeMode, setTimeMode] = useState<TimeMode>('real');
|
||||
const [triggeredAlerts, setTriggeredAlerts] = useState<TriggeredAlert[]>([]);
|
||||
|
||||
const reverseMap = buildReverseMap(localeMap);
|
||||
|
||||
const getFromTo = useCallback(() => {
|
||||
const to = new Date();
|
||||
const to = new Date();
|
||||
const from = new Date(to.getTime() - TIME_RANGE_MS[timeRange]);
|
||||
return { from: from.toISOString(), to: to.toISOString() };
|
||||
}, [timeRange]);
|
||||
@@ -54,20 +48,30 @@ export function AppProvider({
|
||||
|
||||
useEffect(() => {
|
||||
let cancelled = false;
|
||||
const poll = () => checkAlerts().then(a => { if (!cancelled) setTriggeredAlerts(a); });
|
||||
const poll = () =>
|
||||
checkAlerts().then((a) => {
|
||||
if (!cancelled) setTriggeredAlerts(a);
|
||||
});
|
||||
poll();
|
||||
const id = setInterval(poll, 30_000);
|
||||
return () => { cancelled = true; clearInterval(id); };
|
||||
return () => {
|
||||
cancelled = true;
|
||||
clearInterval(id);
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<AppContext.Provider
|
||||
value={{
|
||||
timeRange, setTimeRange,
|
||||
timeMode, setTimeMode,
|
||||
triggeredAlerts, refreshAlerts,
|
||||
timeRange,
|
||||
setTimeRange,
|
||||
timeMode,
|
||||
setTimeMode,
|
||||
triggeredAlerts,
|
||||
refreshAlerts,
|
||||
getFromTo,
|
||||
localeMap, reverseMap,
|
||||
localeMap,
|
||||
reverseMap,
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
@@ -80,4 +84,4 @@ export function useApp() {
|
||||
const ctx = useContext(AppContext);
|
||||
if (!ctx) throw new Error('useApp must be used within AppProvider');
|
||||
return ctx;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user