0.1.11 • Published 7 years ago

sui-react-ezmodal v0.1.11

Weekly downloads
10
License
MIT
Repository
-
Last release
7 years ago

Semantic UI React EZModal

Return of the EZ

Back in Meteor land I had a helpful package called EZModal.

Now in react land (semantic-ui-react land specifically), there was a need for it's return.

Install

npm install --save sui-react-ezmodal

Usage

See index.js for the full component spec

import React, { PropTypes, Component } from 'react';
import { Grid, Segment, Button, Header } from 'semantic-ui-react';
import EZModal from 'sui-react-ezmodal';

class NetworkConfig extends Component {
  render() {
    return (
      <EZModal
        initiallyOpens // initially open?
        // required trigger element
        trigger={<Button basic icon="plus" content="Do Something Cool" />}
        // optional data to be passed to content & actions
        data={{ name: 'bobby' }}
        // required content element with props passed
        // `data` is original passed data, `formData` is component state for controlled inputs
        content={({ data, formData, change, resetFormData, setError, setLoading }) => {
          return (
            <Form.Group widths="equal">
              <Button type="submit" className="hidden" />
              <Form.Field>
                <label>Provider Name</label>
                <Input onChange={change} value={formData.name || ''} name="name" />
                <Button onClick={resetFormData} text="Reset" />
              </Form.Field>
            </Form.Group>
          );
        }}
        // optional bool to show spinner overlay
        loading
        // optional actions, hide/submit event handlers passed as props
        actions={({ hide, submit }) => {
          return [
            <Button onClick={hide} key="close" icon="remove" floated="left" content="Cancel" />,
            <Button onClick={submit} key="submit" icon="checkmark" color="green" content="OK" />,
          ]
        }}
        // optional title header
        header="This is my new Modal"
        // callback function after submit. if you return a promise, it will resolve before closing
        handleSubmit={(data) => console.log(data)}
        // optional delete button, instead of `actions`
        handleRemove={(data) => console.log('deleting!', data)}
        removeHeader="Are you sure?"
        removeContent={(data) => {
          return <p>Really remove {data.name}?</p>
        }}
      />
    );
  }
}

License

MIT 2016

0.1.11

7 years ago

0.1.10

7 years ago

0.1.9

7 years ago

0.1.8

7 years ago

0.1.7

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3-4

7 years ago

0.1.3-3

7 years ago

0.1.3-2

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.15

7 years ago

0.0.13

7 years ago

0.0.12

7 years ago

0.0.10

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago