コンテンツにスキップ
Vantage
日本語
Esc
navigateopen⌘Jpreview
このページの内容

Dialog

モーダルダイアログ。

画面中央に出るモーダルです。横から出したいときは Sheet、 軽い吹き出しなら Popover を使ってください。

export const client = "only";

import {
  Dialog,
  DialogTrigger,
  DialogContent,
  DialogHeader,
  DialogTitle,
  DialogDescription,
  DialogFooter,
  DialogClose,
  Button,
} from "@squadbase/vantage/ui";

export default function Example() {
  return (
    <Dialog>
      <DialogTrigger render={<Button variant="outline" />}>エクスポート</DialogTrigger>
      <DialogContent>
        <DialogHeader>
          <DialogTitle>CSV をエクスポート</DialogTitle>
          <DialogDescription>
            いま適用しているフィルタの結果だけが出力されます。
          </DialogDescription>
        </DialogHeader>
        <DialogFooter>
          <DialogClose render={<Button variant="outline" />}>キャンセル</DialogClose>
          <Button>ダウンロード</Button>
        </DialogFooter>
      </DialogContent>
    </Dialog>
  );
}
import {
  Dialog,
  DialogTrigger,
  DialogContent,
  DialogHeader,
  DialogTitle,
  DialogDescription,
  DialogFooter,
  DialogClose,
  DialogOverlay,
  DialogPortal,
} from "@squadbase/vantage/ui";

パーツ

パーツ 役割
Dialog 状態。open / defaultOpen / onOpenChange
DialogTrigger 開くきっかけ。render でボタンにする
DialogContent 本体。showCloseButton(既定 true)で右上の × を出し分ける
DialogHeader / DialogTitle / DialogDescription 見出し
DialogFooter ボタン行。showCloseButton で閉じるボタンを足せる
DialogClose 閉じるトリガー

DialogTitle は支援技術のために必須です。見出しを見せたくない場合も、置いた上で className="sr-only" にしてください。

トリガー無しで開く

フォーム送信後などプログラムから開く場合は、open を自分で持ちます。

const [open, setOpen] = useState(false);

<Dialog open={open} onOpenChange={setOpen}>
  <DialogContent>…</DialogContent>
</Dialog>;

このページは役に立ちましたか?