Dialog
Ein modaler Dialog: 440, 560 oder 720 breit, Radius 20; Titel, Beschreibung, Inhalt, Aktionen. ⌘Enter sendet ab. Längere Formulare nutzen StepDialog: eine Frage pro Schritt.
function Form() {
const [open, setOpen] = useState(false);
const create = () => {
setOpen(false);
toast.success("Key created");
};
return (
<>
<Dialog
open={open}
onOpenChange={setOpen}
trigger={<Button variant="primary">Create key</Button>}
title="Create key"
description="Applications use this key to call the gateway."
onSubmit={create}
footer={
<>
<Dialog.Close>
<Button>Cancel</Button>
</Dialog.Close>
<Button variant="primary" onClick={create} shortcut={["mod", "enter"]}>
Create key
</Button>
</>
}
>
<div className="flex flex-col gap-20">
<Input label="Name" placeholder="checkout-web" autoFocus />
<Select
label="Expires"
options={[
{ value: "never", label: "Never" },
{ value: "90", label: "In 90 days" },
]}
defaultValue="90"
fullWidth
/>
</div>
</Dialog>
</>
);
}import { Dialog } from "@logicplanes/kaeso-ui";Props
childrenReactNodeInhalt und Aktionen des Dialogs.
defaultOpenbooleanOb es anfangs geöffnet ist, wenn die Komponente ihren Zustand selbst verwaltet.
descriptionReactNodeEin Satz unter dem Titel.
footerReactNodeRechtsbündige Aktionen: Abbrechen (sekundär), dann die primäre.
headerStartReactNodeEine Leiste über dem Titel, mit diesem Inhalt am Anfang und dem Schließen-Kreis am Ende (der Zurück-Button von LayerDialog). Titel, Beschreibung und Inhalt behalten eine linke Kante;
nullbehält die Leiste mit leerem Anfang.hideClosebooleanDen Schließen-Kreis ausblenden (selten).
inlinebooleanOhne Portal und Hintergrund rendern, für Dokumentation und Zustandsmatrizen.
onOpenChange((open: boolean) => void)Wird aufgerufen, wenn es sich öffnet oder schließt.
onSubmit(() => void)⌘Enter ruft dies auf (meist die primäre Aktion).
openbooleanOb es geöffnet ist, bei gesteuertem Zustand.
size"md" | "sm" | "lg"Die Breite des Dialogs.
titleReactNodeDie Überschrift des Dialogs, zugleich sein zugänglicher Name.
triggerReactElement<unknown, string | JSXElementConstructor<any>>Der Auslöser, ein einzelnes Element.