Modal

ユーザの選択を待つ子ウィンドウコンポーネント

OverlayProviderの子孫で使用してください。OverlayProviderはアプリケーション内で複数必要ありません。ModalBody,ModalHeader,ModalAlignを必要に応じて利用できます。

BASIC

import { FC, useState } from 'react'
import {
  Button,
  Modal,
  ModalAlign,
  ModalBody,
  ModalHeader,
  OverlayProvider,
} from '@charcoal-ui/react'

export const ExampleModal: FC = () => {
  const [isOpen, setIsOpen] = useState(false)
  return (
    <>
      <Button onClick={() => setIsOpen(true)}>open</Button>
      <OverlayProvider>
        <Modal
          title="modal"
          isOpen={isOpen}
          onClose={() => setIsOpen(false)}
          portalContainer={
            typeof document !== 'undefined' ? document.body : undefined
          }
        >
          <ModalBody>
            <ModalHeader />
            <ModalAlign>
              <Button onClick={() => setIsOpen(false)}>close</Button>
            </ModalAlign>
          </ModalBody>
        </Modal>
      </OverlayProvider>
    </>
  )
}

size

isDismissable

bottomSheet

Props

namedescriptiontypedefaultrequired
isOpenモーダルの開閉状態booleanYES
onCloseバツボタンやオーバーレイをクリックした際や、ESCキーを押した際に呼ばれる関数() => voidYES
titleタイトルstringYES
bottomSheetモバイル向けに下からシート形式で表示するかどうか、"full"だと画面の高さに合わせて表示されるboolean | "full"falseNO
isDismissableバツボタンを表示しモーダルを閉じれるようにする、かつモーダルの背景をクリックすることで閉じれるようにするbooleanfalseNO
portalContainerNext.jsで使用する際はdocument.bodyを渡すHTMLElementNO
sizeモーダルのサイズ"S" | "M" | "L""M"NO
zIndexz-indexnumberNO