Dialog
Les composants Dialog sont utilisés pour présenter du contenu dans une couche au-dessus du contenu principal de l’application, et ils demandent souvent une réponse de l’utilisateur. Ils sont un composant critique pour les dialogues modaux, les lightboxes, les pop-ups de notification et les pop-ups de contenu personnalisé.
Utilisation
Section intitulée « Utilisation »Pour utiliser le Dialog, importez-le depuis vos composants et passez les props nécessaires incluant open, onOpenChange et le contenu du dialogue comme enfants.
Dialog de base
Section intitulée « Dialog de base »Un exemple basique d’utilisation du composant dialog pour afficher un pop-up simple.
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 plein écran
Section intitulée « Dialog plein écran »Un exemple de dialog qui couvre l’intégralité de l’écran.
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 avec défilement
Section intitulée « Dialog avec défilement »Illustre comment rendre le contenu d’un dialogue défilable.
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 avec largeur personnalisée
Section intitulée « Dialog avec largeur personnalisée »Démontre l’utilisation de la prop maxWidth pour personnaliser la largeur du dialogue.