import { BsmButton, BsmButtonType } from "renderer/components/shared/bsm-button.component"; import { BsmImage } from "renderer/components/shared/bsm-image.component"; import { cn } from "renderer/helpers/css-class.helpers"; import { useTranslation } from "renderer/hooks/use-translation.hook"; import { ModalComponent, ModalExitCode } from "renderer/services/modale.service"; type BasicModalOptions = { title: string; image: string; body?: string; buttons?: { id: string; text: string; type: BsmButtonType, isCancel?: boolean; }[]; buttonsLayout?: "row" | "column"; }; export const BasicModal: ModalComponent = ({ resolver, options: { data: { title, image, body, buttons, buttonsLayout = "column" } } }) => { const t = useTranslation(); const handleClick = (button: BasicModalOptions["buttons"][0]) => { resolver({ exitCode: button.isCancel ? ModalExitCode.CANCELED : ModalExitCode.COMPLETED, data: button.id }); } return (

{t(title)}

{ body &&

{t(body)}

}
{buttons.map(button => ( handleClick(button)} withBar={false} text={button.text} /> ))}
); };