UNPKG

@eureca/eureca-ui

Version:

UI component library of Eureca's user and admin apps

109 lines (87 loc) 2.75 kB
import { Meta, Story, Preview, Title, Subtitle, Description, Props, } from '@storybook/addon-docs/blocks'; import { withKnobs } from '@storybook/addon-knobs'; import { GroupAction, GroupActionProvider } from '../'; import { GroupActionStory } from './group-action.stories.js'; <Meta title='Originals/GroupAction' component={GroupAction} decorators={[withKnobs]}/> <Title>GroupAction</Title> <Description> Componente GroupAction dos aplicativos Eureca. Expandido do componente [Box do Material-UI](https://material-ui.com/components/box/#box). </Description> <Description> Aceita todas as props padrão do componente Box do Material-UI. </Description> <Preview> <Story name="GroupAction"> <GroupActionProvider> <GroupActionStory /> </GroupActionProvider> </Story> </Preview> <Subtitle>Props</Subtitle> | Nome | Descrição | Default | |:-------:|:-------------------------------:|:-----------:| | variant | Estilo customizado do componente <br /> 'error' \| 'loading' \| 'success' \| 'warning' \| 'simple' | 'simple' | <Subtitle>Group Action Provider</Subtitle> > É necessário utilizar o GroupActionProvider no root do aplicativo para utilização do componente. ```jsx <GroupActionProvider> <App /> </GroupActionProvider> ``` <Subtitle>Group Action Hook</Subtitle> > O hook retorna: - `isOpen`: variável que controla a exibição do GroupAction - `show`: função que atualiza o valor de isOpen > É passado ao hook: - `component`: Um componente com o conteúdo interno do GroupAction - `initialVariant`: A variante inicial do GroupAction <Subtitle>Exemplo de Aplicação</Subtitle> ```jsx function Component() { const { isOpen, show } = useGroupAction(<GroupActionComponent variant='success' />, 'success'); return ( <div> <Button onClick={() => show(!isOpen)}>{!isOpen ? 'Show' : 'Hide'}</Button> <Box position="fixed" bottom={0} left={0} width="100%"> <GroupAction /> </Box> </div> ); } ``` <Subtitle>Exemplo de Componente Interno</Subtitle> ```jsx function GroupActionComponent({ variant }) { return ( <Flex directionRow alignCenter justifyFlexEnd width="100%"> <Flex directionRow> <Box mr={2}> <Button type="button" variant={variant === 'simple' ? 'contained' : 'text'} style={{ color: variant !== 'simple' && colors.white }} > Cancelar </Button> </Box> <Button type="button" variant={variant === 'simple' ? 'contained' : 'text'} style={{ color: variant !== 'simple' && colors.white }} > Opções </Button> </Flex> </Flex> ); } ```