Socket
Socket
Sign inDemoInstall

mui-modal-provider

Package Overview
Dependencies
8
Maintainers
1
Versions
32
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    mui-modal-provider

[![codecov](https://codecov.io/gh/Quernest/mui-modal-provider/branch/master/graph/badge.svg?token=AL2WK480NF)](https://codecov.io/gh/Quernest/mui-modal-provider) [![package version](https://img.shields.io/npm/v/mui-modal-provider.svg?style=flat-square)](h


Version published
Weekly downloads
5.4K
decreased by-20.49%
Maintainers
1
Install size
89.7 kB
Created
Weekly downloads
 

Readme

Source

mui-modal-provider

codecov package version package downloads package license

MUI-modal-provider is a helper based on Context API and React Hooks for simplified work with modals (dialogs) built on Material-UI or custom solutions with suitable props.

Install

npm install mui-modal-provider # or yarn add mui-modal-provider

Usage

import React from 'react';
import { createRoot } from 'react-dom/client';
import ModalProvider, { useModal } from 'mui-modal-provider';
import Dialog, { DialogProps } from '@mui/material/Dialog';
import DialogTitle from '@mui/material/DialogTitle';
import Button from '@mui/material/Button';

interface SimpleDialogProps extends DialogProps {
  title: string,
};

// Create the dialog you want to use
const SimpleDialog: React.FC<SimpleDialogProps> = ({ title, ...props }) => (
  <Dialog {...props}>
    <DialogTitle>{title}</DialogTitle>
  </Dialog>
);

// Use modal hook and show the dialog
const App = () => {
  const { showModal } = useModal();

  return (
    <Button
      variant="contained"
      onClick={() => showModal(SimpleDialog, { title: 'Simple Dialog' })}
      color="primary"
    >
      simple dialog
    </Button>
  );
};

const container = document.getElementById('root');
const root = createRoot(container);

// Wrap the app with modal provider
root.render(
  <ModalProvider>
    <App />
  </ModalProvider>
);

API

Modal Provider

PropertyTypeDefaultDescriptionRequired
legacyBooleanfalseSet to true if you want to use mui < 5 version.false
suspenseBooleantrueWraps your modal with the Suspensefalse
fallbackNullable<ReactNode>nullCustom component for the Suspense fallback propfalse
childrenReactNodeundefined-true

The rest will be added later... Look at examples 😊

Examples

See more examples in example folder

Compatibility

For Material-UI v4 use legacy prop on the ModalProvider.

Developing & linking locally

Because this module utilizes react hooks, it must be linked in a special way that is described here in this react github issue comment

  1. Update the react and react-dom versions in this module’s package.json devDependencies match the versions in whatever project you’re linking them in.
  2. yarn install in this module’s root directory
  3. Because this module uses hooks, we need to link the module’s react dependency into the project we will be using to test the linked module
  4. cd node_modules/react then yarn link then inside your linked project run yarn link react
  5. In the linked project’s root directory run yarn install mui-modal-provider
  6. Then in the module’s root directory run yarn link
  7. In the linked project’s root directory run yarn link mui-modal-provider

Keywords

FAQs

Last updated on 13 Dec 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc