confirm-modal-context-hook
TypeScript icon, indicating that this package has built-in type declarations

0.0.4 • Public • Published

confirm-modal-context-hook

Install

yarn add confirm-modal-context-hook

Usage

Decrale your modal component. It receive props, message, exec and cancel.

  • message is a type of strings will be shown in modal.
  • exec is a type of functions will execute a process which you want to confirm.
  • cancel is a type of functions will close your modal.
function Modal({ message, exec, cancel }) {
  return (
    <div
      style={{
        width: "700px",
        height: "400px",
        margin: "0 auto",
        backgroundColor: "white"
      }}
    >
      <h1>{message}</h1>
      <button onClick={exec}>Yes</button>
      <button onClick={cancel}>No</button>
    </div>
  );
}

Wrap your application component with ConfirmModalProvider, And pass your modal component as Component props. (And you can pass custom overlay component as Overlay props.)

import { ConfirmModalProvider } from "confirm-modal-context-hook";
 
function App() {
  return (
    <ConfirmModalProvider Component={Modal} Overlay={Overlay}>
      <Content />
    </ConfirmModalProvider>
  );
}

Get configureModal func with useConfirmModal passed exec function and modal message string. Use configureModal as trigger a danger process.

import { useConfirmModal } from "confirm-modal-context-hook";
 
function Content() {
  const configureModal = useConfirmModal({
    exec: () => console.log("hoge"),
    message: 'May I output "hoge" to console?'
  });
  return (
    <div>
      <button onClick={configureModal}>output "hoge" to console.</button>
    </div>
  );
}

License

MIT

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.0.4
    1
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.0.4
    1
  • 0.0.3
    0
  • 0.0.1
    0

Package Sidebar

Install

npm i confirm-modal-context-hook

Weekly Downloads

1

Version

0.0.4

License

MIT

Unpacked Size

18 kB

Total Files

12

Last publish

Collaborators

  • sosukesuzuki