Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 105x 1x 1x 105x 27x 27x 5x 2x 1x 27x | import { getApprovingRole, newUserRoleMap } from "shared-utils";
import { ConfirmationDialog } from "@/components/ConfirmationDialog";
import { SelfRevokeAcess } from "@/features";
import { convertStateAbbrToFullName } from "@/utils";
interface ModalProps {
open: boolean;
selfRevokeRole: SelfRevokeAcess | null;
onAccept: () => void;
onCancel: () => void;
}
const LegacyWithdrawRoleModal = ({ open, selfRevokeRole, onAccept, onCancel }: ModalProps) => (
<ConfirmationDialog
open={open}
title="Withdraw State Access?"
body={`This action cannot be undone. ${convertStateAbbrToFullName(
selfRevokeRole.territory,
)} State System Admin will be notified.`}
aria-labelledby="Self Revoke Access Modal"
acceptButtonText="Confirm"
onAccept={onAccept}
onCancel={onCancel}
/>
);
const WithdrawPendingRoleModal = ({ open, onAccept, onCancel }: ModalProps) => (
<ConfirmationDialog
open={open}
title="Withdraw role request?"
body="This role is still pending approval. Withdrawing it will cancel your request."
aria-labelledby="Self Withdraw Pending Access Modal"
acceptButtonText="Withdraw request"
onAccept={onAccept}
onCancel={onCancel}
/>
);
const RemoveActiveRoleModal = ({ open, selfRevokeRole, onAccept, onCancel }: ModalProps) => {
const approvingRole = getApprovingRole(selfRevokeRole.role);
const stateDisplay =
selfRevokeRole.role === "statesubmitter"
? `${convertStateAbbrToFullName(selfRevokeRole.territory)} `
: "";
return (
<ConfirmationDialog
open={open}
title={
<div className="mr-4">
Withdraw {stateDisplay}
{newUserRoleMap[selfRevokeRole.role]} access?
</div>
}
body={`This action cannot be undone. The ${stateDisplay}${newUserRoleMap[approvingRole]} will be notified of this change.`}
aria-labelledby="Self Remove Role Modal"
acceptButtonText="Confirm"
onAccept={onAccept}
onCancel={onCancel}
/>
);
};
export const WithdrawRoleModal = (props: ModalProps) => {
const modalType = (function () {
if (!props.selfRevokeRole) return null;
if (!props.selfRevokeRole.isNewUserRoleDisplay) return "legacy-withdraw";
if (props.selfRevokeRole.status === "pending") return "pending-withdraw";
Eif (props.selfRevokeRole.status === "active") return "remove-role";
})();
if (!props.selfRevokeRole) return;
return (
<>
{modalType === "legacy-withdraw" && <LegacyWithdrawRoleModal {...props} />}
{modalType === "pending-withdraw" && <WithdrawPendingRoleModal {...props} />}
{modalType === "remove-role" && <RemoveActiveRoleModal {...props} />}
</>
);
};
|