1.0.9 • Published 1 year ago

@saimin/react-modal-manager v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Centralized React Modal Manager

This is a customizable modal component library for React.js. It provides a flexible API to manage and display modals in your application.

Installation

To install the package, use npm:

npm install @saimin/react-modal-manager

Demo

Demo Demo Source Code

Usage

Import the Modal Provider

Wrap your application with the ModalProvider component to manage modals:

import React from 'react';
import ReactDOM from 'react-dom';
import { ModalProvider } from '@saimin/react-modal-manager';

const App = () => {
  return (
    <ModalProvider>
      {/* Your application components */}
    </ModalProvider>
  );
};

ReactDOM.render(<App />, document.getElementById('root'));

Opening a Modal

Use the useModal hook to access modal management functions. To open a modal, call the open method with a unique ID and modal properties:

import React from 'react';
import { useModal } from '@saimin/react-modal-manager';

const MyComponent = () => {
  const { open } = useModal();

  const openMyModal = () => {
    open('my-modal', {
      content: <div>My Modal Content</div>,
      backdropOpacity: 0.5,
      fullscreen: false,
      position: 'center',
      animationType: 'fade',
    });
  };

  return <button onClick={openMyModal}>Open Modal</button>;
};

export default MyComponent;

Closing a Modal

To close a specific modal, use the close method with the modal ID:

import React from 'react';
import { useModal } from '@saimin/react-modal-manager';

const MyComponent = () => {
  const { close } = useModal();

  const closeMyModal = () => {
    close('my-modal');
  };

  return <button onClick={closeMyModal}>Close Modal</button>;
};

export default MyComponent;

You can also close all open modals at once:

const { closeAll } = useModal();
closeAll();

Applying props to all modals

To apply props to all modal, add config prop to ModalProvider.

<ModalProvider config={{
  animationType: "zoom"
}}>
  ...children nodes
</ModalProvider>

Modal Props

The ModalProps object allows you to customize the appearance and behavior of your modal. Here are the available options:

ModalProps

PropTypeDescription
contentReactNodeThe content to be displayed inside the modal.
backdropOpacitynumberThe opacity of the backdrop.
backdropColorstringThe color of the backdrop.
backdropPaddingstring | numberPadding around the modal content.
fullscreenbooleanWhether the modal should cover the entire screen.
positioncenter | center-left | center-right | top-center | top-left | top-right | bottom-center | bottom-left | bottom-rightPosition of the modal on the screen.
hideOnClickBackDropbooleanWhether to close the modal when clicking on the backdrop.
animationTypefade | zoom | slide-from-top | slide-from-bottom | slide-from-right | slide-from-leftThe animation type for modal entrance and exit.

Example

Here is a complete example of using the modal component:

import React from 'react';
import ReactDOM from 'react-dom';
import { ModalProvider, useModal } from '@saimin/react-modal-manager';

const MyApp = () => {
  const { open } = useModal();

  const showModal = () => {
    open('example-modal', {
      content: <div>Example Modal Content</div>,
      fullscreen: false,
      animationType: 'zoom',
    });
  };

  return <button onClick={showModal}>Show Modal</button>;
};

ReactDOM.render(
  <ModalProvider>
    <MyApp />
  </ModalProvider>,
  document.getElementById('root')
);
1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.2

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago