/* eslint react/no-multi-comp: 0, react/prop-types: 0 */import React from'react';import{ Button, Modal, ModalHeader, ModalBody, ModalFooter }from'seduo-ui';classModalExampleextendsReact.Component<any, any>{constructor(props){super(props);this.state ={
modal:false,};this.toggle =this.toggle.bind(this);}toggle(){this.setState({
modal:!this.state.modal,});}render(){return(<div><Buttoncolor="danger"onClick={this.toggle}>{this.props.buttonLabel}</Button><ModalisOpen={this.state.modal}toggle={this.toggle}className={this.props.className}><ModalHeadertoggle={this.toggle}>Modal title</ModalHeader><ModalBody>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</ModalBody><ModalFooter><Buttoncolor="primary"onClick={this.toggle}>
Do Something
</Button>{' '}<Buttoncolor="secondary"onClick={this.toggle}>
Cancel
</Button></ModalFooter></Modal></div>);}}exportdefault ModalExample;
/* eslint react/no-multi-comp: 0, react/prop-types: 0 */import React from'react';import{ Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Label, Form, FormGroup }from'seduo-ui';classModalExampleextendsReact.Component<any, any>{constructor(props){super(props);this.state ={
modal:false,
backdrop:true,};this.toggle =this.toggle.bind(this);this.changeBackdrop =this.changeBackdrop.bind(this);}toggle(){this.setState({
modal:!this.state.modal,});}changeBackdrop(e){let value = e.target.value;if(value !=='static'){
value = JSON.parse(value);}this.setState({
backdrop: value,});}render(){return(<div><ForminlineonSubmit={(e)=> e.preventDefault()}><FormGroup><Labelfor="backdrop">Backdrop value</Label>{' '}<Inputtype="select"name="backdrop"id="backdrop"onChange={this.changeBackdrop}><optionvalue="true">true</option><optionvalue="false">false</option><optionvalue="static">"static"</option></Input></FormGroup>{' '}<Buttoncolor="danger"onClick={this.toggle}>{this.props.buttonLabel}</Button></Form><ModalisOpen={this.state.modal}toggle={this.toggle}className={this.props.className}backdrop={this.state.backdrop}><ModalHeadertoggle={this.toggle}>Modal title</ModalHeader><ModalBody>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</ModalBody><ModalFooter><Buttoncolor="primary"onClick={this.toggle}>
Do Something
</Button>{' '}<Buttoncolor="secondary"onClick={this.toggle}>
Cancel
</Button></ModalFooter></Modal></div>);}}exportdefault ModalExample;
Modals with Custom Transition Timeouts
/* eslint react/no-multi-comp: 0, react/prop-types: 0 */import React from'react';import{ Button, Modal, ModalHeader, ModalBody, ModalFooter }from'seduo-ui';classModalExampleextendsReact.Component<any, any>{constructor(props){super(props);this.state ={
modal:false,};this.toggle =this.toggle.bind(this);}toggle(){this.setState({
modal:!this.state.modal,});}render(){return(<div><Buttoncolor="danger"onClick={this.toggle}>{this.props.buttonLabel}</Button><ModalisOpen={this.state.modal}modalTransition={{
timeout:20,}}backdropTransition={{
timeout:10,}}toggle={this.toggle}className={this.props.className}><ModalHeadertoggle={this.toggle}>Modal title</ModalHeader><ModalBody>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</ModalBody><ModalFooter><Buttoncolor="primary"onClick={this.toggle}>
Do Something
</Button>{' '}<Buttoncolor="secondary"onClick={this.toggle}>
Cancel
</Button></ModalFooter></Modal></div>);}}exportdefault ModalExample;
Modals without Fade Effect
/* eslint react/no-multi-comp: 0, react/prop-types: 0 */import React from'react';import{ Button, Modal, ModalHeader, ModalBody, ModalFooter }from'seduo-ui';classModalExampleextendsReact.Component<any, any>{constructor(props){super(props);this.state ={
modal:false,};this.toggle =this.toggle.bind(this);}toggle(){this.setState({
modal:!this.state.modal,});}render(){return(<div><Buttoncolor="danger"onClick={this.toggle}>{this.props.buttonLabel}</Button><ModalisOpen={this.state.modal}fade={false}toggle={this.toggle}className={this.props.className}><ModalHeadertoggle={this.toggle}>Modal title</ModalHeader><ModalBody>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</ModalBody><ModalFooter><Buttoncolor="primary"onClick={this.toggle}>
Do Something
</Button>{' '}<Buttoncolor="secondary"onClick={this.toggle}>
Cancel
</Button></ModalFooter></Modal></div>);}}exportdefault ModalExample;
Modals with custom close button
/* eslint react/no-multi-comp: 0, react/prop-types: 0 */import React from'react';import{ Button, Modal, ModalHeader, ModalBody, ModalFooter }from'seduo-ui';classModalExampleextendsReact.Component<any, any>{constructor(props){super(props);this.state ={
modal:false,};this.toggle =this.toggle.bind(this);}toggle(){this.setState({
modal:!this.state.modal,});}render(){const closeBtn =(<buttonclassName="close"onClick={this.toggle}>×</button>);return(<div><Buttoncolor="danger"onClick={this.toggle}>{this.props.buttonLabel}</Button><ModalisOpen={this.state.modal}toggle={this.toggle}className={this.props.className}><ModalHeadertoggle={this.toggle}close={closeBtn}>
Modal title
</ModalHeader><ModalBody>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</ModalBody><ModalFooter><Buttoncolor="primary"onClick={this.toggle}>
Do Something
</Button>{' '}<Buttoncolor="secondary"onClick={this.toggle}>
Cancel
</Button></ModalFooter></Modal></div>);}}exportdefault ModalExample;
Focus after close
/* eslint react/no-multi-comp: 0, react/prop-types: 0 */import React from'react';import{ Button, Modal, ModalBody, ModalFooter, Label, Input, FormGroup, Form }from'seduo-ui';classModalFocusAfterCloseextendsReact.Component<any, any>{constructor(props){super(props);this.state ={
open:false,
focusAfterClose:true,};this.toggle =this.toggle.bind(this);this.handleSelectChange =this.handleSelectChange.bind(this);}toggle(){this.setState(({ open })=>({
open:!open,}));}handleSelectChange({ target:{ value }}){this.setState({
focusAfterClose: JSON.parse(value),});}render(){return(<div><ForminlineonSubmit={(e)=> e.preventDefault()}><FormGroup><Labelfor="focusAfterClose">Focus After Close</Label><InputclassName="mx-2"type="select"id="focusAfterClose"onChange={this.handleSelectChange}><optionvalue="true">Yes</option><optionvalue="false">No</option></Input></FormGroup><Buttoncolor="danger"onClick={this.toggle}>
Open
</Button></Form><ModalreturnFocusAfterClose={this.state.focusAfterClose}isOpen={this.state.open}><ModalBody>
Observe the "Open" button. It will be focused after close when "returnFocusAfterClose" is true
and will not be focused if"returnFocusAfterClose" is false.</ModalBody><ModalFooter><Buttoncolor="primary"onClick={this.toggle}>
Close
</Button></ModalFooter></Modal></div>);}}exportdefault ModalFocusAfterClose;
Modal without Header
/* eslint react/no-multi-comp: 0, react/prop-types: 0 */import React from'react';import{ Button, Modal, ModalBody, ModalFooter }from'seduo-ui';classModalWithoutHeaderExampleextendsReact.Component<any, any>{constructor(props){super(props);this.state ={
modal:false,};this.toggle =this.toggle.bind(this);}toggle(){this.setState({
modal:!this.state.modal,});}render(){return(<div><Buttoncolor="danger"onClick={this.toggle}>{this.props.buttonLabel}</Button><ModalisOpen={this.state.modal}toggle={this.toggle}className={this.props.className}withoutHeader><ModalBody>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</ModalBody><ModalFooter><Buttoncolor="primary"onClick={this.toggle}>
Do Something
</Button>{' '}<Buttoncolor="secondary"onClick={this.toggle}>
Cancel
</Button></ModalFooter></Modal></div>);}}exportdefault ModalWithoutHeaderExample;