Modal
Modal component supporting various styles.
Show code Hide code
import { Button, Modal } from '@mylighthouse/prism-react';
import { useState } from 'react';
export default function ModalDefault(): React.JSX.Element {
const [open, setOpen] = useState(false);
return (
<>
<Button buttonType="secondary" onClick={() => setOpen(true)}>
Open Modal
</Button>
<Modal onOpenChange={setOpen} open={open}>
<Modal.Header>
<Modal.Header.Title>What's new in Lighthouse</Modal.Header.Title>
<Modal.Header.Close />
</Modal.Header>
<Modal.Content>
<p className="text-300--regular">
Revenue reports can now be exported in Excel format with
customizable column layouts.
</p>
</Modal.Content>
<Modal.Footer>
<Button buttonType="secondary" onClick={() => setOpen(false)}>
Learn more
</Button>
<Button onClick={() => setOpen(false)}>Got it</Button>
</Modal.Footer>
</Modal>
</>
);
} API Reference
Modal
| Name | Default | Type | Description |
|---|---|---|---|
open * | -- | boolean | -- |
onOpenChange | -- | (open: boolean) => void | -- |
unsafe_modal | -- | boolean | "trap-focus" | Exposed only for testing purposes. |
unsafe_portalContainer | -- | HTMLElement | ShadowRoot | RefObject<HTMLElement | ShadowRoot> | Exposed only for testing purposes. |
Modal.Header
No component-specific props
Modal.Header.Title
No component-specific props
Modal.Header.Close
| Name | Default | Type | Description |
|---|---|---|---|
buttonType | -- | "primary" | "secondary" | "critical" | "critical-secondary" | "warning" | "success" | "intelligence" | "intelligence-secondary" | "brand" | "ghost" | "unstyled" | -- |
href | -- | string | -- |
icon | -- | IconName | -- |
iconAfter | -- | IconName | -- |
iconBefore | -- | IconName | -- |
isDisabled | -- | boolean | -- |
isLoading | -- | boolean | -- |
loadingMessage | -- | string | -- |
size | -- | "small" | "medium" | "large" | -- |
Modal.Content
No component-specific props
Modal.Footer
No component-specific props