0.1.0 • Published 4 years ago

@opuscapita/react-modal v0.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

react-modal

Description

React modal component

Installation

npm install @opuscapita/react-modal styled-components

Demo

View the DEMO

Change log

View the Change log

Migrate guide

View the Migrate guide between major versions

Builds

UMD

A build with compiled styles in the .js file. Also minified version available in the lib/umd directory.

CommonJS/ES Module

You need to configure your module loader to use cjs or es fields of the package.json to use these module types. Also you need to configure sass loader, since all the styles are in sass format.

API

Modal

Prop nameTypeDefaultDescription
idstringoc-modalComponent ID
classNamestringoc-modalComponent class
isOpenbooleantrueIs modal visible
widthstring100%Modal width as CSS style
heightstring100%Modal height as CSS style

Modal.Header

Prop nameTypeDefaultDescription
idstringoc-modal-headerComponent ID
classNamestringoc-modal-headerComponent class

Modal.Body

Prop nameTypeDefaultDescription
idstringoc-modal-bodyComponent ID
classNamestringoc-modal-bodyComponent class
isBorderVisiblebooleanfalseShow border around body area

Modal.Footer

Prop nameTypeDefaultDescription
idstringoc-modal-footerComponent ID
classNamestringoc-modal-footerComponent class

Modal.ButtonContainer

Prop nameTypeDefaultDescription
idstringoc-modal-button-containerComponent ID
classNamestringoc-modal-button-containerComponent class

Code example

import React from 'react';
import Modal from '@opuscapita/react-modal';

export default class ReactView extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      isOpen: false,
    };
  }

  toggleModal = () => {
    this.setState((prevState) => ({ isOpen: !prevState.isOpen }));
  }

  render() {
    const { isOpen } = this.state;
    return (
      <div>
        <button type="button" onClick={this.toggleModal}>
          Open Modal
        </button>
        <Modal
          isOpen={isOpen}
        >
          <Modal.Header>
            Attention
          </Modal.Header>
          <Modal.Body>
            This is the example modal!
          </Modal.Body>
          <Modal.Footer>
            <Modal.ButtonContainer>
              <button type="button" onClick={this.toggleModal}>
                Close Modal
              </button>
            </Modal.ButtonContainer>
          </Modal.Footer>
        </Modal>
      </div>
    );
  }
}