@salesforce/design-system-react
Version:
Salesforce Lightning Design System for React
118 lines (110 loc) • 3.16 kB
JSX
import React from 'react';
import IconSettings from '~/components/icon-settings';
import PageHeader from '~/components/page-header'; // `~` is replaced with design-system-react at runtime
import Button from '~/components/button';
import ButtonGroup from '~/components/button-group';
import Dropdown from '~/components/menu-dropdown';
import DropdownTrigger from '~/components/menu-dropdown/button-trigger';
class Example extends React.Component {
static displayName = 'RelatedListPageHeaderExample';
render() {
const controls = () => (
<div className="slds-button-group" role="group">
<button type="button" className="slds-button slds-button_neutral">
Add Contact
</button>
<div className="slds-button_last">
<Button
iconCategory="utility"
iconName="down"
variant="icon"
iconVariant="border-filled"
assistiveText={{ icon: 'More Actions' }}
/>
</div>
</div>
);
const actions = () => (
<div>
<Dropdown
align="right"
assistiveText={{ icon: 'Change view' }}
iconCategory="utility"
iconName="settings"
iconVariant="more"
id="content-right-dropdown"
options={[
{ label: 'Menu Item One', value: 'A0' },
{ label: 'Menu Item Two', value: 'B0' },
{ label: 'Menu Item Three', value: 'C0' },
{ type: 'divider' },
{ label: 'Menu Item Four', value: 'D0' },
]}
>
<DropdownTrigger>
<Button
assistiveText={{ icon: 'Change view' }}
className="slds-m-right_xx-small"
iconCategory="utility"
iconName="table"
iconVariant="more"
variant="icon"
/>
</DropdownTrigger>
</Dropdown>
<ButtonGroup>
<Button
iconCategory="utility"
iconName="chart"
variant="icon"
iconVariant="border"
className="slds-m-left_xx-small"
assistiveText={{ icon: 'Chart' }}
/>
<Button
iconCategory="utility"
iconName="filterList"
variant="icon"
iconVariant="border"
className="slds-m-left_xx-small"
assistiveText={{ icon: 'Filter List' }}
/>
<Dropdown
triggerClassname
align="right"
assistiveText={{ icon: 'List View Controls' }}
iconCategory="utility"
iconName="sort"
iconVariant="more"
id="content-right-dropdown-2"
options={[
{ label: 'Menu Item One', value: 'A0' },
{ label: 'Menu Item Two', value: 'B0' },
{ label: 'Menu Item Three', value: 'C0' },
{ type: 'divider' },
{ label: 'Menu Item Four', value: 'D0' },
]}
/>
</ButtonGroup>
</div>
);
const trail = [
<a href="javascript:void(0);">Accounts</a>,
<a href="javascript:void(0);">Company One</a>,
];
return (
<IconSettings iconPath="/assets/icons">
<PageHeader
title="Contacts (will truncate)"
onRenderControls={controls}
onRenderActions={actions}
variant="object-home"
truncate
trail={trail}
info="10 items • sorted by name"
/>
</IconSettings>
);
}
}
export default Example; // export is replaced with `ReactDOM.render(<Example />, mountNode);` at runtime