Skip to content

gentrithalili1/react-promise-confirmation-dialog

Repository files navigation

Welcome to react-promise-confirmation-dialog 👋

Version License: MIT

Intro

React Promise Confirmation Dialog is a simple and easy-to-use package that allows you to create dynamic and customizable confirmation dialogs. You can easily handle user confirmation and rejection responses using promises.

This package is customizable, allowing you to easily tailor the look and feel of your dialogs to match the style of your application.

Install

Install react-promise-confirmation-dialog via yarn or npm

yarn add react-promise-confirmation-dialog
npm i react-promise-confirmation-dialog

Usage

import { PromiseConfirmationContextProvider } from 'react-promise-confirmation-dialog'
function Index() {
  return (
    <PromiseConfirmationContextProvider>
      <App />
    </PromiseConfirmationContextProvider>
  );
}
function App() {
  const handleConfirmClick = async () => {
    try {
      await confirmation.confirm()
      // Your code after confirmation is resolved ...
    } catch (rejectReason) {
      // Your code after confirmation is declined ...
    }
  };
  
  return (
    <div>
      <button onClick={handleConfirmClick}>Confirm</button>
    </div>
  );
}

Props and Configurations

You can provide default configuration to PromiseConfirmationContextProvider

function Index() {
  return (
    <PromiseConfirmationContextProvider config={{
        portalElementId: '',
        text: '',
        confirmButtonLabel: '',
        cancelButtonLabel: ''
    }}>
      <App />
    </PromiseConfirmationContextProvider>
  );
}
name type default description
portalElementId string undefined Custom element to render the confirmation modal
text string Are you sure? Modal title.
confirmButtonLabel string Confirm Confirm button text
cancelButtonLabel string Cancel Decline button text

You can also provide custom params everytime you open a confirmation dialog

function App() {
    const handleConfirmClick = async () => {
        try {
            await confirmation.confirm({
                text: '',
                confirmButtonLabel: '',
                cancelButtonLabel: '',
                customData: '',
                customComponent: ''
            })
            // Your code after confirmation is resolved ...
        } catch (rejectReason) {
            // Your code after confirmation is declined ...
        }
    };

    return (
        <div>
            <button onClick={handleConfirmClick}>Confirm</button>
        </div>
    );
}
name type default description
text string Are you sure? Modal title
confirmButtonLabel string Confirm Confirm button text
cancelButtonLabel string Cancel Decline button text
customData any undefined Custom data when using custom components
customComponent (params: Omit<PromiseConfirmationData, 'customComponent'>) => ReactNode undefined Custom component

Todos

  • Default custom component support

Author