(react) add Modal

Here it is! Our really wanted Modal component, based on Figma sketches.
This commit is contained in:
Nathan Vasse
2024-01-18 14:38:48 +01:00
committed by NathanVss
parent 81e4da1d36
commit 1445f4a222
32 changed files with 1723 additions and 111 deletions

View File

@@ -0,0 +1,47 @@
import React from "react";
import classNames from "classnames";
import { Modal, ModalSize } from ":/components/Modal/index";
import { useCunningham } from ":/components/Provider";
import { Button } from ":/components/Button";
import { DecisionModalProps } from ":/components/Modal/ModalProvider";
import { colorFromType, iconFromType, VariantType } from ":/utils/VariantUtils";
export type MessageModalProps = DecisionModalProps & {
messageType: VariantType;
};
export const MessageModal = ({
title,
children,
onDecide,
messageType,
...props
}: MessageModalProps) => {
const { t } = useCunningham();
return (
<Modal
title={title ?? t("components.modals.helpers.disclaimer.title")}
titleIcon={
messageType !== VariantType.NEUTRAL && (
<span
className={classNames(
"material-icons",
`clr-${colorFromType(messageType)}-600`,
)}
>
{iconFromType(messageType)}
</span>
)
}
size={ModalSize.SMALL}
actions={
<Button fullWidth={true} onClick={() => onDecide("ok")}>
{t("components.modals.helpers.disclaimer.ok")}
</Button>
}
{...props}
>
{children ?? t("components.modals.helpers.disclaimer.children")}
</Modal>
);
};