Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ahamed/react-hook-modal

A simple hook based react modal package.
https://github.com/ahamed/react-hook-modal

Last synced: about 1 month ago
JSON representation

A simple hook based react modal package.

Awesome Lists containing this project

README

        

# 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
```tsx
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 (


{title}


{content}

closeModal({
action: 'CLOSE', data: {name: 'john doe', age: 32}
})}
>
Close Modal


)
}

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

return (


React Hook Modal Example


{
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


);
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(



)

```