Modal
Modal is an enhancement upon Dialog. Typically, a masking layer is provided to obscure the rest of the page in some fashion, while also blocking outside click and keystroke access until the modal is dismissed.
Installation
npm i boundless-modal --save
Then use it like:
/** @jsx createElement */ import createElement PureComponent from 'react';import Button from 'boundless-button';import Modal from 'boundless-modal'; state = showModal: false { this; } { if thisstateshowModal return <Modal ='demo-modal'> <h3>Account Deletion</h3> <p>Are you sure you want to remove your account permanently?</p> <Button =>Yes</Button> <Button ='demo-modal-cancel-button' =>No</Button> </Modal> ); } } { return <div> <Button ='trigger' => Delete Account </Button> this </div> ; }}
Modal can also just be directly used from the main Boundless library. This is recommended when you're getting started to avoid maintaining the package versions of several components:
npm i boundless --save
the ES6 import
statement then becomes like:
;
Props
Note: only top-level props are in the README, for the full list check out the website.
Required Props
There are no required props.
Optional Props
-
*
· any React-supported attributeExpects Default Value any
n/a
-
after
· arbitrary content to be rendered after the dialog in the DOMExpects Default Value any renderable
null
-
before
· arbitrary content to be rendered before the dialog in the DOMExpects Default Value any renderable
null
-
captureFocus
· determines if focus is allowed to move away from the dialogExpects Default Value bool
true
-
closeOnEscKey
· enable detection of "Escape" keypresses to triggerprops.onClose
; if a function is provided, the return value determines if the dialog will be closedExpects Default Value bool or function
false
-
closeOnInsideClick
· enable detection of clicks inside the dialog area to triggerprops.onClose
; if a function is provided, the return value determines if the dialog will be closedExpects Default Value bool or function
false
-
closeOnOutsideClick
· enable detection of clicks outside the dialog area to triggerprops.onClose
; if a function is provided, the return value determines if the dialog will be closedExpects Default Value bool or function
false
-
closeOnOutsideFocus
· enable detection of focus outside the dialog area to triggerprops.onClose
; if a function is provided, the return value determines if the dialog will be closedExpects Default Value bool or function
false
-
closeOnOutsideScroll
· enable detection of scroll and mousewheel events outside the dialog area to triggerprops.onClose
; if a function is provided, the return value determines if the dialog will be closedExpects Default Value bool or function
false
-
component
· override the type of.b-dialog-wrapper
HTML elementExpects Default Value string
'div'
-
dialogComponent
· override the type of.b-dialog
HTML elementExpects Default Value string
'div'
-
dialogProps
Expects Default Value object
{}
-
maskProps
Expects Default Value object
{}
-
modalProps
Expects Default Value object
{}
-
onClose
· a custom event handler that is called to indicate that the dialog should be unrendered by its parent; the event occurs if one or more of the "closeOn" props (closeOnEscKey
,closeOnOutsideClick
, etc.) are passed astrue
and the dismissal criteria are satisfiedExpects Default Value function
() => {}
-
portalProps
Expects Default Value object
{}
Reference Styles
Stylus
You can see what variables are available to override in variables.styl.
// Redefine any variables as desired, e.g:color-accent = royalblue // Bring in the component styles; they will be autoconfigured based on the above@require "node_modules/boundless-modal/style"
CSS
If desired, a precompiled plain CSS stylesheet is available for customization at /build/style.css
, based on Boundless's default variables.