@eteg/react-modals
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

@garden/components npm version

This package includes several varieties of modals within the Garden Design System.

Installation

npm install @garden/components

# Peer Dependencies - Also Required
npm install react react-dom styled-components @zendeskgarden/react-buttons @zendeskgarden/react-theming react-icons --save

Usage

import { ThemeProvider } from '@zendeskgarden/react-theming';
import { Modal } from '@garden/components';
import { useState } from 'react';

/**
 * Place a `ThemeProvider` at the root of your React application
 */

const modalButtons: PropsButtonModal[] = [
  {
    text: 'Loading',
    function: () => console.log('Loading'),
    isPrimary: true,
    isLoading: true
  },
  {
    text: 'Delete',
    function: () => console.log('Delete'),
    isPrimary: true,
    isDanger: true
  },
  {
    text: 'Confirm',
    function: () => console.log('Confirm'),
    isPrimary: true
  }
];

export function App() {
  const [buttonsModal, setButtonsModal] = useState < boolean > false;

  return (
    <ThemeProvider>
      <Button onClick={() => setButtonsModal(true)}>Open Buttons Modal</Button>
      <Modal
        modalClose={() => setButtonsModal(false)}
        isOpen={buttonsModal}
        title="Lorem ipsum dolor sit amet"
        buttons={modalButtons}
      >
        <p>
          Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus quis ullamcorper lacus.
          Nunc tempor aliquet quam id ullamcorper. Nunc a ex velit. Etiam commodo a eros eget
          posuere.
        </p>
      </Modal>
    </ThemeProvider>
  );
}

Modal Component

Extends HTMLAttributes

The Modal Component applies appropriate styles based on its usage and the props provided.

Prop name Type Default Description Required
modalClose function Function that closes the Modal yes
isOpen boolean If true, the modal will be opened. yes
title string Title that will appear in the header yes
modalWidth string '60%' Modal width on Screen no
alignButtons string 'space-between' Distribution of buttons along the main-axis of a flex container no
isScrolling boolean false If true, modal body has overflow-y: scroll no
modalIsDanger boolean false If true, applies danger styling no
maxMenuHeight string '150px' Maximum height of a Select input inside the Modal body no
buttons Buttons[] Array with the Buttons that will appear in the modal, check the section below (Modal Buttons) for the properties of each button no

Modal Buttons

Extends ButtonHTMLAttributes

The Modal Buttons applies appropriate styles based on its usage and the props provided.

Prop name Type Default Description Required
text string Button Text yes
function function Button onClick function yes
isPrimary boolean false If true, applies primary button styling no
isBasic boolean false If true, applies basic button styling no
isDanger boolean false If true, applies danger button styling no
isLoading boolean false If true, applies loading button styling no
disabled boolean false If true, disable the button and applies disabled button styling no
marginButto string 0 Used when the buttons are aligned left or right, to leave a space between them no

Package Sidebar

Install

npm i @eteg/react-modals

Homepage

eteg.com.br

Weekly Downloads

0

Version

1.0.0

License

Apache-2.0

Unpacked Size

26.1 kB

Total Files

8

Last publish

Collaborators

  • vitorpeixoto
  • augustobritodev
  • eteg-owner