diff --git a/web/src/pages/ClassificationModel.tsx b/web/src/pages/ClassificationModel.tsx index 66a213243..833e2e6db 100644 --- a/web/src/pages/ClassificationModel.tsx +++ b/web/src/pages/ClassificationModel.tsx @@ -1,3 +1,4 @@ +import { useOverlayState } from "@/hooks/use-overlay-state"; import { CustomClassificationModelConfig } from "@/types/frigateConfig"; import ModelSelectionView from "@/views/classification/ModelSelectionView"; import ModelTrainingView from "@/views/classification/ModelTrainingView"; @@ -6,11 +7,13 @@ import { useState } from "react"; export default function ClassificationModelPage() { // training - const [model, setModel] = useState(); + const [model, setModel] = useOverlayState( + "classificationModel", + ); if (model == undefined) { - return ; + return ; } - return ; + return ; } diff --git a/web/src/views/classification/ModelSelectionView.tsx b/web/src/views/classification/ModelSelectionView.tsx index 557373a45..91d63194b 100644 --- a/web/src/views/classification/ModelSelectionView.tsx +++ b/web/src/views/classification/ModelSelectionView.tsx @@ -1,9 +1,19 @@ import ActivityIndicator from "@/components/indicators/activity-indicator"; -import { FrigateConfig } from "@/types/frigateConfig"; +import { cn } from "@/lib/utils"; +import { + CustomClassificationModelConfig, + FrigateConfig, +} from "@/types/frigateConfig"; import { useMemo } from "react"; +import { isMobile } from "react-device-detect"; import useSWR from "swr"; -export default function ModelSelectionView() { +type ModelSelectionViewProps = { + onClick: (model: CustomClassificationModelConfig) => void; +}; +export default function ModelSelectionView({ + onClick, +}: ModelSelectionViewProps) { const { data: config } = useSWR("config", { revalidateOnFocus: false, }); @@ -25,9 +35,29 @@ export default function ModelSelectionView() { } return ( -
+
{classificationConfigs.map((config) => ( -
{config.name}
+
onClick(config)} + onContextMenu={() => { + // e.stopPropagation(); + // e.preventDefault(); + // handleClickEvent(true); + }} + > +
+
+ {config.name} ({config.state_config != null ? "State" : "Object"}{" "} + Classification) +
+
))}
); diff --git a/web/src/views/classification/ModelTrainingView.tsx b/web/src/views/classification/ModelTrainingView.tsx index 5826722c1..0bdb0c1b0 100644 --- a/web/src/views/classification/ModelTrainingView.tsx +++ b/web/src/views/classification/ModelTrainingView.tsx @@ -1 +1,16 @@ -export default function ModelTrainingView() {} +import Heading from "@/components/ui/heading"; +import { CustomClassificationModelConfig } from "@/types/frigateConfig"; + +type ModelTrainingViewProps = { + model: CustomClassificationModelConfig; +}; +export default function ModelTrainingView({ model }: ModelTrainingViewProps) { + return ( +
+ + {model.name} ({model.state_config != null ? "State" : "Object"}{" "} + Classification) + +
+ ); +}