Fix linter and fix lint issues (#10141)

This commit is contained in:
Nicolas Mowen
2024-02-28 15:23:56 -07:00
committed by GitHub
parent b6ef1e4330
commit 3bf2a496e1
63 changed files with 527 additions and 418 deletions

View File

@@ -7,7 +7,7 @@ export function useResizeObserver(...refs: MutableRefObject<Element | null>[]) {
height: 0,
x: -Infinity,
y: -Infinity,
})
}),
);
const resizeObserver = useMemo(
() =>
@@ -16,7 +16,7 @@ export function useResizeObserver(...refs: MutableRefObject<Element | null>[]) {
setDimensions(entries.map((entry) => entry.contentRect));
});
}),
[]
[],
);
useEffect(() => {

View File

@@ -1,9 +1,12 @@
import { FilterType } from "@/types/filter";
import { useMemo, useState } from "react";
type useApiFilterReturn<F extends FilterType> = [
filter: F | undefined,
setFilter: (filter: F) => void,
searchParams: {
// accept any type for a filter
// eslint-disable-next-line @typescript-eslint/no-explicit-any
[key: string]: any;
},
];

View File

@@ -13,12 +13,12 @@ type useCameraActivityReturn = {
};
export default function useCameraActivity(
camera: CameraConfig
camera: CameraConfig,
): useCameraActivityReturn {
const [activeObjects, setActiveObjects] = useState<string[]>([]);
const hasActiveObjects = useMemo(
() => activeObjects.length > 0,
[activeObjects]
[activeObjects],
);
const { payload: detectingMotion } = useMotionActivity(camera.name);
@@ -56,7 +56,7 @@ export default function useCameraActivity(
}
}
}
}, [event, activeObjects]);
}, [camera, event, activeObjects]);
return {
activeTracking: hasActiveObjects,

View File

@@ -6,7 +6,7 @@ import { LivePlayerMode } from "@/types/live";
export default function useCameraLiveMode(
cameraConfig: CameraConfig,
preferredMode?: string
preferredMode?: string,
): LivePlayerMode | undefined {
const { data: config } = useSWR<FrigateConfig>("config");
@@ -18,7 +18,7 @@ export default function useCameraLiveMode(
return (
cameraConfig &&
Object.keys(config.go2rtc.streams || {}).includes(
cameraConfig.live.stream_name
cameraConfig.live.stream_name,
)
);
}, [config, cameraConfig]);
@@ -32,10 +32,12 @@ export default function useCameraLiveMode(
}
return undefined;
// config will be updated if camera config is updated
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [cameraConfig, restreamEnabled]);
const [viewSource] = usePersistence<LivePlayerMode>(
`${cameraConfig.name}-source`,
defaultLiveMode
defaultLiveMode,
);
if (

View File

@@ -3,7 +3,7 @@ import { ReviewSegment } from "@/types/review";
export const useEventUtils = (
events: ReviewSegment[],
segmentDuration: number
segmentDuration: number,
) => {
const isStartOfEvent = useCallback(
(time: number): boolean => {
@@ -12,7 +12,9 @@ export const useEventUtils = (
return time >= segmentStart && time < segmentStart + segmentDuration;
});
},
[events, segmentDuration]
// we know that these deps are correct
// eslint-disable-next-line react-hooks/exhaustive-deps
[events, segmentDuration],
);
const isEndOfEvent = useCallback(
@@ -25,21 +27,23 @@ export const useEventUtils = (
return false;
});
},
[events, segmentDuration]
// we know that these deps are correct
// eslint-disable-next-line react-hooks/exhaustive-deps
[events, segmentDuration],
);
const getSegmentStart = useCallback(
(time: number): number => {
return Math.floor(time / segmentDuration) * segmentDuration;
},
[segmentDuration]
[segmentDuration],
);
const getSegmentEnd = useCallback(
(time: number): number => {
return Math.ceil(time / segmentDuration) * segmentDuration;
},
[segmentDuration]
[segmentDuration],
);
const alignEndDateToTimeline = useCallback(
@@ -48,16 +52,16 @@ export const useEventUtils = (
const adjustment = remainder !== 0 ? segmentDuration - remainder : 0;
return time + adjustment;
},
[segmentDuration]
[segmentDuration],
);
const alignStartDateToTimeline = useCallback(
(time: number): number => {
const remainder = time % segmentDuration;
const adjustment = remainder === 0 ? 0 : -(remainder);
const adjustment = remainder === 0 ? 0 : -remainder;
return time + adjustment;
},
[segmentDuration]
[segmentDuration],
);
return {

View File

@@ -37,7 +37,7 @@ function useDraggableHandler({
e.stopPropagation();
setIsDragging(true);
},
[setIsDragging]
[setIsDragging],
);
const handleMouseUp = useCallback(
@@ -48,7 +48,7 @@ function useDraggableHandler({
setIsDragging(false);
}
},
[isDragging, setIsDragging]
[isDragging, setIsDragging],
);
const handleMouseMove = useCallback(
@@ -90,13 +90,13 @@ function useDraggableHandler({
visibleTimelineHeight - timelineTop + parentScrollTop,
Math.max(
segmentHeight + scrolled,
e.clientY - timelineTop + parentScrollTop
)
e.clientY - timelineTop + parentScrollTop,
),
);
const segmentIndex = Math.floor(newHandlePosition / segmentHeight);
const segmentStartTime = alignStartDateToTimeline(
timelineStart - segmentIndex * segmentDuration
timelineStart - segmentIndex * segmentDuration,
);
if (showHandlebar) {
@@ -105,7 +105,7 @@ function useDraggableHandler({
thumb.style.top = `${newHandlePosition - segmentHeight}px`;
if (currentTimeRef.current) {
currentTimeRef.current.textContent = new Date(
segmentStartTime * 1000
segmentStartTime * 1000,
).toLocaleTimeString([], {
hour: "2-digit",
minute: "2-digit",
@@ -116,12 +116,14 @@ function useDraggableHandler({
if (setHandlebarTime) {
setHandlebarTime(
timelineStart -
(newHandlePosition / segmentHeight) * segmentDuration
(newHandlePosition / segmentHeight) * segmentDuration,
);
}
}
}
},
// we know that these deps are correct
// eslint-disable-next-line react-hooks/exhaustive-deps
[
isDragging,
contentRef,
@@ -129,7 +131,7 @@ function useDraggableHandler({
showHandlebar,
timelineDuration,
timelineStart,
]
],
);
useEffect(() => {
@@ -141,6 +143,8 @@ function useDraggableHandler({
block: "center",
});
}
// temporary until behavior is decided
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return { handleMouseDown, handleMouseUp, handleMouseMove };

View File

@@ -2,7 +2,7 @@ import { useCallback, useEffect } from "react";
export default function useKeyboardListener(
keys: string[],
listener: (key: string, down: boolean, repeat: boolean) => void
listener: (key: string, down: boolean, repeat: boolean) => void,
) {
const keyDownListener = useCallback(
(e: KeyboardEvent) => {
@@ -15,7 +15,7 @@ export default function useKeyboardListener(
listener(e.key, true, e.repeat);
}
},
[listener]
[keys, listener],
);
const keyUpListener = useCallback(
@@ -29,7 +29,7 @@ export default function useKeyboardListener(
listener(e.key, false, false);
}
},
[listener]
[keys, listener],
);
useEffect(() => {
@@ -39,5 +39,5 @@ export default function useKeyboardListener(
document.removeEventListener("keydown", keyDownListener);
document.removeEventListener("keyup", keyUpListener);
};
}, [listener]);
}, [listener, keyDownListener, keyUpListener]);
}

View File

@@ -12,7 +12,9 @@ export default function useOverlayState(key: string) {
newLocationState[key] = value;
navigate(location.pathname, { state: newLocationState });
},
[navigate]
// we know that these deps are correct
// eslint-disable-next-line react-hooks/exhaustive-deps
[key, navigate],
);
const overlayStateValue = location.state && location.state[key];

View File

@@ -9,7 +9,7 @@ type usePersistenceReturn<S> = [
export function usePersistence<S>(
key: string,
defaultValue: S | undefined = undefined
defaultValue: S | undefined = undefined,
): usePersistenceReturn<S> {
const [value, setInternalValue] = useState<S | undefined>(defaultValue);
const [loaded, setLoaded] = useState<boolean>(false);
@@ -23,7 +23,7 @@ export function usePersistence<S>(
update();
},
[key]
[key],
);
useEffect(() => {

View File

@@ -4,13 +4,13 @@ import { ReviewSegment } from "@/types/review";
export const useSegmentUtils = (
segmentDuration: number,
events: ReviewSegment[],
severityType: string
severityType: string,
) => {
const getSegmentStart = useCallback(
(time: number): number => {
return Math.floor(time / segmentDuration) * segmentDuration;
},
[segmentDuration]
[segmentDuration],
);
const getSegmentEnd = useCallback(
@@ -23,7 +23,7 @@ export const useSegmentUtils = (
return Date.now() / 1000 + segmentDuration;
}
},
[segmentDuration]
[segmentDuration],
);
const mapSeverityToNumber = useCallback((severity: string): number => {
@@ -41,7 +41,7 @@ export const useSegmentUtils = (
const displaySeverityType = useMemo(
() => mapSeverityToNumber(severityType ?? ""),
[severityType]
[mapSeverityToNumber, severityType],
);
const getSeverity = useCallback(
@@ -54,7 +54,7 @@ export const useSegmentUtils = (
if (activeEvents?.length === 0) return [0];
const severityValues = activeEvents.map((event) =>
mapSeverityToNumber(event.severity)
mapSeverityToNumber(event.severity),
);
const highestSeverityValue = Math.max(...severityValues);
@@ -67,7 +67,7 @@ export const useSegmentUtils = (
return [highestSeverityValue];
}
},
[events, getSegmentStart, getSegmentEnd, mapSeverityToNumber]
[events, getSegmentStart, getSegmentEnd, mapSeverityToNumber],
);
const getReviewed = useCallback(
@@ -80,12 +80,12 @@ export const useSegmentUtils = (
);
});
},
[events, getSegmentStart, getSegmentEnd]
[events, getSegmentStart, getSegmentEnd],
);
const shouldShowRoundedCorners = useCallback(
(
segmentTime: number
segmentTime: number,
): {
roundTopPrimary: boolean;
roundBottomPrimary: boolean;
@@ -163,7 +163,7 @@ export const useSegmentUtils = (
roundBottomSecondary,
};
},
[events, getSegmentStart, getSegmentEnd, segmentDuration, severityType]
[events, getSegmentStart, getSegmentEnd, segmentDuration, severityType],
);
const getEventStart = useCallback(
@@ -178,7 +178,7 @@ export const useSegmentUtils = (
return matchingEvent?.start_time ?? 0;
},
[events, getSegmentStart, getSegmentEnd, severityType]
[events, getSegmentStart, getSegmentEnd, severityType],
);
const getEventThumbnail = useCallback(
@@ -193,7 +193,7 @@ export const useSegmentUtils = (
return matchingEvent?.thumb_path ?? "";
},
[events, getSegmentStart, getSegmentEnd, severityType]
[events, getSegmentStart, getSegmentEnd, severityType],
);
return {
@@ -204,6 +204,6 @@ export const useSegmentUtils = (
getReviewed,
shouldShowRoundedCorners,
getEventStart,
getEventThumbnail
getEventThumbnail,
};
};