From 4b6bd3d1c8544b47bb055459b7dd5540551c2430 Mon Sep 17 00:00:00 2001 From: Nathan Vasse Date: Mon, 20 Jan 2025 17:59:28 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(front)=20enable=20custom=20s?= =?UTF-8?q?ize=20on=20Dialog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We want to have a Dialog that is constrained in width. Thus, introducing this variant enables this possibility and many more in the future. --- src/frontend/src/primitives/Dialog.tsx | 34 +++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/primitives/Dialog.tsx b/src/frontend/src/primitives/Dialog.tsx index fba47e7e..bdaad12e 100644 --- a/src/frontend/src/primitives/Dialog.tsx +++ b/src/frontend/src/primitives/Dialog.tsx @@ -11,6 +11,7 @@ import { import { Div, Button, Box, VerticallyOffCenter } from '@/primitives' import { text } from './Text' import { MutableRefObject } from 'react' +import { css } from '@/styled-system/css' const StyledModalOverlay = styled(ModalOverlay, { base: { @@ -48,6 +49,24 @@ const StyledRACDialog = styled(RACDialog, { }, }) +const ModalContent = styled('div', { + base: { + margin: 'auto', + }, + variants: { + size: { + full: { + width: 'fit-content', + maxWidth: '100%', + }, + large: { + width: '100%', + xl: { width: '1200px' }, + }, + }, + }, +}) + export type DialogProps = RACDialogProps & { title?: string onClose?: () => void @@ -63,6 +82,7 @@ export type DialogProps = RACDialogProps & { onOpenChange?: (isOpen: boolean) => void type?: 'flex' innerRef?: MutableRefObject + size?: 'full' | 'large' } export const Dialog = ({ @@ -72,6 +92,7 @@ export const Dialog = ({ isOpen, onOpenChange, innerRef, + size = 'full', ...dialogProps }: DialogProps) => { const isAlert = dialogProps['role'] === 'alertdialog' @@ -94,9 +115,16 @@ export const Dialog = ({ {({ close }) => ( -
+
- + {!!title && (
-
+
)}