@salesforce/design-system-react
Version:
Salesforce Lightning Design System for React
119 lines (112 loc) • 2.88 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,
errorIsOpen: false,
offlineIsOpen: false,
};
toggleOpen = (event, theme) => {
this.setState({ [`${theme}IsOpen`]: !this.state[`${theme}IsOpen`] });
};
render() {
return (
<IconSettings iconPath="/assets/icons">
<div>
<Button
label="Open base alert"
onClick={(event) => {
this.toggleOpen(event, 'base');
}}
/>
<Notification
content={['Base System Alert']}
isOpen={this.state.baseIsOpen}
onDismiss={(event) => {
this.toggleOpen(event, 'base');
}}
texture
variant="alert"
silenceDeprecationWarning
/>
<span />
<Button
label="Open success alert"
onClick={(event) => {
this.toggleOpen(event, 'success');
}}
/>
<Notification
content={[
<span key="maintenance">
Scheduled Maintenance Notification: Sunday March 15, 8:00
AM–10:00 PST <a href="#">More Information</a>
</span>,
]}
iconName="notification"
isOpen={this.state.successIsOpen}
onDismiss={(event) => {
this.toggleOpen(event, 'success');
}}
texture
theme="success"
variant="alert"
silenceDeprecationWarning
/>
<span />
<Button
label="Open error alert"
onClick={(event) => {
this.toggleOpen(event, 'error');
}}
/>
<Notification
content={[
<span key="browser">
Your browser is currently not supported. Your Salesforce may be
degraded. <a href="#">More Information</a>
</span>,
]}
iconName="ban"
isOpen={this.state.errorIsOpen}
onDismiss={(event) => {
this.toggleOpen(event, 'error');
}}
texture
theme="error"
variant="alert"
silenceDeprecationWarning
/>
<span />
<Button
label="Open offline alert"
onClick={(event) => {
this.toggleOpen(event, 'offline');
}}
/>
<Notification
content={[
<span key="offline">
You are in offline mode <a href="#">More Information</a>
</span>,
]}
iconName="offline"
isOpen={this.state.offlineIsOpen}
onDismiss={(event) => {
this.toggleOpen(event, 'offline');
}}
texture
theme="offline"
variant="alert"
silenceDeprecationWarning
/>
</div>
</IconSettings>
);
}
}
export default Example; // export is replaced with `ReactDOM.render(<Example />, mountNode);` at runtime