Fix reload (#10109)

* Fix reloading data

* Don't show new review data when not looking at last 24 hours

* Fix refresh button and no items text

* Cleanup
This commit is contained in:
Nicolas Mowen 2024-02-28 07:16:32 -07:00 committed by GitHub
parent 8072ce25c6
commit a978adc5a9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 21 deletions

View File

@ -28,9 +28,10 @@ export default function Events() {
// review paging // review paging
const [beforeTs, setBeforeTs] = useState(Date.now() / 1000);
const last24Hours = useMemo(() => { const last24Hours = useMemo(() => {
return { before: Date.now() / 1000, after: getHoursAgo(24) }; return { before: beforeTs, after: getHoursAgo(24) };
}, []); }, [beforeTs]);
const selectedTimeRange = useMemo(() => { const selectedTimeRange = useMemo(() => {
if (reviewSearchParams["after"] == undefined) { if (reviewSearchParams["after"] == undefined) {
return last24Hours; return last24Hours;
@ -73,7 +74,7 @@ export default function Events() {
}; };
return ["review", params]; return ["review", params];
}, },
[reviewSearchParams] [reviewSearchParams, last24Hours]
); );
const { const {
@ -96,10 +97,7 @@ export default function Events() {
setSize(size + 1); setSize(size + 1);
}, [size]); }, [size]);
const reloadData = useCallback(() => { const reloadData = useCallback(() => setBeforeTs(Date.now() / 1000), []);
setSize(1);
updateSegments();
}, []);
// preview videos // preview videos

View File

@ -97,8 +97,9 @@ function Logs() {
</div> </div>
{!endVisible && ( {!endVisible && (
<div <Button
className="absolute bottom-8 left-[50%] -translate-x-[50%] rounded-xl bg-accent-foreground text-white z-20 p-2" className="absolute bottom-8 left-[50%] -translate-x-[50%] rounded-xl bg-accent-foreground text-white bg-gray-400 z-20 p-2"
variant="secondary"
onClick={() => onClick={() =>
contentRef.current?.scrollTo({ contentRef.current?.scrollTo({
top: contentRef.current?.scrollHeight, top: contentRef.current?.scrollHeight,
@ -107,7 +108,7 @@ function Logs() {
} }
> >
Jump to Bottom Jump to Bottom
</div> </Button>
)} )}
<div <div

View File

@ -9,7 +9,7 @@ import { useEventUtils } from "@/hooks/use-event-utils";
import { FrigateConfig } from "@/types/frigateConfig"; import { FrigateConfig } from "@/types/frigateConfig";
import { ReviewFilter, ReviewSegment, ReviewSeverity } from "@/types/review"; import { ReviewFilter, ReviewSegment, ReviewSeverity } from "@/types/review";
import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { isDesktop } from "react-device-detect"; import { isDesktop, isMobile } from "react-device-detect";
import { LuFolderCheck } from "react-icons/lu"; import { LuFolderCheck } from "react-icons/lu";
import { MdCircle } from "react-icons/md"; import { MdCircle } from "react-icons/md";
import useSWR from "swr"; import useSWR from "swr";
@ -191,7 +191,9 @@ export default function EventView({
return ( return (
<div className="flex flex-col size-full"> <div className="flex flex-col size-full">
<div className="relative flex justify-between mb-2"> <div className="relative flex justify-between mb-2">
<Logo className="absolute inset-y-0 inset-x-1/2 -translate-x-1/2 h-8" /> {isMobile && (
<Logo className="absolute inset-y-0 inset-x-1/2 -translate-x-1/2 h-8" />
)}
<ToggleGroup <ToggleGroup
className="*:px-3 *:py4 *:rounded-2xl" className="*:px-3 *:py4 *:rounded-2xl"
type="single" type="single"
@ -234,14 +236,16 @@ export default function EventView({
ref={contentRef} ref={contentRef}
className="flex flex-1 flex-wrap content-start gap-2 overflow-y-auto no-scrollbar" className="flex flex-1 flex-wrap content-start gap-2 overflow-y-auto no-scrollbar"
> >
<NewReviewData {filter?.before == undefined && (
className="absolute w-full z-30" <NewReviewData
contentRef={contentRef} className="absolute w-full z-30"
severity={severity} contentRef={contentRef}
pullLatestData={pullLatestData} severity={severity}
/> pullLatestData={pullLatestData}
/>
)}
{reachedEnd && currentItems == null && ( {!isValidating && currentItems == null && (
<div className="size-full flex flex-col justify-center items-center"> <div className="size-full flex flex-col justify-center items-center">
<LuFolderCheck className="size-16" /> <LuFolderCheck className="size-16" />
There are no {severity} items to review There are no {severity} items to review
@ -287,9 +291,9 @@ export default function EventView({
</div> </div>
); );
}) })
) : ( ) : severity != "alert" ? (
<div ref={lastReviewRef} /> <div ref={lastReviewRef} />
)} ) : null}
</div> </div>
</div> </div>
<div className="w-[55px] md:w-[100px] mt-2 overflow-y-auto no-scrollbar"> <div className="w-[55px] md:w-[100px] mt-2 overflow-y-auto no-scrollbar">