Finestra di dialogo
I componenti Dialog vengono utilizzati per presentare contenuti in un livello sopra il contenuto principale dell’app, e spesso richiedono una risposta dall’utente. Sono un componente critico per dialoghi modali, lightbox, pop-up di notifica e popup di contenuto personalizzato.
Utilizzo
Sezione intitolata “Utilizzo”Per usare il Dialog, importalo dai tuoi componenti e passa le prop necessarie tra cui open, onOpenChange e il contenuto del dialogo come figli. Opzionalmente, puoi personalizzarne l’aspetto con le prop className, fullWidth, fullHeight, fullScreen, scrollable, maxWidth, modal e onOpenAutoFocus.
Dialog di base
Sezione intitolata “Dialog di base”Un esempio base di utilizzo del componente dialog per mostrare un semplice pop-up.
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 a schermo intero
Sezione intitolata “Dialog a schermo intero”Un esempio di un dialogo che copre l’intero schermo.
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 con scorrimento
Sezione intitolata “Dialog con scorrimento”Illustra come rendere il contenuto di un dialogo scorrevole.
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 con larghezza personalizzata
Sezione intitolata “Dialog con larghezza personalizzata”Dimostra l’uso della prop maxWidth per personalizzare la larghezza del dialogo.
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> </> );}