Skip to content

Instantly share code, notes, and snippets.

@nicdford
Created April 24, 2024 20:35
Show Gist options
  • Select an option

  • Save nicdford/6284626f32f1eb5d1d738322d8d34088 to your computer and use it in GitHub Desktop.

Select an option

Save nicdford/6284626f32f1eb5d1d738322d8d34088 to your computer and use it in GitHub Desktop.

Revisions

  1. nicdford created this gist Apr 24, 2024.
    46 changes: 46 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,46 @@
    interface InternalActivityTableActionsProps extends Omit<ButtonProps, "label"> {
    status: DisplayStatus;
    actions: {
    onStartButtonClick: ButtonProps["onClick"];
    onContinueButtonClick: ButtonProps["onClick"];
    onNoActionButtonClick: ButtonProps["onClick"];
    onViewDataButtonClick: ButtonProps["onClick"];
    };
    }

    export const ActionButton: FunctionComponent<
    InternalActivityTableActionsProps
    > = ({
    status,
    actions: {
    onStartButtonClick,
    onContinueButtonClick,
    onViewDataButtonClick,
    onNoActionButtonClick,
    },
    ...props
    }) => {
    if (status.statusType === StatusType.newTask) {
    return <StartButton {...props} onClick={onStartButtonClick} />;
    }

    if (status.statusType === StatusType.dataExtraction) {
    return <ContinueButton {...props} onClick={onContinueButtonClick} />;
    }

    if (status.statusType === StatusType.qualityCheck) {
    return <StartButton {...props} onClick={onStartButtonClick} />;
    }

    if (status.statusType === StatusType.approvalReview) {
    return <NoActionButton {...props} onClick={onNoActionButtonClick} />;
    }

    if (status.statusType === StatusType.dataAdjustments) {
    return <ViewDataButton {...props} onClick={onViewDataButtonClick} />;
    }

    if (status.statusType === StatusType.completed) {
    return <NoActionButton {...props} onClick={onNoActionButtonClick} />;
    }
    };