Refactor getStatusClassName function to handle different build statuses

This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-02-23 12:27:53 -03:00
commit 10fa045063

View file

@ -96,7 +96,6 @@ export default function GenericNode({
return `Duration: ${duration}`; return `Duration: ${duration}`;
} }
}; };
const durationString = getDurationString(validationStatus?.data.duration); const durationString = getDurationString(validationStatus?.data.duration);
useEffect(() => { useEffect(() => {
@ -166,11 +165,16 @@ export default function GenericNode({
); );
const getStatusClassName = ( const getStatusClassName = (
buildStatus: BuildStatus | undefined,
validationStatus: validationStatusType | null validationStatus: validationStatusType | null
) => { ) => {
if (validationStatus && validationStatus.valid) { const isValid = validationStatus && validationStatus.valid;
if (isValid) {
return "green-status"; return "green-status";
} else if (validationStatus && !validationStatus.valid) { } else if (!isValid && buildStatus === BuildStatus.INACTIVE) {
return "gray-status";
} else if (!isValid && buildStatus === BuildStatus.BUILT) {
return "red-status"; return "red-status";
} else if (!validationStatus) { } else if (!validationStatus) {
return "yellow-status"; return "yellow-status";
@ -186,7 +190,7 @@ export default function GenericNode({
if (buildStatus === BuildStatus.BUILDING) { if (buildStatus === BuildStatus.BUILDING) {
return <Loading />; return <Loading />;
} else { } else {
const className = getStatusClassName(validationStatus); const className = getStatusClassName(buildStatus, validationStatus);
return <>{getIconPlayOrPauseComponent("Play", className)}</>; return <>{getIconPlayOrPauseComponent("Play", className)}</>;
} }
}; };
@ -195,15 +199,16 @@ export default function GenericNode({
buildStatus: BuildStatus | undefined, buildStatus: BuildStatus | undefined,
validationStatus: validationStatusType | null validationStatus: validationStatusType | null
) => { ) => {
if ( let isInvalid = validationStatus && !validationStatus.valid;
(buildStatus === BuildStatus.BUILT || if (buildStatus === BuildStatus.INACTIVE && isInvalid) {
buildStatus === BuildStatus.INACTIVE) && // INACTIVE should have its own class
validationStatus && // different from BUILT and TO_BUILD
!validationStatus.valid return "inactive-status";
) { }
return "border-none ring ring-red-300"; if (buildStatus === BuildStatus.BUILT && isInvalid) {
return "built-invalid-status";
} else if (buildStatus === BuildStatus.BUILDING) { } else if (buildStatus === BuildStatus.BUILDING) {
return "border-none ring"; return "building-status";
} else { } else {
return ""; return "";
} }