diff --git a/web/src/utils/iconUtil.tsx b/web/src/utils/iconUtil.tsx
index 8517f519c..f31aec318 100644
--- a/web/src/utils/iconUtil.tsx
+++ b/web/src/utils/iconUtil.tsx
@@ -5,9 +5,11 @@ import {
FaCat,
FaDog,
FaFedex,
+ FaFire,
FaUps,
} from "react-icons/fa";
import { LuBox, LuLassoSelect } from "react-icons/lu";
+import { MdRecordVoiceOver } from "react-icons/md";
export function getIconForLabel(label: string, className?: string) {
switch (label) {
@@ -15,12 +17,21 @@ export function getIconForLabel(label: string, className?: string) {
return ;
case "cat":
return ;
+ case "bark":
case "dog":
return ;
+ case "fire_alarm":
+ return ;
case "package":
return ;
case "person":
return ;
+ case "crying":
+ case "laughter":
+ case "scream":
+ case "speech":
+ case "yell":
+ return ;
default:
return ;
}
diff --git a/web/src/views/events/DesktopEventView.tsx b/web/src/views/events/DesktopEventView.tsx
index 6b8c61dca..c1827f3c2 100644
--- a/web/src/views/events/DesktopEventView.tsx
+++ b/web/src/views/events/DesktopEventView.tsx
@@ -28,6 +28,20 @@ export default function DesktopEventView() {
// review paging
+ const [after, setAfter] = useState(0);
+ useEffect(() => {
+ const now = new Date();
+ now.setHours(now.getHours() - 24);
+ setAfter(now.getTime() / 1000);
+
+ const intervalId: NodeJS.Timeout = setInterval(() => {
+ const now = new Date();
+ now.setHours(now.getHours() - 24);
+ setAfter(now.getTime() / 1000);
+ }, 60000);
+ return () => clearInterval(intervalId);
+ }, [60000]);
+
const reviewSearchParams = {};
const reviewSegmentFetcher = useCallback((key: any) => {
const [path, params] = Array.isArray(key) ? key : [key, undefined];
@@ -39,18 +53,19 @@ export default function DesktopEventView() {
if (index > 0) {
const lastDate = prevData[prevData.length - 1].start_time;
const pagedParams = reviewSearchParams
- ? { before: lastDate, limit: API_LIMIT }
+ ? { before: lastDate, after: after, limit: API_LIMIT }
: {
...reviewSearchParams,
before: lastDate,
+ after: after,
limit: API_LIMIT,
};
return ["review", pagedParams];
}
const params = reviewSearchParams
- ? { limit: API_LIMIT }
- : { ...reviewSearchParams, limit: API_LIMIT };
+ ? { limit: API_LIMIT, after: after }
+ : { ...reviewSearchParams, limit: API_LIMIT, after: after };
return ["review", params];
},
[reviewSearchParams]
diff --git a/web/src/views/events/MobileEventView.tsx b/web/src/views/events/MobileEventView.tsx
index e4fd1f29b..49d7b1d98 100644
--- a/web/src/views/events/MobileEventView.tsx
+++ b/web/src/views/events/MobileEventView.tsx
@@ -18,6 +18,20 @@ export default function MobileEventView() {
// review paging
+ const [after, setAfter] = useState(0);
+ useEffect(() => {
+ const now = new Date();
+ now.setHours(now.getHours() - 24);
+ setAfter(now.getTime() / 1000);
+
+ const intervalId: NodeJS.Timeout = setInterval(() => {
+ const now = new Date();
+ now.setHours(now.getHours() - 24);
+ setAfter(now.getTime() / 1000);
+ }, 60000);
+ return () => clearInterval(intervalId);
+ }, [60000]);
+
const reviewSearchParams = {};
const reviewSegmentFetcher = useCallback((key: any) => {
const [path, params] = Array.isArray(key) ? key : [key, undefined];
@@ -29,18 +43,19 @@ export default function MobileEventView() {
if (index > 0) {
const lastDate = prevData[prevData.length - 1].start_time;
const pagedParams = reviewSearchParams
- ? { before: lastDate, limit: API_LIMIT }
+ ? { before: lastDate, after: after, limit: API_LIMIT }
: {
...reviewSearchParams,
before: lastDate,
+ after: after,
limit: API_LIMIT,
};
return ["review", pagedParams];
}
const params = reviewSearchParams
- ? { limit: API_LIMIT }
- : { ...reviewSearchParams, limit: API_LIMIT };
+ ? { limit: API_LIMIT, after: after }
+ : { ...reviewSearchParams, limit: API_LIMIT, after: after };
return ["review", params];
},
[reviewSearchParams]