Diálogo (Dialog)
Componentes Dialog são usados para apresentar conteúdo em uma camada acima do conteúdo principal do aplicativo, e frequentemente solicitam uma resposta do usuário. São um componente crítico para diálogos modais, lightboxes, pop-ups de notificação e popups de conteúdo personalizado.
Para usar o Dialog, importe-o dos seus componentes e passe as props necessárias incluindo open, onOpenChange e o conteúdo do diálogo como filhos. Opcionalmente, você pode personalizar sua aparência com as props className, fullWidth, fullHeight, fullScreen, scrollable, maxWidth, modal e onOpenAutoFocus.
Dialog básico
Seção intitulada “Dialog básico”Um exemplo básico de uso do componente dialog para mostrar um pop-up simples.
import React, { useState } from "react";import { Button, Dialog, DialogActions, DialogContent, DialogTitle, SearchIcon, TextField, Typography} from "@firecms/ui";
export default function DialogBasicDemo() { const [open, setOpen] = useState(false);
return ( <> <Button onClick={() => setOpen(true)}>Open Dialog</Button> <Dialog open={open} onOpenChange={setOpen}> <DialogTitle variant={"h6"} className={"flex flex-row gap-4 items-center"}> <SearchIcon size={"small"}/> Search </DialogTitle> <DialogContent> <Typography variant={"body2"}> Search in your documents </Typography> <TextField size={"small"}/> </DialogContent> <DialogActions> <Button color={"primary"} onClick={() => setOpen(false)} variant={"text"}> Close </Button> <Button color={"primary"} onClick={() => setOpen(false)} variant={"filled"}> Got it! </Button> </DialogActions> </Dialog> </> );}Dialog em tela cheia
Seção intitulada “Dialog em tela cheia”Um exemplo de um diálogo que cobre a tela inteira.
import React, { useState } from "react";import { Button, CenteredView, Dialog, DialogActions, DialogContent, DialogTitle, Typography } from "@firecms/ui";
export default function DialogFullScreenDemo() { const [open, setOpen] = useState(false);
return ( <> <Button onClick={() => setOpen(true)}>Open Full-Screen Dialog</Button> <Dialog open={open} onOpenChange={setOpen} fullScreen={true} > <DialogContent includeMargin={false}> <CenteredView> <DialogTitle variant={"h3"} includeMargin={false}> Your dialog </DialogTitle> <Typography gutterBottom> Full-Screen Dialog Content </Typography> <Button variant={"outlined"}> Click me </Button> </CenteredView> </DialogContent> <DialogActions> <Button color={"primary"} onClick={() => setOpen(false)} variant={"filled"}> Done </Button> </DialogActions> </Dialog> </> );}Dialog com rolagem
Seção intitulada “Dialog com rolagem”Ilustra como tornar o conteúdo de um diálogo com rolagem.
import React, { useState } from "react";import { Button, Dialog, DialogActions } from "@firecms/ui";
export default function DialogScrollableDemo() { const [open, setOpen] = useState(false);
return ( <> <Button onClick={() => setOpen(true)}>Open Scrollable Dialog</Button> <Dialog open={open} onOpenChange={setOpen} scrollable={true} > <div className={"p-8 bg-red-100 text-red-800"} style={{ height: "200vh" }}>Scrollable Dialog Content </div>
<DialogActions> <Button color={"primary"} onClick={() => setOpen(false)} variant={"filled"}> Got it! </Button> </DialogActions> </Dialog> </> );}Dialog com largura personalizada
Seção intitulada “Dialog com largura personalizada”Demonstra o uso da prop maxWidth para personalizar a largura do diálogo.
import React, { useState } from "react";import { Button, Dialog, DialogActions, DialogContent, DialogTitle } from "@firecms/ui";
export default function DialogCustomWidthDemo() { const [open, setOpen] = useState(false);
return ( <> <Button onClick={() => setOpen(true)}>Open Custom Width Dialog</Button> <Dialog open={open} onOpenChange={setOpen} maxWidth="5xl" > <DialogTitle variant={"h5"} gutterBottom> Your dialog </DialogTitle> <DialogContent> Dialog with Custom Width </DialogContent> <DialogActions> <Button color={"primary"} onClick={() => setOpen(false)} variant={"filled"}> Close </Button> </DialogActions> </Dialog> </> );}