import React from 'react'; import styled from '@emotion/styled'; import Breadcrumbs from 'app/components/breadcrumbs'; import Button from 'app/components/button'; import ButtonBar from 'app/components/buttonBar'; import * as Layout from 'app/components/layouts/thirds'; import Link from 'app/components/links/link'; import space from 'app/styles/space'; const crumbs = [ { label: 'Issues', to: '', }, { label: 'List', to: '', }, { label: 'Detail', to: '', }, ]; export default { title: 'Layouts/Thirds', }; export const _6633Layout = () => ( <Container> <Layout.Header> <Layout.HeaderContent> <Layout.Title>Some heading content</Layout.Title> </Layout.HeaderContent> </Layout.Header> <Layout.Body> <Layout.Main> <h1>Content Region</h1> <p>Some text here</p> </Layout.Main> <Layout.Side> <h3>Sidebar content</h3> </Layout.Side> </Layout.Body> </Container> ); _6633Layout.storyName = '66/33 layout'; _6633Layout.parameters = { docs: { description: { story: 'Two column layout with header & sidebar', }, }, }; export const _6633WithHeaderControls = () => ( <Container> <Layout.Header> <Layout.HeaderContent> <Breadcrumbs crumbs={crumbs} /> <Layout.Title>Some heading content</Layout.Title> </Layout.HeaderContent> <Layout.HeaderActions> <ButtonBar gap={1}> <Button>Save</Button> <Button>Delete</Button> <Button>Update</Button> </ButtonBar> </Layout.HeaderActions> </Layout.Header> <Layout.Body> <Layout.Main> <h1>Content Region</h1> <p>Some text here</p> </Layout.Main> <Layout.Side> <h3>Sidebar content</h3> </Layout.Side> </Layout.Body> </Container> ); _6633WithHeaderControls.storyName = '66/33 with header controls'; _6633WithHeaderControls.parameters = { docs: { description: { story: 'Two column layout with header actions', }, }, }; export const _6633WithManyHeaderControls = () => ( <Container> <Layout.Header> <Layout.HeaderContent> <Breadcrumbs crumbs={crumbs} /> <Layout.Title>Heading text</Layout.Title> </Layout.HeaderContent> <Layout.HeaderActions> <MarginedButtonBar gap={1}> <Button size="small">Save</Button> <Button size="small">Update</Button> </MarginedButtonBar> <ButtonBar gap={1}> <Button size="small">rollup</Button> <Button size="small">modify</Button> <Button size="small">create</Button> <Button size="small">update</Button> <Button size="small">delete</Button> </ButtonBar> </Layout.HeaderActions> </Layout.Header> <Layout.Body> <Layout.Main> <h1>Content Region</h1> <p>Some text here</p> </Layout.Main> <Layout.Side> <h3>Sidebar content</h3> </Layout.Side> </Layout.Body> </Container> ); _6633WithManyHeaderControls.storyName = '66/33 with many header controls'; _6633WithManyHeaderControls.parameters = { docs: { description: { story: 'Two column layout with header controls', }, }, }; export const SingleColumnMode = () => ( <Container> <Layout.Header> <Layout.HeaderContent> <Breadcrumbs crumbs={crumbs} /> <Layout.Title>Some heading content</Layout.Title> </Layout.HeaderContent> <Layout.HeaderActions> <ButtonBar gap={1}> <Button size="small">clicker</Button> <Button size="small">clicker</Button> </ButtonBar> </Layout.HeaderActions> </Layout.Header> <Layout.Body> <Layout.Main fullWidth> <h1>Content Region</h1> <p> Some text here, that goes on and on. It should strecth the full width of the container, and have no space on the right. </p> </Layout.Main> </Layout.Body> </Container> ); SingleColumnMode.storyName = 'single column mode'; SingleColumnMode.parameters = { docs: { description: { story: 'Single column mode so we can hide the sidebar', }, }, }; export const _6633WithTabNavigation = () => ( <Container> <BorderlessHeader> <Layout.HeaderContent> <StyledLayoutTitle>Alerts</StyledLayoutTitle> </Layout.HeaderContent> <Layout.HeaderActions> <ButtonBar gap={1}> <Button size="small">clicker</Button> <Button size="small">clicker</Button> </ButtonBar> </Layout.HeaderActions> </BorderlessHeader> <TabLayoutHeader> <Layout.HeaderNavTabs underlined> <li className="active"> <Link to="#">Active</Link> </li> <li> <Link to="#">Inactive</Link> </li> </Layout.HeaderNavTabs> </TabLayoutHeader> <Layout.Body> <Layout.Main> <h1>Content Region</h1> <p>Some text here</p> </Layout.Main> <Layout.Side> <h3>Sidebar content</h3> </Layout.Side> </Layout.Body> </Container> ); _6633WithTabNavigation.storyName = '66/33 with tab based nav'; _6633WithTabNavigation.parameters = { docs: { description: { story: 'Two column layout with tab navigation', }, }, }; const Container = styled('div')` background: ${p => p.theme.backgroundSecondary}; margin: ${space(2)}; border: 1px solid ${p => p.theme.border}; `; const MarginedButtonBar = styled(ButtonBar)` margin-bottom: ${space(1)}; `; const StyledLayoutTitle = styled(Layout.Title)` margin-top: ${space(0.5)}; `; const BorderlessHeader = styled(Layout.Header)` border-bottom: 0; `; const TabLayoutHeader = styled(Layout.Header)` padding-top: 0; @media (max-width: ${p => p.theme.breakpoints[1]}) { padding-top: 0; } `;