2.0.15 โ€ข Published 2 years ago

noah-modal v2.0.15

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

noah-modal

๐ŸŒณ ๋ชจ๋‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ๋“ค๊ธฐ

noah-modal ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค 5๊ธฐ์˜ ๋ ˆ๋ฒจ2 ๋ฏธ์…˜ ์š”๊ตฌ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๋กœ ๊ธฐ์กด ๋ฏธ์…˜์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๋ชจ๋‹ฌ์„ ๋ถ„๋ฆฌํ•˜์—ฌ npm์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ , ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง์ ‘ importํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

๐Ÿ—’๏ธ ๋ชฉ์ฐจ

๐Ÿš€ ์„ค์น˜
๐Ÿ“š ์‚ฌ์šฉ๋ฒ•
๐ŸŽฅ ์œ„์˜ ์˜ˆ์‹œ ๋ณด๊ธฐ
๐Ÿ‘จโ€๐Ÿ’ป ๋งŒ๋“ ์ด

๐Ÿš€ ์„ค์น˜

npm ๋˜๋Š” yarn์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ npm install noah-modal
$ yarn add noah-modal

๐Ÿ“š ์‚ฌ์šฉ๋ฒ•

noah-modal์€ ModalProvider์™€ useModal๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋‹ฌ์„ ๋“ฑ๋กํ•˜๊ณ  ๋ชจ๋‹ฌ์„ ์—ด๊ณ  ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1๏ธ. ModalProvider๋กœ ๋ชจ๋‹ฌ ๋“ฑ๋กํ•˜๊ธฐ

๋‹ค์Œ๊ณผ ๊ฐ™์ด src/index.tsx์— ModalProvider๋ฅผ ๋“ฑ๋กํ•˜์„ธ์š”.

// NoahModal.tsx

const NoahModal = () => {
  return <div>๋…ธ์•„ ๋ชจ๋‹ฌ์ž…๋‹ˆ๋‹ค.</div>;
};

export default NoahModal;
import React from 'react';
import ReactDOM from 'react-dom/client';
import { ModalProvider } from 'noah-modal'; // noah-modal ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

import App from './App';

ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
  <React.StrictMode>
    <ModalProvider
      modals={[
        {
          title: 'noah modal',
          component: <NoahModal />,
          name: 'myModal',
          delayMsTime: 500,
        },
      ]}
    >
      <App />
    </ModalProvider>
  </React.StrictMode>
);

ModalProvider๋Š” modal์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค. modal์€ ๋ฐฐ์—ด์ด๋ฉฐ ์•ฑ์— ๋“ฑ๋กํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชจ๋‹ฌ์„ ์š”์†Œ๋กœ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๊ฐ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

keyvalue typeํ•„์ˆ˜์ธ๊ฐ€์š”?๊ธฐ๋ณธ๊ฐ’์„ค๋ช…
titlestringyes-๋ชจ๋‹ฌ์˜ ์ œ๋ชฉ์ž…๋‹ˆ๋‹ค.
componentJSX.Elementyes-๋ชจ๋‹ฌ ๋‚ด ์ปจํ…์ธ ์ž…๋‹ˆ๋‹ค.
namestringyes-๋ชจ๋‹ฌ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฐ’์€ ๋ชจ๋‹ฌ์„ ์—ด๊ณ  ๋‹ซ์„ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค.
isAbleBackdropClickbooleannotrue๋ชจ๋‹ฌ ๋ฐ– ๋ฐฐ๊ฒฝ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, ๋ชจ๋‹ฌ์„ ๋‹ซ์„์ง€ ๋‹ซ์ง€ ์•Š์„์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.
delayMsTimenumberno0๋ชจ๋‹ฌ์ด ์—ด๊ณ  ๋‹ซ์„ ๋•Œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„(ms)์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฐ’์„ ์„ค์ •ํ•˜๋ฉด ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

2. useModal์˜ Modal๋กœ ๋ชจ๋‹ฌ ์œ„์น˜ ์ •ํ•˜๊ธฐ

๋ณดํ†ต ํ•˜๋‚˜์˜ ์•ฑ์—์„œ ํ•˜๋‚˜์˜ ๋ชจ๋‹ฌ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ModalProvider๋ณด๋‹จ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋“ค ๋ณด๋‹จ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— Modal์˜ ์œ„์น˜๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ „์—ญ์ ์œผ๋กœ ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ์„ค์ •ํ•˜๋Š” ๊ณณ์ธ App.tsx์— Modal์˜ ์œ„์น˜๋ฅผ ์ •ํ•œ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

import { useModal } from 'noah-modal'; // noah-modal ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
import { Outlet } from 'react-router-dom';
import GlobalStyle, { GlobalLayout } from 'styles/globalStyle';

function App() {
  const { Modal } = useModal(); // useModal ํ›…์„ ํ†ตํ•ด ๋žœ๋”๋ง์„ ํ•  Modal ๊ฐ€์ ธ์˜ค๊ธฐ

  return (
    <>
      <GlobalStyle />
      <GlobalLayout>
        <Outlet />
        {Modal && <Modal />}
      </GlobalLayout>
    </>
  );
}

export default App;

3๏ธ. useModal์˜ openModal๋กœ ๋ชจ๋‹ฌ ์—ด๊ธฐ

openModal ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ชจ๋‹ฌ์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ๋Š” ์•ž์„œ ๋“ฑ๋กํ•œ ๋ชจ๋‹ฌ์˜ name์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

import { useModal } from 'noah-modal';

function Home() {
  const { openModal } = useModal();

  const handleClickButton = () => {
    openModal('noahModal'); // ๋ชจ๋‹ฌ ์—ด๊ธฐ
  };
  return (
    <div>
      <button onClick={handleClickButton}>๋…ธ์•„ ๋ชจ๋‹ฌ ์—ด๊ธฐ</button>
    </div>
  );
}

export default Home;

4๏ธ. useModal์˜ closeModal๋กœ ๋ชจ๋‹ฌ ๋‹ซ๊ธฐ

closeModal ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ชจ๋‹ฌ์„ ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. openModal ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ name์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

// NoahModal.tsx
import { useModal } from 'noah-modal';

function NoahModal() {
  const { closeModal } = useModal();

  return (
    <div>
      <div>๋…ธ์•„ ๋ชจ๋‹ฌ์ž…๋‹ˆ๋‹ค.</div>
      <button onClick={() => closeModal('noahModal')}>๋ชจ๋‹ฌ ๋‹ซ๊ธฐ</button>
    </div>
  );
}

export default NoahModal;

๐ŸŽฅ ์œ„์˜ ์˜ˆ์‹œ ๋ณด๊ธฐ

๋‹ค์Œ์€ ๋…ธ์•„ ๋ชจ๋‹ฌ์ด ์—ด๊ณ  ๋‹ซ๋Š” ๋ชจ์Šต์„ ๋‚˜ํƒ€๋‚ธ ์˜์ƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋‹ฌ ์‹œ์—ฐ ์˜์ƒ

๐Ÿ‘จโ€๐Ÿ’ป ๋งŒ๋“ ์ด

2.0.15

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.13

2 years ago

2.0.5

2 years ago

2.0.14

2 years ago

2.0.4

2 years ago

2.0.11

2 years ago

2.0.7

2 years ago

2.0.12

2 years ago

2.0.6

2 years ago

2.0.9

2 years ago

2.0.10

2 years ago

2.0.8

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago