1.9.4 • Published 10 months ago

fitcard-ui-react-native v1.9.4

Weekly downloads
131
License
-
Repository
-
Last release
10 months ago

npm npm

Instalação

Instale as dependências:

yarn add @react-native-community/datetimepicker react-native-gesture-handler react-native-text-input-mask react-native-svg

Instale a biblioteca:

yarn add fitcard-ui-react-native

(IOS) Adicione a biblioteca react-native-text-input-mask no Podfile:

pod 'RNInputMask', :path => '../node_modules/react-native-text-input-mask/ios/InputMask'

Utilização

Envolva todo o app com o ThemeProvider:

import { ThemeProvider } from 'fitcard-ui-react-native';

const theme = {
  colors: {
    primary: '#FF4F4F',
    secondary: '#000',
    error: '#FF4F4F',
    primaryText: '#000',
    secondaryText: '#98A9BB',
    background: '#FFF',
    foreground: '#FFF',
    formsBackground: '#F0F3F8',
    border: '#F0F3F8',
    toast: {
      danger: '#FF4F4F',
      success: '#21BA45',
      warning: '#FBBD08',
    },
  },
  fonts: {
    light: {
      fontFamily: 'CircularStd-Book',
    },
    medium: {
      fontFamily: 'CircularStd-Medium',
    },
    bold: {
      fontFamily: 'CircularStd-Bold',
    },
    black: {
      fontFamily: 'CircularStd-Black',
    },
  },
};

function Root() {
  return (
    <ThemeProvider theme={theme}>
      <App />
    </ThemeProvider>
  );
}

Importando os componentes:

import { Button, Card } from 'fitcard-ui-react-native';

Componentes

Button

<Button
  text="Button"
  onPress={() =>  console.log('pressed!')}
/>
proptipopadrãodescrição
textstring(obrigatório)Texto a ser exibido dentro do botão.
onPress() => void(obrigatório)Callback chamado quando o botão é pressionado.
loadingbooleanfalseIndica se o botão está carregando.
lightbooleanfalseUsa o tema claro (light).
disabledbooleanfalseDesabilita o botão.
containerStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente.
textStyleStyleProp<TextStyle>nullEstilo do texto do botão.

TagButton

<TagButton
  text="Sort"
  icon="sort"
  onPress={() => console.log('pressed!')}
/>
proptipopadrãodescrição
textstring(obrigatório)Texto a ser exibido no botão.
onPress() => void(obrigatório)Callback chamado quando o botão é pressionado.
activebooleanfalseIndica se está ativo. Quando ativo, o botão ganha cor.
activeColorstringCor padrão do temaCor customizada de quando o botão estiver ativo.
containerStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente.
textStyleStyleProp<TextStyle>nullEstilo do texto.
iconstring''Nome do ícone.
iconColorstringcolors.primaryTextCor do icone.
disabledbooleanfalseDesabilita o botão.

IconButton

<IconButton
  icon="circle"
  type="solid"
  onPress={() => console.log('pressed!')}
/>
proptipopadrãodescrição
iconstring(obrigatório)Nome do ícone do botão.
iconSizenumber16Tamanho do ícone.
colorstringprimary colorCor do ícone.
type'solid' | 'regular''regular'O tipo do icone.
bgColorstringlight primary colorBackgroundColor.
noBackgroundbooleanfalseRemove o background do botão.
onPress() => voidundefinedCallback chamado quando o botão é pressionado.
disabledbooleanfalseDesabilita o botão.

TextButton

<TextButton onPress={() => console.log('pressed!')}>Button</TextButton/>
proptipopadrãodescrição
colorstringprimary colorCor do texto do botão.
onPress() => voidundefinedCallback chamado quando o botão é pressionado.
styleStyleProp<TextStyle>nullEstilo do texto do botão.
boldbooleanfalseDeixa o texto do botão em negrito.

NavBar

<NavBar
  title="Home"
  leftComponent={<NavBar.BackAction onPress={() => {}} />}
  rightComponent={<NavBar.Action icon="search" />}
/>
proptipopadrãodescrição
leftComponentReactNodeundefinedComponente esquerdo da barra de navegação.
rightComponentReactNodeundefinedComponente direito da barra de navegação.
flatbooleanfalseRemove a sombra (Android) ou a borda inferior (IOS).
containerStyleStyleProp<ViewStyle>nullEstilo da <View /> que envolve o componente.
rightContentStyleStyleProp<ViewStyle>nullEstilo da <View /> que envolve o componente direito.
leftContentStyleStyleProp<ViewStyle>nullEstilo da <View /> que envolve o componente esquerdo.
titlestring''O texto a ser exibido como título.

CustomNavBar

<CustomNavBar
  leftComponent={<NavBar.BackAction onPress={() => {}} />}
  middleComponent={(
    <TextInput
      placeholder="Pesquise algo..."
      size="small"
      showClearButton
    />
  )}
  rightComponent={<TextButton>Button</TextButton/>}
/>
proptipopadrãodescrição
leftComponentReactNodeundefinedComponente esquerdo da barra de navegação.
middleComponentReactNodeundefinedComponente do meio da barra de navegação.
rightComponentReactNodeundefinedComponente direito da barra de navegação.
flatbooleanfalseRemove a sombra (Android) ou a borda inferior (IOS).
containerStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente..

NavBarBackAction

<NavBar.BackAction onPress={() => console.log('pressed!')} />
proptipopadrãodescrição
onPress() => voidundefinedCallback chamado quando o botão é pressionado.
sizenumber20 (android) 24 (ios)Tamanho do ícone.
colorstringprimary colorCor do ícone.

NavBarAction

<NavBar.Action
  icon="search"
  color="red"
  onPress={() => console.log('pressed!')}
/>
proptipopadrãodescrição
onPress() => voidundefinedCallback chamado quando o botão é pressionado.
iconstring(obrigatório)Nome do ícone
colorstring#000Cor do ícone.
sizenumber20 (android) 24 (ios)Tamanho do ícone.
type'solid' | 'regular''regular'Tipo do ícone.

TextInput

<TextInput
  placeholder="Placeholder"
  onChangeText={text => console.log(text)}
/>
proptipopadrãodescrição
disabledbooleanfalseDesabilita o campo.
errorbooleanfalseMuda a cor do campo, indicando erro.
size'normal' | 'small''normal'Tamanho do campo.
showClearButtonbooleanfalseMostra um pequeno botão para limpar o texto do campo.
onClear() => voidundefinedCallback que é chamado quando o campo é limpado.
onChangeText(text: string) => voidProp padrão do React Native.

DateTimePicker

<DateTimePicker
  placeholder="Escolha uma data"
  IOSHeaderTitle="Escolha uma data"
  date={new Date()}
  onChange={(event, value) => console.log(event, value)}
/>

*Herda as props do @react-native-community/datetimepicker.

proptipopadrãodescrição
containerStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente.
placeholderstring''Texto a ser exibido quando o valor do Picker está vazio.
defaultDatestring''Define um valor inicial para a data mostrada no Picker.
mode'time' | 'date' | 'datetime' | 'countdown''date'O tipo formato de data a ser mostrado.
disabledbooleanfalseDesabilita o Picker.
customFormatstring'dd MMM, yyyy'Uma máscara xDate personalizada para formatar o valor de exibido no Picker.
dateDate(obrigatório)A data selecionada a ser exibida no Picker.
IOSHeaderTitlestring''Texto a ser exibido no header no modal no IOS.
errorbooleanfalseMuda a cor do campo, indicando erro.

Disclaimer

<Disclaimer
        icon="atom"
        title="Titulo titulo"
        description="Mussum Ipsum, cacilds vidis litro abertis. Si num tem leite então bota uma pinga aí cumpadi! Delegadis gente finis, Vide electram sadipscing et per."
        stateView="smooth"
        selectColor="danger"
/>
proptipopadrãodescrição
iconstring''Nome do ícone renderizado do lado esquerdo.
titlestring''Título opcional.
descriptionstring''Descrição opcional.
selectColor'default' | 'information' | 'warning' | 'danger'| 'success'| 'informationAlt'| 'warningAlt' | 'dangerAlt' | 'successAlt''default'Cor do componente.
stateView'filled' | 'smooth' | 'outlined' | 'raised''filled'Define a visualização do componente.

Picker

<Picker
  onValueChange={item => console.log(item)}
  selectedValue={'Opção 1'}
  items={['Opção 1', 'Opção 2']}
  valueExtractor={item => item}
  labelExtractor={item => item}
  keyExtractor={item => item}
/>
proptipopadrãodescrição
selectedValuestring | number(obrigatório)O item selecionado do array de itens fornecido.
onValueChange(itemValue: string | number, itemPosition: number) => void(obrigatório)Callback chamado quando o item selecionado é alterado.
disabledbooleanfalseDesabilita o Picker.
itemsany[](obrigatório)Array de itens disponível para escolha.
loadingbooleanfalseIndica se está carregando.
keyExtractor(item: any) => string(obrigatório)Indica qual propriedade no array de itens é usada para ser a key.
labelExtractor(item: any) => string(obrigatório)Indica qual propriedade no array de itens é usada para ser a label.
valueExtractor(item: any) => string(obrigatório)Indica qual propriedade no array de itens é usada para ser o valor.
errorbooleanfalseMuda a cor do campo, indicando erro.

FormGroup

<FormGroup label="Usuário" error="Este campos é obrigatório!">
  <TextInput placeholder="Seu nome de usuário" secureTextEntry />
</FormGroup>
proptipopadrãodescrição
labelstring(obrigatório)Texto a ser exibido como label.
errorstring''Mensagem de erro.
styleStyleProp<ComponentStyle>nullEstilo do componente.
requiredbooleanfalseIndica se o campo é obrigatório.

Card

<Card title="Card title" icon="clone">
  <Paragraph>
    Mussum Ipsum, cacilds vidis litro abertis.
    Si num tem leite então bota uma pinga aí cumpadi!
    Delegadis gente finis, Vide electram sadipscing et per.
  </Paragraph>
</Card>
proptipopadrãodescrição
icon'string' | 'number'undefinedNome do icone do card.
iconColorstringprimary colorCor do icone do card.
titlestring(obrigatório)Texto a ser exibido como título no card.
rightContentReactNodeundefinedO conteúdo posicionado à direta do header do card.
onPress() => voidundefinedDeixa o cartão inteiro clicável e é chamado quando é pressionado.
mode'shadowed' | 'bordered''bordered'Modo do estilo do card.

ListItem

<ListItem
  title="List item title"
  description="List item description"
  rightComponent={(
    <Tag
      light
      text="Pending"
      bgColor="#FFB800"
      containerStyle={{ alignSelf:  'flex-end' }}
    />
  )}
/>
proptipopadrãodescrição
titlestringundefinedTítulo do item, exibido em negrito.
descriptionstringundefinedDescrição do item da lista, exibida em cinza e pequena.
rightComponentReactNodeundefinedConteúdo posicionado à direita da linha.
leftComponentReactNodeundefinedConteúdo posicionado à esquerda da linha.
rightContentStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente direito.
leftContentStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente esquerdo.
containerStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente.
onPress() => voidundefinedQuando fornecido, torna a lista clicável e é chamado quando pressionado.

MenuListItem

Normal:

<MenuListItem
  title="Home"
  icon="layer-group"
  iconType="solid"
  onPress={() => console.log('pressed!')}
/>

Collapsible:

<MenuListItem
  title="Notifications"
  icon="bell"
  iconType="solid"
  onPress={() => console.log('pressed!')}
>
  {...}
</MenuListItem>
proptipopadrãodescrição
containerStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente.
textStyleStyleProp<TextStyle>nullEstilo do texto do item.
iconColorstring#8698ABCor do ícone.
iconstringundefinedO nome do ícone.
titlestring(obrigatório)O texto a ser exibido.
onPress() => voidundefinedCallback chamado quando o item é pressionado.
activebooleanfalseIndica se está ativo (selecionado).
iconType'regular' | 'solid''regular'O tipo do ícone.

MenuListSubitem

<MenuListSubitem
  title="Notifications sub 1"
  onPress={() => console.log('pressed!')}
/>
proptipopadrãodescrição
titlestring(obrigatório)O texto a ser exibido.
onPress() => voidundefinedCallback chamado quando o subitem é pressionado.

MenuSeparator

<MenuSeparator>Separador</MenuSeparator>
proptipopadrãodescrição
styleStyleProp<TextProps>undefinedEstilo do texto.

ListMenu

Componente que cria o menu inteiro utilizando a estrutura de um array.

<ListMenu
  items={[
    {
      type:  'separator',
      text:  'Separator',
    },
    {
      type:  'menu-item',
      text:  'Home',
      icon:  'layer-group',
      iconType:  'solid',
      onPress: () => {},
    },
    {
      type:  'menu-item',
      text:  'Notifications',
      icon:  'bell',
      iconType:  'solid',
      onPress: () => {},
      subItems: [
        {
          type:  'menu-item',
          text:  'Notifications sub 1',
          onPress: () => {},
        },
        {
          type:  'menu-item',
          text:  'Notifications sub 2',
          onPress: () => {},
        },
      ],
    },
    {
      type:  'menu-item',
      text:  'Emails',
      iconType:  'solid',
      icon:  'layer-group',
      onPress: () => {},
    },
    {
      type:  'menu-item',
      text:  'Settings',
      iconType:  'solid',
      icon:  'cog',
      onPress: () => {},
    },
    {
      type:  'separator',
      text:  'Separator Two',
    },
    {
      type:  'menu-item',
      text:  'Star',
      iconType:  'solid',
      icon:  'star',
    },
    {
      type:  'menu-item',
      text:  'Likes',
      iconType:  'solid',
      icon:  'heart',
    },
  ]}
/>
proptipopadrãodescrição
itemsMenuItem[](obrigatório)Os itens do menu.

Tag

<Tag
  text="Pending"
  bgColor="#FFB800"
/>
proptipopadrãodescrição
containerStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente.
bgColorstring#000BackgroundColor.
textColorstring#FFFCor do texto. É ignorado quando light for falso.
iconColorstring#FFFCor do ícone. É ignorado quando light for falso.
textstring''Texto a ser exibido.
iconstring''Nome do ícone.
lightbooleanfalseMuda o design da tag para o claro (light).

Text

<H1>Heading 1</H1>

<H2>Heading 2</H2>

<H3>Heading 3</H3>

<Paragraph>Paragraph</Paragraph>

<Description>Description</Description>
proptipopadrãodescrição
styleStyleProp<TextStyle>nullEstilo do texto

AnimatedScrollablePage

Renderiza um header com uma animação ao rolar a página para baixo.

<AnimatedScrollablePage title="Home">
  {...}
</AnimatedScrollablePage>
proptipopadrãodescrição
titlestring''Texto a ser exibido no header.
containerStyleStyleProp<ViewStyle>nullEstilo da View que envolve o componente.

OptionList

Renderiza vários <TagButtons /> como uma lista de uma única opção selecionável.

<OptionList
  options={[
    { text:  'Cats', value: 1 },
    { text:  'Dogs', value: 2 },
    { text:  'Birds', value: 3 },
  ]}
  keyExtractor={item => item.text}
  selected={0}
  onChange={index => console.log(index)}
/>
proptipopadrãodescrição
optionsOption[](obrigatório)O array para renderizar as opções.
onChange(itemIndex: number) => void(obrigatório)Callback chamado quando o item selecionado é alterado.
selectednumberundefinedÍndice do item selecionado.
optionActiveColorstringcolors.primaryCor da option quando está ativa.
optionContainerStyleStyleProp<ViewStyle>nullEstilo da view que envolve a option <TagButton />.
optionTextStyleStyleProp<TextStyle>nullEstilo do texto da option <TagButton />.
keyExtractor(item: Option) => string(obrigatório)Função para popular a 'key' do componente no loop.

PageWrapper

Componente padrão para envolver todas as páginas.

<PageWrapper>
  {...}
</PageWrapper>
proptipopadrãodescrição
styleStyleProp<ViewStyle>nullEstilo da <View />
safeAreabooleanfalseRenderiza ou não um SafeAreaView

ScrollablePage

É usado como componente padrão em todas as páginas com scroll, pois respeita todas as métricas de margins e paddings.

<ScrollablePage>
  {...}
</ScrollablePage>
proptipopadrãodescrição
keyboardShouldPersistTaps'never' | 'always' | 'handled''handled'A prop keyboardShouldPersistTaps normal da View com o 'handled' definido como padrão.

PagedList

Componente que utiliza a <FlatList /> do React Native e trata a lógica de paginação, implementando o scroll infinito.

<PagedList
  title="Title"
  page={1}
  totalPages={2}
  data={[]}
  renderItem={renderItem}
  keyExtractor={item => String(item.id)}
/>
proptipopadrãodescrição
dataany[](obrigatório)Dados da lista.
onEndReached() => voidundefinedCallback chamado quando o fim da <ScrollView /> é atingido.
pagenumber(obrigatório)Página atual.
totalPagesnumber(obrigatório)Número total de páginas dos dados.
useHeaderbooleanfalseRenderiza um <AnimatedHeader />, aparecendo quando rolado.
titlestring''Se useHeader for verdadeiro, usa como título do <AnimatedHeader />

BottomSheet

<BottomSheetContainer>
  {...page}
  <BottomSheet visible={false} height={300}>
    {...}
  </BottomSheet>
</BottomSheetContainer>
proptipopadrãodescrição
visiblebooleanfalseIndica se o componente está visivel ou não.
showBackdropbooleantrueIndica se o backdrop será visível ou não.
heightnumber(obrigatório)Altura do card do bottom sheet.
styleStyleProp<ViewStyle>nullEstilo do componente.
backdropStyleStyleProp<ViewStyle>nullEstilo do backdrop.
onBackdropPress(event: GestureResponderEvent) => booleannullÉ chamado quando é pressionado o backdrop do componente.

BottomSheetContainer

Componente que permite o backdrop do <BottomSheet /> ser ajustado adequadamente na tela.

<BottomSheetContainer>
  {...page}
</BottomSheetContainer>

*Herda as props de uma <View /> do React Native.

TextArea

<TextArea placeholder="Insert a text..." />
proptipopadrãodescrição
disabledbooleanfalseDesabilita o campo.
errorbooleanfalseMuda a cor do campo, indicando erro.

*Herda as props de um <TextInput /> do React Native.

MaskedTextInput

<MaskedTextInput
  placeholder="Placeholder"
  onChangeText={(formatted, extracted) => {
    console.log(formatted) // +1 (123) 456-78-90
    console.log(extracted) // 1234567890
  }}
  mask="+1 ([000]) [000] [00] [00]"
/>
proptipopadrãodescrição
disabledbooleanfalseDesabilita o campo.
errorbooleanfalseMuda a cor do campo, indicando erro.
size'normal' | 'small''normal'Tamanho do campo.
maskstring''Máscara utilizada no texto do campo.
onChangeText(formatted: string, extracted: string) => voidCallback executado quando o texto é mudado.

*Herda as props do react-native-text-input-mask.

MultiSelect

<MultiSelect
  modalTitle="Choose a item"
  placeholder="Choose a item"
  searchPlaceholder="Search fruits"
  maxSelectedItems={3}
  onChange={setSelectedItems}
  items={[{ text: 'Apple', value: 1 }, { text: 'Banana', value: 2 }]}
  selected={{ 1: 'Apple' }}
  keyExtractor={item => String(item.value)}
/>
proptipopadrãodescrição
itemsItem[](obrigatório)
onClose(selected: Record<string | number, string>) => void(obrigatório)Callback executado quando o picker é fechado (Retorna os itens selecionados).
keyExtractor(item: Item, index: number) => string(obrigatório)
maxSelectableItemsnumberundefinedMáximo de itens selecionáveis.
placeholderstring''
modalTitlestring(obrigatório)
searchPlaceholderstring''Placeholder do campo de busca.
disabledbooleanfalse
valueKeystring'obrigatório'Nome customizado para ser usado como propriedade do valor.
textKeystring'obrigatório'Nome customizado para ser usado como propriedade do texto.

SearchablePicker

<SearchablePicker
  modalTitle="Choose a item"
  placeholder="Choose a item"
  searchPlaceholder="Search fruits"
  items={[{ text: 'Apple', value: 1 }, { text: 'Banana', value: 2 }]}
  onChange={setSelectedSearchableItems}
  selected={1}
  keyExtractor={item => String(item.value)}
/>
proptipopadrãodescrição
itemsItem[](obrigatório)
selectedstring | numberundefinedItem selecionado (propriedade "value").
onChange(selected: SelectedItems) => void(obrigatório)Callback executado quando um item é escolhido.
keyExtractor(item: Item, index: number) => string(obrigatório)
placeholderstring''
modalTitlestring(obrigatório)
searchPlaceholderstring''Placeholder do campo de busca.
disabledbooleanfalse
valueKeystring'value'Nome customizado para ser usado como propriedade do valor.
textKeystring'text'Nome customizado para ser usado como propriedade do texto.
loadingboolean'false'Loading

Toast

Envolva o provider na raiz do projeto:

<ToastProvider>
  {...rest}
</ToastProvider>

Utilização:

const toast = useToast();

toast.show({ message: 'Oops! Ocorreu um erro.' });
proptipopadrãodescrição
messagestring(obrigatório)Mensagem mostrada no Toast.
type'danger' | 'success' | 'warning''danger'
visiblebooleanfalse
buttonTextstring(obrigatório)Texto a ser mostrado no botão.
durationnumber1500Duração do toast.
1.9.4

10 months ago

1.9.3

10 months ago

1.9.2

1 year ago

1.9.1

1 year ago

1.9.0

2 years ago

1.7.2

2 years ago

1.7.1

2 years ago

1.7.0

2 years ago

1.6.1

2 years ago

1.6.0

2 years ago

1.6.11

2 years ago

1.6.12

2 years ago

1.6.15

2 years ago

1.6.17

2 years ago

1.6.16

2 years ago

1.5.81

2 years ago

1.5.83

2 years ago

1.5.82

2 years ago

1.5.8

2 years ago

1.5.7

2 years ago

1.5.6

2 years ago

1.4.6

2 years ago

1.5.5

2 years ago

1.5.4

2 years ago

1.5.3

2 years ago

1.5.2

2 years ago

1.5.1

2 years ago

1.5.0

2 years ago

1.4.3

3 years ago

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.9

3 years ago

1.3.8

3 years ago

1.3.7

3 years ago

1.3.6

3 years ago

1.3.5

3 years ago

1.3.4

3 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.14

4 years ago

1.1.13

4 years ago

1.1.12

4 years ago

1.1.11

4 years ago

1.1.10

4 years ago

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago