-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(Toast): add support for Toasts (#1447)
Supersedes and closes #1384. Fixes #1346. Note that I didn't rewrite @Charlex's commit to adhere to the commit guidelines cause I didn't want to change history and make it look like I wrote that code. Hope that's alright.
- Loading branch information
1 parent
ad2a9a0
commit 7ea7610
Showing
16 changed files
with
707 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
/* eslint react/no-multi-comp: 0, react/prop-types: 0 */ | ||
import React from 'react'; | ||
import { PrismCode } from 'react-prism'; | ||
import PageTitle from '../UI/PageTitle'; | ||
import SectionTitle from '../UI/SectionTitle'; | ||
|
||
import ToastExample from '../examples/Toast'; | ||
const ToastExampleSource = require('!!raw-loader!../examples/Toast'); | ||
|
||
import ToastHeaderIconExample from '../examples/ToastHeaderIcon'; | ||
const ToastHeaderIconExampleSource = require('!!raw-loader!../examples/ToastHeaderIcon'); | ||
|
||
import ToastDismissExample from '../examples/ToastDismiss'; | ||
const ToastDismissExampleSource = require('!!raw-loader!../examples/ToastDismiss'); | ||
|
||
import AlertUncontrolledDismissExample from '../examples/AlertUncontrolledDismiss'; | ||
const AlertUncontrolledDismissExampleSource = require('!!raw-loader!../examples/AlertUncontrolledDismiss'); | ||
|
||
import { AlertFadelessExample, UncontrolledAlertFadelessExample } from '../examples/AlertFadeless'; | ||
const AlertFadelessExampleSource = require('!!raw-loader!../examples/AlertFadeless'); | ||
|
||
export default class ToastsPage extends React.Component { | ||
render() { | ||
return ( | ||
<div> | ||
<PageTitle title="Toasts" /> | ||
<div className="docs-example"> | ||
<ToastExample /> | ||
</div> | ||
<pre> | ||
<PrismCode className="language-jsx"> | ||
{ToastExampleSource} | ||
</PrismCode> | ||
</pre> | ||
|
||
<SectionTitle>Properties</SectionTitle> | ||
<pre> | ||
<PrismCode className="language-jsx"> | ||
{`Toast.propTypes = { | ||
className: PropTypes.string, | ||
color: PropTypes.string, // default: 'success' | ||
isOpen: PropTypes.bool, // default: true | ||
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]), | ||
// Controls the transition of the toast fading in and out | ||
// See [Fade](/components/fade/) for more details | ||
transition: PropTypes.shape(Fade.propTypes), | ||
}`} | ||
</PrismCode> | ||
</pre> | ||
|
||
<SectionTitle>Header icons</SectionTitle> | ||
<div className="docs-example"> | ||
<ToastHeaderIconExample /> | ||
</div> | ||
<pre> | ||
<PrismCode className="language-jsx"> | ||
{ToastHeaderIconExampleSource} | ||
</PrismCode> | ||
</pre> | ||
|
||
<SectionTitle>Dismissing</SectionTitle> | ||
<div className="docs-example"> | ||
<ToastDismissExample buttonLabel="Show toast" /> | ||
</div> | ||
<pre> | ||
<PrismCode className="language-jsx"> | ||
{ToastDismissExampleSource} | ||
</PrismCode> | ||
</pre> | ||
</div> | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
import React from 'react'; | ||
import { Toast, ToastBody, ToastHeader } from 'reactstrap'; | ||
|
||
const Example = (props) => { | ||
return ( | ||
<div> | ||
<div className="p-3 my-2 rounded"> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on a white background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
<div className="p-3 my-2 rounded bg-docs-transparent-grid"> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on a gridded background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
<div className="p-3 bg-primary my-2 rounded"> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on a primary background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
<div className="p-3 bg-secondary my-2 rounded"> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on a secondary background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
<div className="p-3 bg-success my-2 rounded"> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on a success background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
<div className="p-3 bg-danger my-2 rounded"> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on a danger background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
<div className="p-3 bg-warning my-2 rounded"> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on a warning background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
<div className="p-3 bg-info my-2 rounded"> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on an info background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
<div className="p-3 bg-dark my-2 rounded"> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on a dark background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
<div className="p-3 my-2 rounded" style={{ background: 'black' }}> | ||
<Toast> | ||
<ToastHeader> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast on a black background — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
</div> | ||
); | ||
}; | ||
|
||
export default Example; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
/* eslint react/no-multi-comp: 0, react/prop-types: 0 */ | ||
|
||
import React from 'react'; | ||
import { Button, Toast, ToastBody, ToastHeader } from 'reactstrap'; | ||
|
||
class ToastDismissExample extends React.Component { | ||
constructor(props) { | ||
super(props); | ||
this.state = { | ||
show: false | ||
}; | ||
|
||
this.toggle = this.toggle.bind(this); | ||
} | ||
|
||
toggle() { | ||
this.setState({ | ||
show: !this.state.show | ||
}); | ||
} | ||
|
||
render() { | ||
return ( | ||
<div> | ||
<Button color="primary" onClick={this.toggle}>{this.props.buttonLabel}</Button> | ||
<br /> | ||
<br /> | ||
<Toast isOpen={this.state.show}> | ||
<ToastHeader toggle={this.toggle}>Toast title</ToastHeader> | ||
<ToastBody> | ||
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. | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
); | ||
} | ||
} | ||
|
||
export default ToastDismissExample; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
import React from 'react'; | ||
import { Toast, ToastBody, ToastHeader, Spinner } from 'reactstrap'; | ||
|
||
const Example = (props) => { | ||
return ( | ||
<div> | ||
<Toast> | ||
<ToastHeader icon="primary"> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast with a primary icon — check it out! | ||
</ToastBody> | ||
</Toast> | ||
<Toast> | ||
<ToastHeader icon="secondary"> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast with a secondary icon — check it out! | ||
</ToastBody> | ||
</Toast> | ||
<Toast> | ||
<ToastHeader icon="success"> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast with a success icon — check it out! | ||
</ToastBody> | ||
</Toast> | ||
<Toast> | ||
<ToastHeader icon="danger"> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast with a danger icon — check it out! | ||
</ToastBody> | ||
</Toast> | ||
<Toast> | ||
<ToastHeader icon="warning"> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast with a warning icon — check it out! | ||
</ToastBody> | ||
</Toast> | ||
<Toast> | ||
<ToastHeader icon="info"> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast with an info icon — check it out! | ||
</ToastBody> | ||
</Toast> | ||
<Toast> | ||
<ToastHeader icon="light"> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast with a light icon — check it out! | ||
</ToastBody> | ||
</Toast> | ||
<Toast> | ||
<ToastHeader icon="dark"> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast with a dark icon — check it out! | ||
</ToastBody> | ||
</Toast> | ||
<Toast> | ||
<ToastHeader icon={<Spinner size="sm" />}> | ||
Reactstrap | ||
</ToastHeader> | ||
<ToastBody> | ||
This is a toast with a custom icon — check it out! | ||
</ToastBody> | ||
</Toast> | ||
</div> | ||
); | ||
}; | ||
|
||
export default Example; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.