Organisation anlegen
Playground
Verwende <Modal />, um ein Modal darzustellen. Da ein Modal in der Regel nur
durch eine Aktion des Nutzers erscheint, wird ein <ModalTrigger /> in
Kombination z. B. einem <Button /> benötigt.
import { Action, ActionGroup, Button, Content, Heading, Label, Modal, ModalTrigger, Section, Text, TextField, } from "@mittwald/flow-react-components"; import { sleepLong } from "@/content/04-components/actions/action/examples/lib"; <ModalTrigger> <Button>Modal öffnen</Button> <Modal> <Heading>Organisation anlegen</Heading> <Content> <Section> <Text> Eine Organisation kannst du dir wie ein Unternehmen vorstellen. An diesem Ort verwaltest du deine Mitarbeiter, Zahlungsmodalitäten und kannst deine Rechnungen einsehen. </Text> <TextField isRequired> <Label>Organisationsname</Label> </TextField> </Section> </Content> <ActionGroup> <Action closeModal> <Action onAction={sleepLong}> <Button color="accent"> Organisation anlegen </Button> </Action> <Button variant="soft" color="secondary"> Abbrechen </Button> </Action> </ActionGroup> </Modal> </ModalTrigger>
Variants
OffCanvas
Neben der klassischen Darstellung lässt sich das Modal auch als OffCanvas öffnen.
Sizes
Das Modal gibt es in zwei Standardgrößen: S und M. Beide Größen sind sowohl als klassisches Modal als auch in der OffCanvas-Variante verfügbar.
Size S: Ein Modal in der Size S (Breite 660 px) wird zum Beispiel für einfache Abfragen, ob etwas gelöscht werden soll, verwendet.
Size M: Ein Modal in der Size M (Breite 900 px) wird für komplexere Dialoge (z. B. Erstellungs-Prozesse mit mehreren Eingabefeldern) verwendet.
Ungespeicherte Änderungen
Eingaben in einem Modal gehen beim Schließen verloren. Damit das nicht unbemerkt
passiert, kann das Schließen erst einen Bestätigungs-Dialog auslösen. Bestätigt
werden die Wege, auf denen ein Modal beiläufig geschlossen wird: Escape, Klick
außerhalb und <Action closeModal />. Aktionen in der <ActionGroup /> und der
Close-Button in der Überschrift schließen dagegen direkt – dort ist das
Verwerfen eine bewusste Entscheidung des Nutzers.
Enthält das Modal eine
Form (React Hook Form), ist das
der Standard: Sobald die Form dirty ist, wird das Schließen bestätigt, nach
einem erfolgreichen Submit oder einem form.reset() nicht mehr. Voraussetzung
ist das Flag requireCloseModalConfirmationOnUnsavedChanges in der Anwendung.
Ohne Form – oder wenn du selbst entscheiden willst, wann es etwas zu verlieren
gibt – setzt du confirmOnClose:
Kombiniere mit ...
Controller
Neben dem <ModalTrigger /> kann das Modal auch über einen Controller gesteuert
werden.
Dieser Controller steht auch in Modals zur Verfügung, die über den ModalTrigger geöffnet wurden.
Form
Verwende eine Form innerhalb eines Modals wie im folgenden Beispiel.