@salesforce/design-system-react
Version:
Salesforce Lightning Design System for React
114 lines (107 loc) • 2.74 kB
JSX
import React from 'react';
import IconSettings from '~/components/icon-settings';
import Notification from '~/components/notification'; // `~` is replaced with design-system-react at runtime
import Button from '~/components/button';
class Example extends React.Component {
static displayName = 'NotificationExample';
state = {
baseIsOpen: false,
successIsOpen: false,
warningIsOpen: false,
errorIsOpen: false,
};
toggleOpen = (event, theme) => {
this.setState({ [`${theme}IsOpen`]: !this.state[`${theme}IsOpen`] });
};
render() {
return (
<IconSettings iconPath="/assets/icons">
<div>
<Button
label="Open base toast"
onClick={(event) => {
this.toggleOpen(event, 'base');
}}
/>
<Notification
content={['Base Toast']}
isOpen={this.state.baseIsOpen}
onDismiss={(event) => {
this.toggleOpen(event, 'base');
}}
variant="toast"
silenceDeprecationWarning
/>
<span />
<Button
label="Open success toast"
onClick={(event) => {
this.toggleOpen(event, 'success');
}}
/>
<Notification
content={[
<span key="new-contact">
Your new contact <a href="#">Sara Smith</a> was successfully
created.
</span>,
]}
iconName="notification"
isOpen={this.state.successIsOpen}
onDismiss={(event) => {
this.toggleOpen(event, 'success');
}}
theme="success"
variant="toast"
silenceDeprecationWarning
/>
<span />
<Button
label="Open warning toast"
onClick={(event) => {
this.toggleOpen(event, 'warning');
}}
/>
<Notification
content={[
<span key="required-fields">
Oops, you"ve missed some required form inputs.
</span>,
]}
isOpen={this.state.warningIsOpen}
onDismiss={(event) => {
this.toggleOpen(event, 'warning');
}}
theme="warning"
variant="toast"
silenceDeprecationWarning
/>
<span />
<Button
label="Open error toast"
onClick={(event) => {
this.toggleOpen(event, 'error');
}}
/>
<Notification
content={[
<span key="required-fields">
You encountered some errors when trying to save edits to Samuel
Smith.
</span>,
]}
iconName="warning"
isOpen={this.state.errorIsOpen}
onDismiss={(event) => {
this.toggleOpen(event, 'error');
}}
theme="error"
variant="toast"
silenceDeprecationWarning
/>
</div>
</IconSettings>
);
}
}
export default Example; // export is replaced with `ReactDOM.render(<Example />, mountNode);` at runtime