diff --git a/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/Error.tsx b/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/Error.tsx new file mode 100644 index 00000000000..25bcd228c1d --- /dev/null +++ b/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/Error.tsx @@ -0,0 +1,42 @@ +import { West } from "@mui/icons-material"; +import { Box, Button, Card, Stack, Typography } from "@mui/material"; +import React from "react"; +import ErrorIcon from "./ErrorIcon"; + +export default function Error(props) { + const { onBack, error } = props; + console.log(">>>", { error }); + return ( + + + + + + + + + Analyze and improve models collaboratively with your team + + + The Model Evaluation panel currently supports only classification, + detection, and segmentation evaluations + + + + + ); +} + +type ErrorProps = { + onBack: () => void; + error: any; +}; diff --git a/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/ErrorIcon.tsx b/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/ErrorIcon.tsx new file mode 100644 index 00000000000..8f595c416de --- /dev/null +++ b/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/ErrorIcon.tsx @@ -0,0 +1,33 @@ +import { SvgIcon, SvgIconProps } from "@mui/material"; +import React from "react"; + +export default function ErrorIcon(props: SvgIconProps) { + return ( + + + + + + + + + ); +} diff --git a/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/Evaluation.tsx b/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/Evaluation.tsx index 69aa0a4b395..9219ab56493 100644 --- a/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/Evaluation.tsx +++ b/app/packages/core/src/plugins/SchemaIO/components/NativeModelEvaluationView/Evaluation.tsx @@ -42,6 +42,7 @@ import { } from "@mui/material"; import React, { useEffect, useMemo, useState } from "react"; import { useRecoilState, useSetRecoilState } from "recoil"; +import Error from "./Error"; import EvaluationNotes from "./EvaluationNotes"; import EvaluationPlot from "./EvaluationPlot"; import Status from "./Status"; @@ -90,6 +91,14 @@ export default function Evaluation(props: EvaluationProps) { const evaluation = data?.[`evaluation_${compareKey}`]; return evaluation; }, [data]); + const evaluationError = useMemo(() => { + const evaluation = data?.[`evaluation_${name}_error`]; + return evaluation; + }, [data]); + const compareEvaluationError = useMemo(() => { + const evaluation = data?.[`evaluation_${compareKey}_error`]; + return evaluation; + }, [data]); const confusionMatrix = useMemo(() => { return getMatrix(evaluation?.confusion_matrices, confusionMatrixConfig); }, [evaluation, confusionMatrixConfig]); @@ -145,6 +154,10 @@ export default function Evaluation(props: EvaluationProps) { setConfusionMatrixDialogConfig((state) => ({ ...state, open: false })); }; + if (evaluationError) { + return ; + } + if (!evaluation) { return ( - Compare against + + Compare against + {compareEvaluationError && ( + + Unsupported model evaluation type + + )} + {compareKeys.length === 0 ? (