8.0.0 • Published 6 years ago

cf-component-modal v8.0.0

Weekly downloads
71
License
BSD-3-Clause
Repository
-
Last release
6 years ago

cf-component-modal

Cloudflare Modal Component

Installation

Installation with yarn is recommended

$ yarn add cf-component-modal

Usage

import React from 'react';
import {
  Modal,
  ModalHeader,
  ModalTitle,
  ModalClose,
  ModalBody,
  ModalFooter,
  ModalActions,
  ModalInfo
} from 'cf-component-modal';
import { Button } from 'cf-component-button';
import { Box } from 'cf-component-box';

class ModalComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      isModalOpen: false,
      width: null,
      showInfo: false
    };
    this.handleRequestOpen = this.handleRequestOpen.bind(this);
    this.handleRequestClose = this.handleRequestClose.bind(this);
  }

  handleRequestOpen() {
    this.setState({ isModalOpen: true });
  }

  handleRequestClose() {
    this.setState({ isModalOpen: false });
  }

  handleWidthToggle() {
    this.setState(oldState => ({
      width: oldState.width === 'wide' ? null : 'wide'
    }));
  }

  handleInfoToggle() {
    this.setState(() => ({
      showInfo: !this.state.showInfo
    }));
  }

  render() {
    return (
      <div>
        <Button type="default" onClick={this.handleRequestOpen}>
          Open Modal
        </Button>
        <Modal
          isOpen={this.state.isModalOpen}
          onRequestClose={this.handleRequestClose}
          width={this.state.width}
        >
          <ModalHeader>
            <ModalTitle>Hello from Modal</ModalTitle>
            <ModalClose onClick={this.handleRequestClose} />
          </ModalHeader>
          {this.state.showInfo && (
            <ModalInfo>This is some modal Info</ModalInfo>
          )}
          <ModalBody>
            <p>Look at this awesome modal!</p>
          </ModalBody>
          <ModalFooter>
            <ModalActions>
              <Box marginRight="10px" display="inline-block">
                <Button
                  type="default"
                  onClick={this.handleWidthToggle.bind(this)}
                >
                  Toggle width
                </Button>
              </Box>
              <Box marginRight="10px" display="inline-block">
                <Button
                  type="default"
                  onClick={this.handleInfoToggle.bind(this)}
                >
                  Toggle info
                </Button>
              </Box>
              <Button
                type="default"
                onClick={this.handleRequestClose.bind(this)}
              >
                Close Modal
              </Button>
            </ModalActions>
          </ModalFooter>
        </Modal>
      </div>
    );
  }
}

export default ModalComponent;
8.0.0

6 years ago

7.1.17

6 years ago

7.1.16

6 years ago

7.1.15

6 years ago

7.1.14

6 years ago

7.1.13

6 years ago

7.1.12

6 years ago

7.1.11

6 years ago

7.1.10

6 years ago

7.1.9

6 years ago

7.1.8

6 years ago

7.1.7

6 years ago

7.1.6

6 years ago

7.1.5

6 years ago

7.1.4

6 years ago

7.1.3

6 years ago

7.1.2

6 years ago

7.1.1

6 years ago

7.1.0

6 years ago

7.0.16

6 years ago

7.0.15

6 years ago

7.0.14

6 years ago

7.0.13

6 years ago

7.0.12

6 years ago

7.0.11

6 years ago

7.0.10

6 years ago

7.0.9

6 years ago

7.0.8

6 years ago

7.0.7

6 years ago

7.0.6

6 years ago

7.0.5

6 years ago

7.0.4

6 years ago

7.0.3

6 years ago

7.0.2

6 years ago

7.0.1

6 years ago

7.0.0

6 years ago

6.8.27

7 years ago

6.8.26

7 years ago

6.8.25

7 years ago

6.8.24

7 years ago

6.8.23

7 years ago

6.8.22

7 years ago

6.8.21

7 years ago

6.8.20

7 years ago

6.8.19

7 years ago

6.8.18

7 years ago

6.8.17

7 years ago

6.8.16

7 years ago

6.8.15

7 years ago

6.8.14

7 years ago

6.8.13

7 years ago

6.8.12

7 years ago

6.8.11

7 years ago

6.8.10

7 years ago

6.8.9

7 years ago

6.8.8

7 years ago

6.8.7

7 years ago

6.8.6

7 years ago

6.8.5

7 years ago

6.8.4

7 years ago

6.8.3

7 years ago

6.8.2

7 years ago

6.8.1

7 years ago

6.8.0

7 years ago

6.7.1

7 years ago

6.7.0

7 years ago

6.6.2

7 years ago

6.6.1

7 years ago

6.6.0

7 years ago

6.5.1

7 years ago

6.5.0

7 years ago

6.4.2

7 years ago

6.4.1

7 years ago

6.3.2

7 years ago

6.3.1

7 years ago

6.3.0

7 years ago

6.2.0

7 years ago

6.1.2

7 years ago

6.1.1

7 years ago

6.1.0

7 years ago

6.0.1

7 years ago

6.0.0

7 years ago

5.5.0

7 years ago

5.4.0

7 years ago

5.3.0

7 years ago

5.2.0

7 years ago

5.0.1

7 years ago

5.0.0

7 years ago

4.2.0

7 years ago

4.1.0

7 years ago

4.0.0

7 years ago

2.2.4

8 years ago

2.2.3

8 years ago

2.2.2

8 years ago

2.2.1

8 years ago

1.1.0

8 years ago

3.0.4

8 years ago

3.0.3

8 years ago

3.0.2

8 years ago

3.0.1

8 years ago

3.0.0

8 years ago

2.1.0

8 years ago

2.0.0

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.0.0

8 years ago