Skip to main content

ModalBottomSheet

<ModalBottomSheet /> is a component to display CTA, alert or other information with covering background screen content.

It shows as Bottom Sheet in Mobile, and as Modal in larger viewport.

Loading...

How to use

import { ModalBottomSheet } from '@vibrant-ui/components';

Properties

PropTypeDefaultDescription
openbooleanControl open status
defaultOpenbooleanSet initial open status. Incompatible with open
renderOpener(_: { open: () => void; isOpen: boolean }) => ReactElementChildSet Modal opener with open function
titlestringModal's title
subtitlestringModal's subtitle
sizelg | mdmdSet Modal width in PC screen
renderContents(_: { close: () => void }) => ReactElementChild;Set content of Modal
onClose() => voidFunction runs when outside of Modal or close button clicked
[primaryButtonOptions](#CTA Button){ title: string, disabled: boolean, onClick: () => void }Set primary button properties to render
[secondaryButtonOptions](#CTA Button){ title: string, disabled: boolean, onClick: () => void }Set secondary button properties to render
[subButtonOptions](#CTA Button){ title: string, disabled: boolean, onClick: () => void }Set sub button properties to render

Usage

Control

Controls status of open with open property.

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

return (
<>
<Pressable onClick={() => setOpen(true)}>
Open
</Pressable>
<Box mx="auto">
<ModalBottomSheet
open={open}
onClose={() => setOpen(false)}
/>
</Box>
</>
);
};

Non-Control

defaultOpen set initial open status. Note that it only set status initial value. After initial rendering, open status is only controled by internal of ModalBottomSheet.

renderOpener property, which is render prop, set element that can control ModalButtonSheet. It provides isOpen which reperesents open status, and open which can change the open status of ModalBottomSheet.

const Uncontrolled = () => (
<ModalBottomSheet
defaultOpen={false}
renderOpener={({ open, isOpen }) => (
<Pressable onClick={open}>열기</Pressable>
)}
/>
);

CTA Button

CTA button can be used by primaryButtonOptions, secondaryButtonOptions, subButtonOptions properties.

Note that secondary or sub buttons can not used without primary button neither secondary and sub buttons can not set simultaneously.

Loading...
Previous
ImageThumbnail