diff --git a/src/frontend/src/CustomNodes/GenericNode/components/NodeStatus/components/build-status-display.tsx b/src/frontend/src/CustomNodes/GenericNode/components/NodeStatus/components/build-status-display.tsx new file mode 100644 index 000000000..152834975 --- /dev/null +++ b/src/frontend/src/CustomNodes/GenericNode/components/NodeStatus/components/build-status-display.tsx @@ -0,0 +1,72 @@ +import { + RUN_TIMESTAMP_PREFIX, + STATUS_BUILD, + STATUS_BUILDING, + STATUS_INACTIVE, +} from "@/constants/constants"; +import { BuildStatus } from "@/constants/enums"; + +const StatusMessage = ({ children, className = "text-foreground" }) => ( + {children} +); + +const TimeStamp = ({ prefix, time }) => ( +
+
{prefix}
+
{time}
+
+); + +const Duration = ({ duration }) => ( +
+
Duration:
+
{duration}
+
+); + +const ValidationDetails = ({ + validationString, + lastRunTime, + validationStatus, +}) => ( +
+
+ {validationString && ( +
{validationString}
+ )} + {lastRunTime && ( + + )} + +
+
+); + +const BuildStatusDisplay = ({ + buildStatus, + validationStatus, + validationString, + lastRunTime, +}) => { + if (buildStatus === BuildStatus.BUILDING) { + return {STATUS_BUILDING}; + } + + if (buildStatus === BuildStatus.INACTIVE) { + return {STATUS_INACTIVE}; + } + + if (!validationStatus) { + return {STATUS_BUILD}; + } + + return ( + + ); +}; + +export default BuildStatusDisplay; diff --git a/src/frontend/src/CustomNodes/GenericNode/components/NodeStatus/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/NodeStatus/index.tsx index 00e5025a4..3104fafef 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/NodeStatus/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/NodeStatus/index.tsx @@ -25,6 +25,7 @@ import { Check } from "lucide-react"; import { useEffect, useRef, useState } from "react"; import { useHotkeys } from "react-hotkeys-hook"; import IconComponent from "../../../../components/common/genericIconComponent"; +import BuildStatusDisplay from "./components/build-status-display"; import { normalizeTimeString } from "./utils/format-run-time"; export default function NodeStatus({ @@ -199,37 +200,12 @@ export default function NodeStatus({ : "border-destructive bg-error-background", )} content={ - buildStatus === BuildStatus.BUILDING ? ( - {STATUS_BUILDING} - ) : buildStatus === BuildStatus.INACTIVE ? ( - {STATUS_INACTIVE} - ) : !validationStatus ? ( - {STATUS_BUILD} - ) : ( -
-
- {validationString && ( -
- {validationString} -
- )} - {lastRunTime && ( -
-
{RUN_TIMESTAMP_PREFIX}
-
- {lastRunTime} -
-
- )} -
-
Duration:
-
- {validationStatus?.data.duration} -
-
-
-
- ) + } side="bottom" >