8.0.0 • Published 7 years ago

cf-component-modal v8.0.0

Weekly downloads
71
License
BSD-3-Clause
Repository
-
Last release
7 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

7 years ago

7.1.17

7 years ago

7.1.16

7 years ago

7.1.15

7 years ago

7.1.14

7 years ago

7.1.13

7 years ago

7.1.12

7 years ago

7.1.11

7 years ago

7.1.10

7 years ago

7.1.9

7 years ago

7.1.8

7 years ago

7.1.7

7 years ago

7.1.6

7 years ago

7.1.5

7 years ago

7.1.4

7 years ago

7.1.3

7 years ago

7.1.2

7 years ago

7.1.1

7 years ago

7.1.0

7 years ago

7.0.16

7 years ago

7.0.15

8 years ago

7.0.14

8 years ago

7.0.13

8 years ago

7.0.12

8 years ago

7.0.11

8 years ago

7.0.10

8 years ago

7.0.9

8 years ago

7.0.8

8 years ago

7.0.7

8 years ago

7.0.6

8 years ago

7.0.5

8 years ago

7.0.4

8 years ago

7.0.3

8 years ago

7.0.2

8 years ago

7.0.1

8 years ago

7.0.0

8 years ago

6.8.27

8 years ago

6.8.26

8 years ago

6.8.25

8 years ago

6.8.24

8 years ago

6.8.23

8 years ago

6.8.22

8 years ago

6.8.21

8 years ago

6.8.20

8 years ago

6.8.19

8 years ago

6.8.18

8 years ago

6.8.17

8 years ago

6.8.16

8 years ago

6.8.15

8 years ago

6.8.14

8 years ago

6.8.13

8 years ago

6.8.12

8 years ago

6.8.11

8 years ago

6.8.10

8 years ago

6.8.9

8 years ago

6.8.8

8 years ago

6.8.7

8 years ago

6.8.6

8 years ago

6.8.5

8 years ago

6.8.4

8 years ago

6.8.3

8 years ago

6.8.2

8 years ago

6.8.1

8 years ago

6.8.0

8 years ago

6.7.1

8 years ago

6.7.0

8 years ago

6.6.2

8 years ago

6.6.1

8 years ago

6.6.0

8 years ago

6.5.1

8 years ago

6.5.0

8 years ago

6.4.2

8 years ago

6.4.1

8 years ago

6.3.2

8 years ago

6.3.1

8 years ago

6.3.0

8 years ago

6.2.0

8 years ago

6.1.2

8 years ago

6.1.1

8 years ago

6.1.0

8 years ago

6.0.1

8 years ago

6.0.0

8 years ago

5.5.0

8 years ago

5.4.0

8 years ago

5.3.0

8 years ago

5.2.0

8 years ago

5.0.1

8 years ago

5.0.0

9 years ago

4.2.0

9 years ago

4.1.0

9 years ago

4.0.0

9 years ago

2.2.4

9 years ago

2.2.3

9 years ago

2.2.2

9 years ago

2.2.1

9 years ago

1.1.0

9 years ago

3.0.4

10 years ago

3.0.3

10 years ago

3.0.2

10 years ago

3.0.1

10 years ago

3.0.0

10 years ago

2.1.0

10 years ago

2.0.0

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago

0.0.0

10 years ago