+
Cameras
diff --git a/web-new/src/utils/timelineUtil.tsx b/web-new/src/utils/timelineUtil.tsx
new file mode 100644
index 000000000..f85be6ad8
--- /dev/null
+++ b/web-new/src/utils/timelineUtil.tsx
@@ -0,0 +1,80 @@
+import { LuCircle, LuPlay, LuPlayCircle, LuTruck } from "react-icons/lu";
+import { IoMdExit } from "react-icons/io";
+import {
+ MdFaceUnlock,
+ MdOutlineLocationOn,
+ MdOutlinePictureInPictureAlt,
+} from "react-icons/md";
+
+export function getTimelineIcon(timelineItem: Timeline) {
+ switch (timelineItem.class_type) {
+ case "visible":
+ return ;
+ case "gone":
+ return ;
+ case "active":
+ return ;
+ case "stationary":
+ return ;
+ case "entered_zone":
+ return ;
+ case "attribute":
+ switch (timelineItem.data.attribute) {
+ case "face":
+ return ;
+ case "license_plate":
+ return ;
+ default:
+ return ;
+ }
+ case "sub_label":
+ switch (timelineItem.data.label) {
+ case "person":
+ return ;
+ case "car":
+ return ;
+ }
+ }
+}
+
+export function getTimelineItemDescription(timelineItem: Timeline) {
+ const label = (
+ (Array.isArray(timelineItem.data.sub_label)
+ ? timelineItem.data.sub_label[0]
+ : timelineItem.data.sub_label) || timelineItem.data.label
+ ).replaceAll("_", " ");
+
+ switch (timelineItem.class_type) {
+ case "visible":
+ return `${label} detected`;
+ case "entered_zone":
+ return `${label} entered ${timelineItem.data.zones
+ .join(" and ")
+ .replaceAll("_", " ")}`;
+ case "active":
+ return `${label} became active`;
+ case "stationary":
+ return `${label} became stationary`;
+ case "attribute": {
+ let title = "";
+ if (
+ timelineItem.data.attribute == "face" ||
+ timelineItem.data.attribute == "license_plate"
+ ) {
+ title = `${timelineItem.data.attribute.replaceAll(
+ "_",
+ " "
+ )} detected for ${label}`;
+ } else {
+ title = `${
+ timelineItem.data.sub_label
+ } recognized as ${timelineItem.data.attribute.replaceAll("_", " ")}`;
+ }
+ return title;
+ }
+ case "sub_label":
+ return `${timelineItem.data.label} recognized as ${timelineItem.data.sub_label}`;
+ case "gone":
+ return `${label} left`;
+ }
+}