0.0.12 • Published 2 years ago

@ahamed07/react-hook-modal v0.0.12

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

React Hook Modal

Motivation

The basic idea is to open a modal dynamically. For example you can open a modal inside any conditional, on a button click or many more. This package is created only for using the modal functionalities and leave the modal content component to the user. This package is allowing the developers to create their own modal content component and also allowing them to provide extensive data passing on closing the modal.

Features

  • Hook based implementation
  • Easy to use
  • Only showModal and closeModal functions are enough.
  • Ability to send custom data after closing the modal.
  • Multiple actions on close are available.
  • Could be used as a confirm popover.

Installation

npm install @ahamed07/react-hook-modal

or

yarn add @ahamed07/react-hook-modal

Usage

import React from 'react';
import ReactDOM from 'react-dom/client';
import { ModalProvider, useModal } from '@ahamed07/react-hook-modal';

const ModalContent = ({title, content}) => {
	const { closeModal } = useModal();
	return (
    <div>
      <h1>{title}</h1>
      <div>{content}</div>

      <button
        type="button"
        onClick={() => closeModal({
          action: 'CLOSE', data: {name: 'john doe', age: 32}
        })}
      >
        Close Modal
      </button>
    </div>
	)
}

const  App = () => {
  const { showModal } = useModal();

  return (
    <div>
      <h1> React Hook Modal Example </h1>
      <button
        type="button"
        onClick={async () => {
          const { action } = await showModal({
            component: ModalContent,
            props: {
              title: 'This is a simple modal title',
              content: 'Lorem ipsum dolor...'
            }
          });

          if (action === 'CLOSE') {
            // Do some stuff here
          }
        }}
      >
        Open Modal
      </button>
    </div>
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <ModalProvider>
    <App />
  </ModalProvider>
)
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

1.0.0

2 years ago