@salesforce/design-system-react
Version:
Salesforce Lightning Design System for React
93 lines (86 loc) • 2.56 kB
JSX
import React from 'react';
import Button from '~/components/button';
import ButtonGroup from '~/components/button-group';
import ButtonStateful from '~/components/button-stateful';
import Dropdown from '~/components/menu-dropdown';
import Icon from '~/components/icon';
import IconSettings from '~/components/icon-settings';
import PageHeader from '~/components/page-header';
import PageHeaderControl from '~/components/page-header/control';
class Example extends React.Component {
static displayName = 'RecordHomePageHeaderExample';
render() {
const actions = () => (
<React.Fragment>
<PageHeaderControl>
<ButtonStateful
key="PageHeaderFollowButton"
iconSize="medium"
stateOne={{ iconName: 'add', label: 'Follow' }}
stateTwo={{ iconName: 'check', label: 'Following' }}
stateThree={{ iconName: 'close', label: 'Unfollow' }}
/>
</PageHeaderControl>
<PageHeaderControl>
<ButtonGroup variant="list" id="button-group-page-header-actions">
<Button label="Edit" />
<Button label="Delete" />
<Button label="Clone" />
<Dropdown
align="right"
assistiveText={{ icon: 'More Options' }}
iconCategory="utility"
iconName="down"
iconVariant="border-filled"
id="dropdown-record-home-example"
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>
</PageHeaderControl>
</React.Fragment>
);
const details = [
{
label: 'Field 1',
content:
'Description that demonstrates truncation with content. Description that demonstrates truncation with content.',
truncate: true,
},
{ label: 'Field 2', content: 'Multiple Values' },
{
label: 'Field 3',
content: <a href="#link">Hyperlink</a>,
},
{
label: 'Field 4',
content: 'Description (2-line truncation)',
truncate: true,
},
];
return (
<IconSettings iconPath="/assets/icons">
<PageHeader
details={details}
icon={
<Icon
assistiveText={{ label: 'User' }}
category="standard"
name="opportunity"
/>
}
label="Record Type"
onRenderActions={actions}
title="Record Title"
variant="record-home"
/>
</IconSettings>
);
}
}
export default Example; // export is replaced with `ReactDOM.render(<Example />, mountNode);` at runtime