mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
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:
parent
8072ce25c6
commit
a978adc5a9
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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">
|
||||||
|
{isMobile && (
|
||||||
<Logo className="absolute inset-y-0 inset-x-1/2 -translate-x-1/2 h-8" />
|
<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"
|
||||||
>
|
>
|
||||||
|
{filter?.before == undefined && (
|
||||||
<NewReviewData
|
<NewReviewData
|
||||||
className="absolute w-full z-30"
|
className="absolute w-full z-30"
|
||||||
contentRef={contentRef}
|
contentRef={contentRef}
|
||||||
severity={severity}
|
severity={severity}
|
||||||
pullLatestData={pullLatestData}
|
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">
|
||||||
|
Loading…
Reference in New Issue
Block a user