0.0.7 โข Published 1 year ago
@jaymyong66/simple-modal v0.0.7
Modal
Displays a dialog with a custom content that requires attention or provides additional information. It also provides three modal components that utilize base-modal.
- Alert Modal
- Confirm Modal
- Prompt Modal
installation
npm install @jaymyong66/simple-modal
Component spec
๐ฏ Base Modal
The main component to display a modal.
prop name | type | default value | description |
---|---|---|---|
children | ReactNode | childrens of modal component | |
isOpen | boolean | The state of the modal being open or closed | |
onToggle | () => void | the handler function to toggle modal | |
position | 'center' \| 'bottom' | center | position of modal on display |
ModalHeader
The header of the modal.
prop name | type | default value | description |
---|---|---|---|
children | ReactNode | childrens of Modal component | |
title | string | title of modal |
ModalContent
The body of the modal. (example - checkbox, input, textarea)
prop name | type | default value | description |
---|---|---|---|
children | ReactNode | childrens of ModalContent component |
ModalFooter
The footer of the modal. (example - buttons)
prop name | type | default value | description |
---|---|---|---|
children | ReactNode | childrens of ModalFooter component |
use example
import { Modal } from '@jaymyong66/simple-modal';
const OtherModal = () => {
const [isOpen, setIsOpen] = useState(false);
const handleToggle = () => setIsOpen((prev) => !prev);
return (
<Modal position="center" isOpen={isOpen} onToggle={handleToggle}>
<Modal.ModalHeader title="์นด๋์ฌ ์ ํ"></Modal.ModalHeader>
<Modal.ModalContent>
<CheckBoxField />
</Modal.ModalContent>
<Modal.ModalFooter>
<ConfirmButton />
</Modal.ModalFooter>
</Modal>
);
};
Features
When the modal opens
- Dimmed outside the modal
- Content behind a modal is inert, meaning that users cannot interact with it.
When the modal closes
- Pressing
ESC
key closes the modal - Click dimmed to close
๐ฏ Alert Modal
A modal that informs the user of a message and has a confirmation button.
prop name | type | default value | description |
---|---|---|---|
isOpen | boolean | The state of the modal being open or closed | |
onToggle | () => void | The handler function to toggle modal | |
onConfirm | () => void | The handler function to click event of confirm button | |
position | 'center' \| 'bottom' | center | Position of modal on display |
size | 'large' \| 'medium' \| 'small' | large | Size of modal on display |
title | string | Title of modal header | |
caption | string | Caption of modal header | |
confirmButtonLabel | string | Caption of confirm button |
use example
import { AlertModal } from '@jaymyong66/simple-modal';
const OtherModal = () => {
const [isOpen, setIsOpen] = useState(false);
const handleToggle = () => setIsOpen((prev) => !prev);
const handleConfirm = () => {
console.log('confirm');
handleToggle();
};
return (
<AlertModal
position="center"
size="small"
isOpen={isOpen}
onToggle={handleToggle}
onConfirm={handleConfirm}
title="์์ด๋๋ฅผ ์
๋ ฅํด์ฃผ์ธ์."
caption="์์ด๋๋ ํ์๋ก ์
๋ ฅํด์ผ ํฉ๋๋ค."
confirmButtonLabel="ํ์ธ"
/>
);
};
๐ฏ Confirm Modal
A modal that gives the user a choice and has confirm and cancel buttons
prop name | type | default value | description |
---|---|---|---|
isOpen | boolean | The state of the modal being open or closed | |
onToggle | () => void | The handler function to toggle modal | |
onConfirm | () => void | The handler function to click event of confirm button | |
position | 'center' \| 'bottom' | center | Position of modal on display |
size | 'large' \| 'medium' \| 'small' | large | Size of modal on display |
title | string | Title of modal header | |
caption | string | Caption of modal header | |
confirmButtonLabel | string | Caption of confirm button | |
cancelButtonLabel | string | Caption of cancel button |
use example
import { ConfirmModal } from '@jaymyong66/simple-modal';
const OtherModal = () => {
const [isOpen, setIsOpen] = useState(false);
const handleToggle = () => setIsOpen((prev) => !prev);
const handleConfirm = () => {
console.log('confirm');
handleToggle();
};
return (
<ConfirmModal
position="center"
size="small"
isOpen={isOpen}
onToggle={handleToggle}
onConfirm={handleConfirm}
title="์นด๋๋ฅผ ์ญ์ ํ์๊ฒ ์ต๋๊น?"
caption="์ญ์ ํ๋ฉด ๋ณต๊ตฌํ์ค ์ ์์ต๋๋ค."
confirmButtonLabel="ํ์ธ"
confirmButtonLabel="์ทจ์"
/>
);
};
๐ฏ Prompt Modal
A modal with an input field to receive input from the user and an OK/Cancel button.
prop name | type | default value | description |
---|---|---|---|
isOpen | boolean | The state of the modal being open or closed | |
onToggle | () => void | The handler function to toggle modal | |
onChange | () => void | A handler function that receives the value of the change event. | |
onSubmit | (value: string) => void | A handler function that receives the value of the submit event. | |
position | 'center' \| 'bottom' | center | Position of modal on display |
size | 'large' \| 'medium' \| 'small' | large | Size of modal on display |
title | string | Title of modal header | |
value | string | Value received from user | |
confirmButtonLabel | string | Caption of confirm button | |
cancelButtonLabel | string | Caption of cancel button |
use example
import { PromptModal } from '@jaymyong66/simple-modal';
const OtherModal = () => {
const [isOpen, setIsOpen] = useState(false);
const [value, setValue] = useState('');
const handleToggle = () => setIsOpen((prev) => !prev);
const handleChange = (e: ChangeEvent<HTMLInputElement>) => setValue(e.target.value);
const handleSubmit = (value: string) => {
console.log(value);
handleToggle();
}
return (
<PromptModal
position="bottom"
size="medium"
isOpen={isOpen}
onToggle={handleToggle}
title="์ฟ ํฐ ๋ฒํธ๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์."
value={value}
onChange={handleChange}
onSubmit={handleSubmit}
confirmButtonLabel="ํ์ธ"
confirmButtonLabel="์ทจ์"
/>
);
};