npm.io
0.4.0 • Published 1 year ago

@tourmalinecore/react-tc-modal

Licence
MIT
Version
0.4.0
Deps
1
Size
11 kB
Vulns
0
Weekly
0

Tourmaline Core react modal component

Modal dialog component for React.JS

Demo

Instalation

The package can be installed via npm:

npm install @tourmalinecore/react-tc-modal --save

Or via yarn:

yarn add @tourmalinecore/react-tc-modal

Do not forget to import styles if you want to use the default styling.

should be imported once in your root component

import '@tourmalinecore/react-tc-modal/es/index.css';
import '@tourmalinecore/react-tc-ui-kit/es/index.css';

NOTE: You may want to re-style on your own. In that case you don't have to import the styles.

Examples

Simple Message:

import React from 'react';
import { Modal } from '@tourmalinecore/react-tc-modal';

function MessageModal({}){
  return (
    <Modal
      title="Important message!"
      content="You are now reading an important message."
      showApply={false}
      onCancel={false}
    />
  );
}

Confimation:

function ConfimationModal({onConfirm, onCancel, onClose}){
  return (
    <Modal
      className="confirm-modal" 
      title="Confirmation"
      content="Are you sure you want to continue?"
      onApply={onConfirm}
      applyText="Confirm"
      onCancel={onCancel}
      cancelText="Cancel"
      onClose={onClose}
    />
  );
}

Form:

const [name, setName] = useState('');

return ( 
  <Modal
    className="confirm-modal" 
    title="Registration"
    subtitle="Fill the form to complete the registration"
    content={(
      <div> 
        <input 
          type="text" 
          name="name" 
          value={name} 
          onChange={(e) => setName(e.target.value)} 
        />
      </div>
    )}
    onApply={sendForm}
    applyText="Register"
    onCancel={onCancel}
    cancelText="Cancel"
  />
);

Configuration

Name Type Default Description
style Object {} Additional style
className String "" Additional classname
customHeader Function(onClose) => JSX Replaces title and subtitle container
title String / JSX null Modal's title
subtitle String / JSX null Modal's subtitle
content String / JSX null Modal's content
language String / Object "en" en/ru or Object, see example here(TODO file link)
icon JSX () => {} Heading title icon
overlay Boolean true
maxWidth Int 600 Max width for modal body, pass null for no style
noPaddingBody Boolean false Determines should modal body have padding
portalTarget Object document.body Portal target
parentOpenClassName String "tc-modal-opened" ClassName for portalTarget on modal opened
onClose Function () => {} Triggered when modal closed
isLoading Boolean false If true, dispalays loader on the buttons
showApply Boolean true Show the Apply button
onApply Function () => {} OnClick handler for the Apply button
applyText String "Apply" Text for the Apply button
showCancel Boolean true Show the Cancel button
onCancel Function () => {} OnClick handler for the Cancel button
cancelText String "Cancel" Text for the Cancel button
isButtonsDisabled Boolean false Disabled state for both Cancel and Apply buttons

Keywords