Socket
Socket
Sign inDemoInstall

ame-miniapp-components

Package Overview
Dependencies
18
Maintainers
3
Versions
442
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ame-miniapp-components

Biblioteca de componentes para construção de miniapps ame


Version published
Weekly downloads
504
decreased by-8.53%
Maintainers
3
Install size
62.7 MB
Created
Weekly downloads
 

Readme

Source

Ame Mini-App Components 3.0.1

Começando

Introdução

A biblioteca de componentes em sua versão 3 traz diversas novidades incluindo as novas definições do Design System Ametista da Ame Digital.

Nesta nova versão da biblioteca de componentes buscamos unir a flexibilidade da versão 1 dos componentes com a facilidade da versão 2 tornando o uso dos componentes mais flexível do que na versão anterior sem abrir mão das pré-definições que ajudam os desenvolvedores a se manterem dentro do que é designado pelo DS Ametista, garantindo uma padronização visual e de experiência mínima do usuário no app da Ame Digital.

Novas features

Algumas das novas características da biblioteca de componentes em sua versão 3 incluem:

  • Componentes simples (que podem ser combinados para montar componentes mais complexos)

  • Super Componentes (Componentes tradicionais pré-montados e utilizados em diversas experiências do app)

  • Suporte a temas light e dark do sistema operacional (Os componentes se ajustam automaticamente ao tema selecionado pelo usuário em seu SO seguindo as diretrizes do DS Ametista)

  • Criação de componentes personalizados facilitada (Mais flexibilidade para criar componentes personalizados para cada experiência chamados de Team Components)

  • Novo header agora como componente e muito mais flexível (Agora o Header é um componente que vem incluído em seu miniapp e pode ser personalizado para atender as mais diversas demandas)

Novo header

Como parte das novidades da V3 dos componentes o Header agora deixa de ser implementado diretamente pela plataforma e passa a ser um componente, mais flexível e dinâmico, que vem incorporado nos miniapps por padrão e pode ser personalizado conforme a necessidade de cada feature.

Para que seja possível utilizar o novo header sem quebrar a compatibilidade com o antigo header utilizado em versões anteriores da biblioteca de componentes, você notará algumas diferenças no próprio miniapp:

  • Para usar o novo header, primeiro é necessário que se "desative" o antigo header nativo da plataforma. Para isso, seu miniapp deve conter em seu arquivo Home.js a seguinte chamada Ame.delegate2impl("setSceneType", ["FULL_SCREEN"]), tornando o seu miniapp "headerless".

  • Uma vez desativado o antigo header, você poderá utilizar nosso novo componente header conforme descrito nesta documentação.

  • Ao utilizar o novo header é importante lembrar que a maioria dos dispositivos tem uma safe area no topo devido à barra de status do sistema operacional. Para saber de quantos pixels é esta área em cada dispositivo, você pode utilizar o método getDeviceSpecs e uma vez que souber o valor de safe area do topo, você pode informar na prop safeArea do header que recebe um valor numérico (em pixels).

Se você está criando um novo miniapp, não se preocupe, nosso boilerplate já vem com tudo pronto e você pode partir dele já com o novo header implementado.

Temas Light/Dark

A plataforma de miniapps ajusta automaticamente seus componentes e interface para os temas light e dark dependendo da escolha do usuário em seu sistema operacional.

Paletas de cores

O visual do componente é ajustado com base nas definições de Design System da Ame, ajustando a paleta de cores de acordo com o descrito na sessão de cores desta documentação.

Exemplos de tema light/dark

Seguem alguns exemplos de componentes no tema light e no tema dark:

Logo Logo Logo Logo
Selecionar tema light/dark em seu SO

Cada sistema operacional permite a seleção de tema light ou dark de uma maneira. Seguem instruções sobre como selecionar nos principais SOs disponíveis no mercado:

Tokens

Bordas

Alguns componentes experimentam o uso de bordas. Você poderá alterar propriedades básicas de borda como espessura ou cor.

borderWidth

Os valores abaixo indicam espessuras de borda, começando da mais fina para a mais grossa:

tokenvalor
none0px
hairline1px
thin2px
thick4px
heavy8px

borderRadius

Abaixo os valores aceitos para arredondamento das bordas

tokenvalor
none0px
micro4px
small8px
medium16px
large24px
pill500px
circular50%

borderColor

Veja aqui quais os tokens de corque você pode utilizar no borderColor

Cores

Os padrões de design estabelem que apenas as cores abaixo podem ser utilizadas. As cores são inseridas através dos tokens em componentes que possuem tais propriedades como: borderColor, color, backgroundColor e etc.

Veja a tabela de cores:

TokenLightDark
primary-color
#e40d5b
#e40d5b
primary-100
#fce3eb
#850049
primary-300
#ed5d8c
#BE0755
primary-700
#BE0755
#ED5D8C
primary-900
#850049
#FCE3EB
secondary-color
#675CAA
#675CAA
secondary-100
#ECECF5
#422E70
secondary-300
#AFAFD6
#574994
secondary-700
#574994
#AFAFD6
neutral-100
#FAFAFA
#1C1C1C
neutral-200
#F5F5F5
#363636
neutral-300
#EBEBEB
#5C5C5C
neutral-400
#DBDBDB
#7A7A7A
neutral-500
#C7C7C7
#C7C7C7
neutral-600
#7A7A7A
#DBDBDB
neutral-700
#5C5C5C
#EBEBEB
neutral-800
#363636
#F5F5F5
neutral-900
#1C1C1C
#FAFAFA
positive-100
#F1FBD1
#295B05
positive-300
#C4EB74
#4C890F
positive-500
#7CBF1E
#7CBF1E
positive-700
#4C890F
#C4EB74
positive-900
#C4EB74
#F1FBD1
warning-100
#FEF8CB
#745200
warning-300
#FBE264
#AE8300
warning-500
#F2C100
#F2C100
warning-700
#AE8300
#FBE264
warning-900
#745200
#FEF8CB
negative-100
#FDE5D8
#6F0B2E
negative-300
#F89C89
#A71E35
negative-500
#E83C3C
#E83C3C
negative-700
#A71E35
#F89C89
negative-900
#6F0B2E
#FDE5D8
support-01
#2962FF
#2962FF
support-02
#FAFAFA
#FAFAFA
support-03
#FCE3EB
#FCE3EB
support-04
#675CAA
#675CAA
background-color
#FAFAFA
#1c1c1c

Espaçamento

Em determinados momentos você precisará de uso de margem, para isso você poderá usar as propriedades descritas abaixo em componentes que aceitam todas ou algumas dessas propriedades.

Valores para propriedades de Margin e Padding

tokenvalores
'none'0px
'quark'4px
'nano'8px
'ultra-small'12px
'extra-small'16px
'small'24px
'medium'32px
'large'40px
'extra-large'48px
'big'56px
'display'64px
'huge'80px
'giant'120px
'jumbo'160px
'immense'200px

Flex

As propriedades abaixo afetam como os nós internos de um componente são ajustados ao seu conteúdo. São muito parecidas com as propriedades flex do CSS. Veja abaixo quais são:

Propriedades e Valores
PropriedadeValores Aceitos
direction'row', 'row-reverse', 'column', 'column-reverse'
align'center', 'start', 'end'
justify'center', 'start', 'end', 'between', 'around'
flexWrap'wrap', 'nowrap', 'reverse'
flexNoneboolean

Tipografia

Propriedades e Valores
PropriedadeValores Aceitos
fontSize'quark' (12px), 'nano' (14px), 'extra-small' (16px), 'small' (20px), 'medium'(24px), 'large' (32px), 'extra-large' (40px), 'big' (48px), 'display'(56px), 'huge' (64px), 'giant' (72px), 'jumbo'(80px)
textAlign'left', 'center', 'right', 'justify'
lineHeight'small' (100%), 'medium' (150%), 'large' (200%)
fontWeight'light' (300), 'regular' (400), 'medium' (500), 'bold' (700)

Target

tokenvalores
'heading-display'font-size: '56px'; line-height: 200%; font-weight: 700
'heading-extra-large'font-size: '48px'; line-height: 200%; font-weight: 700
'heading-large'font-size: '40px'; line-height: 200%; font-weight: 700
'heading-medium'font-size: '32px'; line-height: 200%; font-weight: 700
'heading-small'font-size: '24px'; line-height: 200%; font-weight: 700
'title-large'font-size: '32px'; line-height: 150%; font-weight: 700
'title-medium'font-size: '24px'; line-height: 150%; font-weight: 700
'title-small'font-size: '20px'; line-height: 150%; font-weight: 700
'subtitle-large'font-size: '24px'; line-height: 150%; font-weight: 700
'subtitle-medium'font-size: '20px'; line-height: 150%; font-weight: 700
'subtitle-small'font-size: '16px'; line-height: 150%; font-weight: 700
'body-regular'font-size: '16px'; line-height: 150%; font-weight: 400
'body-medium'font-size: '16px'; line-height: 150%; font-weight: 500
'body-bold'font-size: '16px'; line-height: 150%; font-weight: 700
'caption-regular'font-size: '14px'; line-height: 100%; font-weight: 400
'caption-bold'font-size: '14px'; line-height: 100%; font-weight: 700
'disclaimer-regular'font-size: '12px'; line-height: 100%; font-weight: 400
'disclaimer-bold'font-size: '12px'; line-height: 100%; font-weight: 700

Opacidade

Em determinados momentos você pode sentir a necessidade de tornar um elemento um pouco translúcido.

Para isto você deve verificar se o componente presente aceita a propriedade opacity.

tokenvalores
'transparent'0
'semi-transparent'0.16
'light'0.32
'medium'0.4
'intense'0.64
'semiopaque'0.8

Sombras

Tokens e valores

ShadowLevels
tokenvalores
'level-1'0 4px 8px rgb(28 28 28 / 8%)
'level-2'0 8px 24px rgb(28 28 28 / 16%)
'level-3'0 16px 32px rgb(28 28 28 / 16%)
'level-4'0 16px 48px rgb(28 28 28 / 24%)
InnerShadowLevels
tokenvalores
'level-1'0 4px 8px rgb(28 28 28 / 24%)

Componentes Simples

Accordion

Componente accordion para exibição de textos no estilo FAQ.

accordion

Utilização


 state = {
    lorem: `Lorem ipsum dolor sit amet consectetur adipisicing elit.
    Reprehenderit doloribus quis magni possimus! Architecto rem
    veritatis est quaerat, ab inventore quidem eaque maxime? Eius
    dolore quod totam vero mollitia saepe! Lorem ipsum dolor sit amet,
    consectetur adipisicing elit. Ipsam ex itaque sint aliquid quae
    vel ea ratione dolores quia blanditiis dolor nihil, in hic
    praesentium temporibus? Iste porro distinctio nisi! Lorem ipsum
    dolor sit amet consectetur adipisicing elit. Fugit sed atque ab ex
    qui ea ullam nisi nemo magni ut maiores mollitia libero corrupti
    cupiditate unde dignissimos, est soluta nesciunt! Lorem ipsum
    dolor sit amet consectetur adipisicing elit. Quo, voluptate et
    dignissimos adipisci sit voluptas vero repellendus accusantium,
    nostrum voluptatum maiores totam quidem ipsum ipsam eius ad
    deserunt facere non!`,
  };
  render() {
    return (
      <View padding='nano'>
        <View direction='column' align='center'>
          <Text fontSize='medium' fontWeight='bold'>
            Componente{' '}
            <Text color='primary' fontSize='medium' fontWeight='bold'>
              Accordion
            </Text>
          </Text>
        </View>
        <Accordion>
          <AccordionItem title='Seguro Celular'>
            <View paddingBottom='nano' paddingTop='nano'>
              <Text fontWeight='bold'>Quanto Custa?</Text>
            </View>
            <Text>{this.state.lorem}</Text>
            <Text>{this.state.lorem}</Text>
            <View paddingBottom='nano' paddingTop='nano'>
              <Text fontWeight='bold'>Qual o tempo minimo de carencia?</Text>
            </View>
            <Text>{this.state.lorem}</Text>
            <Text>{this.state.lorem}</Text>
            <View paddingBottom='nano' paddingTop='nano'>
              <Text fontWeight='bold'>Qual o tipo de proteção?</Text>
            </View>
            <Text>{this.state.lorem}</Text>
            <Text>{this.state.lorem}</Text>
          </AccordionItem>
          <AccordionItem title='Seguro Casa'>
            <View paddingBottom='nano' paddingTop='nano'>
              <Text fontWeight='bold'>Quanto Custa?</Text>
            </View>
            <Text>{this.state.lorem}</Text>
            <Text>{this.state.lorem}</Text>
            <View paddingBottom='nano' paddingTop='nano'>
              <Text fontWeight='bold'>Qual o tempo minimo de carencia?</Text>
            </View>
            <Text>{this.state.lorem}</Text>
            <Text>{this.state.lorem}</Text>
            <View paddingBottom='nano' paddingTop='nano'>
              <Text fontWeight='bold'>Qual o tipo de proteção?</Text>
            </View>
            <Text>{this.state.lorem}</Text>
            <Text>{this.state.lorem}</Text>
          </AccordionItem>
          <AccordionItem title='Seguro Pet'>
            <View paddingBottom='nano' paddingTop='nano'>
              <Text fontWeight='bold'>Quanto Custa?</Text>
            </View>
            <Text>{this.state.lorem}</Text>
            <Text>{this.state.lorem}</Text>
            <View paddingBottom='nano' paddingTop='nano'>
              <Text fontWeight='bold'>Qual o tempo minimo de carencia?</Text>
            </View>
            <Text>{this.state.lorem}</Text>
            <Text>{this.state.lorem}</Text>
            <View paddingBottom='nano' paddingTop='nano'>
              <Text fontWeight='bold'>Qual o tipo de proteção?</Text>
            </View>
            <Text>{this.state.lorem}</Text>
            <Text>{this.state.lorem}</Text>
          </AccordionItem>
          <AccordionItem title='Novos Seguros'>
            <Accordion>
              <AccordionItem title='Seguro Celular'>
                <View paddingBottom='nano' paddingTop='nano'>
                  <Text fontWeight='bold'>Quanto Custa?</Text>
                </View>
                <Text>{this.state.lorem}</Text>
                <Text>{this.state.lorem}</Text>
                <View paddingBottom='nano' paddingTop='nano'>
                  <Text fontWeight='bold'>
                    Qual o tempo minimo de carencia?
                  </Text>
                </View>
                <Text>{this.state.lorem}</Text>
                <Text>{this.state.lorem}</Text>
                <View paddingBottom='nano' paddingTop='nano'>
                  <Text fontWeight='bold'>Qual o tipo de proteção?</Text>
                </View>
                <Text>{this.state.lorem}</Text>
                <Text>{this.state.lorem}</Text>
              </AccordionItem>
              <AccordionItem title='Seguro Casa'>
                <View paddingBottom='nano' paddingTop='nano'>
                  <Text fontWeight='bold'>Quanto Custa?</Text>
                </View>
                <Text>{this.state.lorem}</Text>
                <Text>{this.state.lorem}</Text>
                <View paddingBottom='nano' paddingTop='nano'>
                  <Text fontWeight='bold'>
                    Qual o tempo minimo de carencia?
                  </Text>
                </View>
                <Text>{this.state.lorem}</Text>
                <Text>{this.state.lorem}</Text>
                <View paddingBottom='nano' paddingTop='nano'>
                  <Text fontWeight='bold'>Qual o tipo de proteção?</Text>
                </View>
                <Text>{this.state.lorem}</Text>
                <Text>{this.state.lorem}</Text>
              </AccordionItem>
              <AccordionItem title='Seguro Pet'>
                <View paddingBottom='nano' paddingTop='nano'>
                  <Text fontWeight='bold'>Quanto Custa?</Text>
                </View>
                <Text>{this.state.lorem}</Text>
                <Text>{this.state.lorem}</Text>
                <View paddingBottom='nano' paddingTop='nano'>
                  <Text fontWeight='bold'>
                    Qual o tempo minimo de carencia?
                  </Text>
                </View>
                <Text>{this.state.lorem}</Text>
                <Text>{this.state.lorem}</Text>
                <View paddingBottom='nano' paddingTop='nano'>
                  <Text fontWeight='bold'>Qual o tipo de proteção?</Text>
                </View>
                <Text>{this.state.lorem}</Text>
                <Text>{this.state.lorem}</Text>
              </AccordionItem>
            </Accordion>
          </AccordionItem>
        </Accordion>
      </View>

Propriedades Accordion

PropriedadeDescriçãoTypeDefault
childrenRecebe 1 ou mais componente AccordionItem para ser renderizado dentro do Accordion.componentnull
disabledDesabilita o Componente.booleanfalse

Propriedades AccordionItem

PropriedadeDescriçãoTypeDefault
titleTítulo de cada seção do Accordionstringnull
childrenConteúdo de cada seção. Pode receber o próprio componente Accordion, para iniciar uma nova cadeia de elementos.componentnull

Ads

Componente Ads para renderização de anuncios.

ads

Utilização

<Ads
  path="/12345678912/circulo_3"
  size={["fluid", [76, 76]]}
  id={"div-gpt-ad-1234567891234-0"}
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
pathValor do path relacionado ao anúncio a ser renderizado.Stringnullsim
sizeTamanho desejado para renderização do anúncio.Arraynullsim
idValor do Id relacionado ao anúncio a ser renderizado.Stringnullsim
targetKeyIdentificação de chave para cada anúncio. Veja mais https://support.google.com/admanager?sjid=3738974891707676062-SA#topic=7505988](aqui)Stringnullnão
targetValueIdentificação de valor para cada anúncio. Veja mais https://support.google.com/admanager?sjid=3738974891707676062-SA#topic=7505988Stringnullnão

Animator

Utilize este componente para exibir animações.

Exemplos

animator

Utilização

<Window>
  <Animator animationData={myAnimationJSON} />
</Window>

Propriedades

PropriedadeDescriçãoTypeDefault
animationDataPropriedade que recebe a animação em JSON Lottie. O utilitário StyleResolver possui um método para obter um JSON de animação padrão para carregamento.JSONnull
widthSeta uma largura para a animação. O tamanho por padrão é 200pxnumber ou stringnull
heightSeta uma altura para a animação. O tamanho por padrão é 200pxnumber ou stringnull

Bullet

Componente para visualização de transição de elementos/telas através de bullets animados.

bullet

Utilização

<Bullet
  returnSelected={index => console.log(index)}
  bullets={this.state.bullets}
  selected={this.state.selected}
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
bulletsDefine quantos bullets irão aparecernumber3Sim
returnSelectedRetorna qual o bullet ativofunctionnullNão
selectedDefine qual é o bullet default na renderização do componentenumber1Não

Button

Exibe um botão na tela.

Exemplo

button-block



Utilização

<Button display={false} variant="primary-inverse">
  Button - Inverse
</Button>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
variantDefine qual será o estilo do botão, as propriedades são 'primary', 'primary-inverse' 'secondary', 'text' e 'danger'stringprimaryNão
labelDefine o o nome que será inserido no botãobooleanfalseNão
sizeDefine tamanho do botão. Pode ser 'medium' ou 'small'stringprimaryNão
onPressRecebe uma função para ser executada ao pressionarmos o botãofunctionnullSim
displayDefine uma largura fixa de 312px para o componentebooleantruenão
disabledInsere um estilo de desabilitado e inutiliza a função do onPressbooleanfalseNão

Componente auxiliar para mostrar conteúdos dentro de um carrossel.

carrousel

Utilização

Defina uma lista de componentes a serem exibidos, nesse caso colocamos o Paragraph, mas você pode inserir qualquer componente.

<Carousel autoplay>
  <Text>Slide 1</Text>
  <Text>Slide 2</Text>
</Carousel>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
bulletsMostrar indicadores de pontoBooleantruenão
speedVelocidade de animação de slide / fade em milisegundosNumber5000não
autoplayDefine que os slides passem de forma automática.Booleanfalsenão
slidePositionNessa propriedade você pode passar a posição em que o slide deve ser renderizado inicilamente, onde 0 significa a primeira posição.Number0não
lastSlideFunção que retorna true sempre que o último slide estiver sendo exibido.Functionnullnão
firstSlideFunção que retorna true quando o primeiro slide estiver sendo exibido.Functionnullnão
currentSlideFunção que retorna o index do slide que está sendo exibido.Functionnullnão

Chart

O grupo de componentes Chart permitem exibir alguns tipos de dados plotados na tela.

Importante: Este componente ainda não está de acordo com o padrão atual de design system Ame de 2022 e pode estar sujeito à mudanças visuais, de quebra de compatibilidade ou até deixar de existir.

Chart.Bar

Utilizado para mostrar dados em um gráfico de barras.

Exemplo

chartbar

Utilização

state = {
  labels: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho"],
  dataOptions: [
    {
      label: "Prata",
      data: [10, 20, 30, 40, 30, 15],
      color: "#c0c0c0",
    },
    {
      label: "Ouro",
      data: [90, 70, 30, 30, 40, 80],
      color: "#ffd700",
    },
  ],
}
;<Chart.Bar
  data={this.state.dataOptions}
  labels={this.state.labels}
  title="Gráfico em Barra"
/>
Propriedades
PropriedadeDescriçãoTypeDefaultObrigatório
labelsArray de textos que conceberão as propriedades do gráfico .String[]nullsim
dataArray do tipo DataBar que vai definir os valores, cores das barras do gráficoDataBar[]nullsim
titleTítulo do gráficoStringnullnão
positionPosição do título no gráficoStringnullnão

Chart.Line

Utilizado para a exibição de dados em um gráfico de linhas.

Exemplo

chartline

Utilização

state = {
  labels: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho"],
  dataOptions: [
    {
      label: "Prata",
      data: [7, 2, 6, 10, 100, 4],
      lineColor: "blue",
      color: "blue",
    },
    {
      label: "Ouro",
      data: [10, 20, 10, 40, 10, 10],
      lineColor: "orange",
      color: "orange",
    },
  ],
}
;<Chart.Line
  data={this.state.dataOptions}
  labels={this.state.labels}
  title="Gráfico em Linha"
/>
Propriedades
PropriedadeDescriçãoTypeDefaultObrigatório
labelsArray de textos que conceberão as propriedades do gráfico.String[]nullsim
dataArray do tipo DataLine que vai definir os valores, cores das linhas no gráficoDataLine[]nullsim
titleTítulo do gráficoStringnullnão
positionPosição do título no gráficoStringnullnão

Chart.Pie

Utilizado para mostrar dados em formato de gráfico de pizza.

Exemplo

chartpie

Utilização

state = {
  labels: ["Javascript", "Java", "Typescript"],
  dataPieOptions: {
    label: "Linguagens de programação",
    data: [120, 60, 80],
    backgroundColor: [
      "rgb(255, 99, 132)",
      "rgb(54, 162, 235)",
      "rgb(255, 206, 86)",
    ],
    borderColor: ["#444", "#444", "#444"],
    borderWidth: 1,
  },
}
;<Chart.Pie
  data={this.state.dataPieOptions}
  labels={this.state.labels}
  title="Gráfico Pie"
/>
Propriedades
PropriedadeDescriçãoTypeDefaultObrigatório
labelsArray de textos que conceberão as propriedades do gráfico.String[]nullsim
dataObjeto do tipo DataPue que vai definir os valores e cores das das partes do gráficoDataPienullsim

Checkbox

Caixa de seleção que permite que o usuário selecione um ou mais itens de um conjunto.

Exemplo

checkbox



Utilização

state = {
  checked: false,
}

;<Checkbox
  dataCy="checkbox-test"
  id="3124129"
  value="teste"
  checked={this.state.checked}
  onChange={e => {
    this.setState({ checked: e.checked })
  }}
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
checkedDefine o estado do checkboxbooleanfalseSim
onChangeFunção que retorna o estado e o valuefunctionnullSim
valueDefine o valor para o checkboxstringnullNão
disabledDesabilita o checkboxbooleanfalseNão
idPassa um id para o componentenumberaleatórioNão
groupRecebe um array com os estados de outros checkbox para controle do componente que recebe a propriedade 'group'arraynullNão

Chip

chip

Utilização

<Chip
  value="chip-1"
  icon="feedback-success"
  label="Label"
  onChange={e => console.log(e)}
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
iconÍcone a ser exibido do lado esquerdo do label. Recebe um token da lista de icones que pode ser encontrado aquiStringnonenão
variantDefine qual será o estilo do componente. Os valores aceitos são: 'primary', 'primary-inverse' ou 'secondary'Stringprimarynão
labelTexto a ser renderizado no componenteStringnonesim
activeAtiva o componente selecionadoBooleanfalsenão
disabledDesabilita o componenteBooleanfalsenão
valueValor do componenteStringnonesim
onChangeRetorna o value do componente

CurrencyInput

Exibe uma entrada de valor monetário na tela.

Exemplo

currencyinput



Utilização

<CurrencyInput
    maxLength={8}
    prefix={€}
    value={459}
    onChange={value => { ... }}
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
valueValor inicial que será renderizado no componente.numbernullSim
onChangeFunção a ser executada quando o valor é alterado, retornando o valor,functionnullSim
prefixPrefixo do tipo de moeda utilizada. Padrão é R$stringR$Não
maxLengthQuantidade máxima de caracteres.number9Não
disableEditEsconde o botão EditarbooleanfalseNão
disabledDesabilita o componente.booleanfalseNão

DatePicker

Input para entrada de datas.

Utilização

<DatePicker
  value={this.state.minDate}
  onChange={e => this.getMinDate(e)}
  placeholder="Escolha uma data"
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
valueValor inicial que será renderizado no componente.numbernullSim
onChangeFunção a ser executada quando o valor é alterado, retornando o valor,functionnullSim
minDateValor de data miníma qeu será inserido no componentestringnullNão
maxDateValor de data máxima qeu será inserido no componente.stringnullNão
localeRegião onde a data irá valer. Ex(pt-br)stringnullNão
disabledDesabilita o componente.booleanfalseNão
placeholderValor auxiliar que indicará o que o usuário irá fazerbooleanfalseNão
hintPequeno texto auxiliar.booleanfalseNão
errorPequeno texto auxiliar de error.booleanfalseNão

Grid

Utilize este componente para alinhar vários componentes em uma mesma linha. Ele divide o espaço exatamente pelo número de componentes dentro dele.

Utilização

<Grid>
  <Text>Preço</Text>
  <Text>R$50,00</Text>
</Grid>

Propriedades

PropriedadeDescriçãoTypeDefault
columnsIndica quantas colunas o grid terá. Maxímo de 5numbernull
noGapTira o espaçamento entre as colunasbooleanfalse

Group

Este componente serve apenas para organizar conteúdo, não possui propriedades.

Utilização

<Group>
  <View>...</View>
  <View>...</View>
  <View>...</View>
  <View>...</View>
</Group>

Hint

Componente para exibir alertas em formulários

hint


Utilização

<Hint status="success" text="Retorno de sucesso" show={true} />

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
typeDefine qual será o estilo do Hint, as propriedades são 'success', 'warning' e 'error'stringnullNão
showParâmetro que define se o Hint será exibido ou nãobooleanfalsenão

Icon

Componente que exibe um Ícone.

Utilização

<Icon icon="bank" color="primary" />

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
colorIconDefine a cor do ícone. Confira os valores aquiStringnullnão
iconDefine o ícone que erá utilizado. Confira os ícones aquiStringnullsim
sizeDefine o tamanho do ícone. Pode ter os seguintes valores 'small(20px)', 'medium(24px)', 'large(32px)' ou 'extra-large(40px)'String'medium'não

Lista de ícones


accessibility
address
album
ame-bank
ame-card
ame-creditcard
ameshopping
arrow-colapse
arrow-down
arrow-expand
arrow-left
arrow-right
arrow-up
art
attach
autonomous
badge
balance
balance-card
bank
bar-code
barbecue
beard
bell
bike-itau
bus
calendar
camera
car
card
cashback
cashback-best
cat
charity
check
chip
christmas
cinema
clap
clean
clock
close
community
comprar-americanas-mercado
compre-pelo-site-pague-com-ame
conversion
copy
corona-virus
coupon
covid-test
credit-card
crowdfunding
curiosity
dashboard
delivery-bike
deposit
disappointed-face
dislike
dr-consulta
drill
edit
education
electrician
ensure
environment
error
et
events
extended-waranty
eye-closed
eye-open
filter
fitter
flash-active
flash-inactive
gas
ghost
gift
gift-card
girl-power
gluten-free
gps-location
grocery
gym
hand-easy
handshake
happy-face
health
healthcare
heart
help
home
house
identity
identity-2
image
incoming
insurance
investments
joystick
joystick-2
key
keyboard-number
kids
lamp
large-pet
laundry
leisure
like
limit
list
loan
loan-3
loan-pj
location
lock
locksmith
mail
math-signals-divide
math-signals-equal
math-signals-minus
math-signals-plus

Image

image

Utilização

<Image src="<link_da_imagem>" alt="Uma Imagem" />

Propriedades

PropriedadeDescriçãoTypeDefault
srcCarrega a imagem tanto de require quanto com urlstring, functionnull
coverEssa propriedade deixa a imagem com object-fill coverbooleanfalse
widthDefine a largura da imagem, pode ser usado em porcentagem ou pixelsstring100%
heightDefine a altura da imagem, pode ser usado em porcentagem ou pixelsstringauto
altInsere um alt na imagemstringnull
bordeRadiusInsere o borderRadius no componentestringnone

InfiniteScroll

Componente focado em perfomance.

Utilização
state = {
  maxValue: 16,
  teams: teamsWordCup,
}

onEndReach = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      this.setState({
        maxValue: 32,
      })
      resolve()
    }, 3000)
  })
}
;<Window>
  <InfiniteScroll onEndReach={this.onEndReach} endOffset={50}>
    {this.state.teams.map(
      (team, index) =>
        index <= this.state.maxValue && (
          <CardImage
            key={team.name}
            onPress={() => console.log("press")}
            image="https://static.vecteezy.com/system/resources/previews/008/785/472/original/fifa-world-cup-qatar-2022-official-logo-mondial-champion-symbol-design-abstract-illustration-free-vector.jpg"
            title={team.name}
            description={team.country}
          />
        ),
    )}
  </InfiniteScroll>
</Window>
Propriedades
PropriedadeDescriçãoTypeDefault
onEndReachFunção que carrega ao chegar no bottom da divPromise, functionnull
endOffsetNúmero em pixels para ativação do onEndReach antes do bottomnumber0
childrenConteúdo dentro do InfiniteScrollReactNodenull
disabledDesabilita o componentebooleanfalse

Input

Insere um campo para inserção de dados.

Exemplo

input

Utilização
<View>
  <Input
    label="Preencha seu nome:"
    value={this.state.inputName}
    onChange={e => this.setState({ inputName: e })}
  />
</View>
Propriedades
PropriedadeDescriçãoTypeDefault
typeDefine o tipo do campo input. as opções são: "text", "number", "password", "email", "file", "search".stringtext
labelDefine o valor do label acima do inputstringtext
valueDefine o valor do campo.anynull
placeholderTexto descritivo dentro do input.stringnull
onChangeFunção a ser executada quando o valor é alterado.functionnull
rightIconToken do ícone a ser exibido no lado direito do Input. Veja aqui a lista de icones.stringnull
clickRightIconFunção a ser executada quando tocar no ícone do lado direito.functionnull
idAtribuiu um id ao input.stringnull
maskIndica que o conteúdo do input deverá ser formatado de acordo com uma máscara. Pode ser usado um array de masks para mudança dinâmica.stringnull
disabledDesabilita o campo.booleanfalse
autoFocusAtribui foco automatico ao Input quando a página for carregada.booleanfalse
onBlurExecuta uma função assim que o Input perde o foco.functionnull
acceptDefine o tipo de arquivo que será aceito no Input. Pode ser usado apenas com o type='file'.stringnull
statusMuda a cor da borda e hint de acordo com o status enviado. opções: "positive", "negative".stringnull
multilineSe ativo define um input estilo text area.booleannull
maskDefine uma mascará para o inputstringtext
statusDefine um status para o input'negative' 'positive'text
hintPequeno texto auxiliar.stringnull
onSubmitFunção executada ao usuário prescionar a tecla 'Enter' durante o uso do componente Input.functionnull
Exemplos

No exemplo a seguir o componente Input é usado com o 'type="password"', com isso é gerado automáticamente o ícone de visibilidade do campo, que é alterado quando clicado:

input

<Input
  placeholder="Digite a sua senha"
  value={this.state.inputPassword}
  onChange={e => this.setState({ inputPassword: e })}
  type="password"
  hint="Escolha uma senha segura"
/>

Observação Ao definir o type como 'password' ou 'search', o icone é pré-definido, não podendo ser usado junto com a propriedade 'rightIcon'

Label

Componente select para seleção de itens

Utilização

<Label>Exemplo do [u]label[/u]</Label>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
htmlForDefine a qual elemento de form, através do id, o Label está atrelado.stringnullNão

Maps

Componente utilizado para a exibir a localização no mapa, a partir da API do Google Map.

Documentação da API: https://developers.google.com/maps/documentation/javascript/overview

Utilização


<Map
  apiKey={"GOOGLE_API_KEY"}
  mapOptions={{
    center: {
      lat: -22.94980821,
      lng: -43.19095194,
    },
    zoom: 12,
  }}
  getMap={(map, markers) => {
    this.setState({ map, markers })
  }}
  onMarkerPress={marker => {
    let info = new window.google.maps.InfoWindow({
      content: "teste",
    })
    info.open(this.state.map, marker)
  }}
  markers={[
    {
      lat: -22.970722,
      lng: -43.182365,
      options: {
        title: "Copacabana",
        clickable: false,
        icon: "https://developers.google.com/maps/documentation/javascript/examples/full/images/parking_lot_maps.png",
      },
    },
    {
      lat: -22.9511,
      lng: -43.1809,
      options: {
        title: "Botafogo",
        draggable: true,
      },
    },
  ]}
/>

Propriedades

PropriedadeDescriçãoTypeDefault
returnMapFunção que retorna o objeto map após o script do google maps ser carregadofunctionmap
optionsObjeto que carrega as opções do google mapsobject{ center: { lat: -22.9567, lng: -43.17612 }, zoom: 20 }

Esse componente carrega o google maps nos scripts da tela, portanto qualquer opção da documentação da api do google pode ser usada acessando window.google

Modal

Componente que renderiza um modal no meio da tela ou a partir do bottom.

Utilização

<Modal
  show={showModal}
  position={position}
  closeModalCallback={this.closeModal}
>
  <Text>Lorem ipsum ....</Text>
</Modal>

Propriedades

PropriedadeDescriçãoTypeDefault
showEssa propriedade recebe true ou false e controla a visibilidade do modal.booleanfalse
positionPosition pode receber as strings bottom ou center (Veja nos exemplos no fim da página as diferenças entre eles).stringcenter
closeModalCallbackEssa propriedade chama a função que muda o status presente em show, ela é acionada quando clica fora do modal.functionnull

QRCode

Componente que renderiza um modal no meio da tela ou a partir do bottom.

Utilização

state = {
  QRCodeValue: "",
}

inputOnChange = value => {
  this.setState({ QRCodeValue: value })
}

;<View direction="column" align="center" justify="center">
  <Text target="title-large">QRCode</Text>
  <View paddingVertical="small">
    <Input
      placeholder="Digite aqui um valor"
      value={this.state.QRCodeValue}
      onChange={this.inputOnChange}
    />
  </View>
  <View direction="column" align="center" justify="center">
    <QRCode value={this.state.QRCodeValue} />
  </View>
</View>

Propriedades

PropriedadeDescriçãoTypeDefault
valueValor do QRCode que será geradostringnull
sizeTamanho em altura e largura do QRCode que será geradonumber200

Radio

O Radio é usado para seleções únicas, onde somente uma opção pode ser selecionada

Radio

Utilização

<Radio
  name="primary"
  value="primary1"
  id="primary"
  checked={this.state.valueRadioSelected}
  onChange={value => {
    this.selectValue(value)
  }}>
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
nameDefine o name do radiostringnullSim
checkedAqui é passado qual o value selecionadostringnullSim
onChangeFunção que retorna o valuefunctionnullSim
valueDefine o valor para o radiostringnullSim
disabledDesabilita o radiobooleanfalseNão
idPassa um id para o componentenumberaleatórioNão

SegmentedControl

Utilizado sempre para a navegação. Os itens serão transformados em abas.

Exemplo

segmented


Utilização

<SegmentedControl
  items={[
    {
      title: "Moto One",
    },
    {
      title: "Samsung Galaxy A50",
    },
    {
      title: "Xiaomi M11",
    },
  ]}
  defaultActiveTab={0}
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
itemsArray de objetos que contem um 'title' representando cada 'aba' do componente.arraynullSim
activeTabDetermina a aba ativa do componente através do index do array.numbernullNão
onPressFunção que retorna o index da aba ao ser selecionada.functionnullSim
disabledDesabilita o componente.booleanfalseNão

Select

Componente select para seleção de itens

select

Utilização

state = {
  selected: "",
}
options = [
  {
    label: "teste 1",
    value: "teste 1",
  },
  {
    label: "teste 2",
    value: "teste 2",
  },
  {
    label: "teste 3",
    value: "teste 3",
  },
  {
    label: "teste 4",
    value: "teste 4",
  },
  {
    label: "teste 5",
    value: "teste 5",
  },
  {
    label: "teste 6",
    value: "teste 6",
  },
]

;<Select
  label="Label do select"
  placeholder="Selecione Aqui"
  keySelectLabel="label"
  options={this.options}
  value={this.state.selected}
  onChange={e => this.setState({ selected: e })}
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
optionsArray de objetos contendo valores de label e value.arraynullSim
valueValor que pode ser passado para iniciar o componente.string ou objetonullSim
keySelectLabelIndica se o valor informado como value e o retorno da função OnChange é o label ou o `value do objeto.stringlabelNão
disabledDesabilita o componente.booleanfalseNão
onChangeFunção a ser executada quando selecionar valor, deve alimentar o estado do value.functionnullSim
placeholderTexto descritivo dentro do Select caso o value inicial seja vazio.stringnullNão
hintDefine um hint para o selectstringnullNão
statusDefine um status. Pode receber 'positive' ou 'negative'stringnullNão

Slider

Componente utilizado para seleção de valor através de um slider range.

slider

Utilização

<Slider
  minAmount={0}
  maxAmount={10000}
  value={200000}
  onChange={value => {
    setValue(value)
  }}
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
monetaryDefine se os valores do componente será monetário (ex: 150,00) ou number (ex: 150)Booleantruefalse
minAmountValor mínimo para seleção. Se a prop monetary for true, deve ser acrescentado 00 ao final do número. (ex: 15000 => 150,00)Number0false
maxAmountValor máximo para seleção. Se a prop monetary for true, deve ser acrescentado 00 ao final do número. (ex: 700000 => 7000,00)Number7500false
valueValor inicial que será renderizado no componente.Numbernullfalse
onChangeFunção que será executada quando o valor for alterado.Functionundefinedtrue
stepQuantidade que será incrementada ou decrementada no value ao alterar o slider. (Ex: se o valor desta prop for 5, a alteração será de 5 em 5)Number100false
disabledDesabilita a interação com o componente.Booleanfalsefalse
infoLabelIndica se os labels laterais serão representados pelos values de min e max, ou por icones. opções: "value" ou "icon"stringvaluefalse
leftIconQuando infoLabel="icon", renderiza um icone na esquerda do componente. Recebe um token da lista de icones que pode ser encontrado aquistringnullfalse
rightIconQuando infoLabel="icon", renderiza um icone na direitoa do componente. Recebe um token da lista de icones que pode ser encontrado aquistringnullfalse
labelHabilita a renderoização de um label acima do knobe do slider representando o valor selecionadobooleanfalsefalse

Text

Componente de texto que recebe diversas propriedades

Utilização

<View>
  <Text>Componente Text</Text>
</View>

Propriedades

PropriedadeDescriçãoTypeDefault
fontSizeDefine o tamanho da font. Veja os valoresstringextra-small
fontWeightDefine o peso da font. Veja os valoresstringregular
lineHeightDefine a altura da linha font. Veja os valoresstringmedium
textAlignDefine o alimanhento do texto. Veja os valoresstringleft
selectableDefine se o texto será selecionavel.booleanfalse
truncateDefine uma quantidade de linhas para mostrar o texto. Ao fim dessas linhas, caso tenha mais textos, será acresentado '...'.numbernull
colorDefine a cor do texto. Veja os valoresstringneutral-700
targetDefine um estilo para o texto pré determinado. Veja os valoresstringnull
truncateDefine ellipsis(reticências) no final do textonumbernull

Toggle

Componente para escolhas com retorno true e false.

toggle

Utilização

state = {
  checked: false,
}
;<Toggle
  checked={this.state.checked}
  value="teste"
  onChange={e => this.setState({ checked: e.state })}
/>

Propriedades

PropriedadeDescriçãoTypeDefault
checkedDefine se o Toggle está ou não ativobooleanfalse
disabledDesabilita o componentebooleanfalse
valueValor atribuído ao componentestringnull
idAtribui um id ao Togglestringnull
onChangeFunção que retorna o estado do componente.functionnull

Tooltip

Componente focado em acessibilidade.

Exemplo

toggle

Utilização
<Text>
  Lorem Ipsum is{` `}
  <Tooltip label="Olá eu sou o Tooltip" position="bottom">
    <Text>[b]simply[/b]</Text>
  </Tooltip>
  {` `}
  dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's
  standard dummy text ever since the 1500s, when an unknown printer took a galley
  of type and scrambled it to make a type specimen book. It has survived not only
  five centuries, but also the leap into electronic typesetting, remaining essentially
  unchanged. It was popularised in the 1960s with the release of Letraset sheets
  containing Lorem Ipsum passages, and more recently with desktop publishing software
  like Aldus PageMaker including versions of Lorem Ipsu
</Text>
Propriedades
PropriedadeDescriçãoTypeDefault
showArrowDefine se a flecha indicadora aparecerábooleanfalse
positionDefine a posição onde ficará o Tooltipstringbottom
labelDefine o que estará escrito dentro do Tooltipstringnull

Touchable

Envolva um componente com Touchable para que ele passe a ter interação.

Utilização

<Touchable
  onClick={() => {
    console.log("Clicado!")
  }}
>
  <Text>Agora sou clicável</Text>
</Touchable>

Propriedades

PropriedadeDescriçãoTypeDefault
onPressFunção que será chamada ao tocar no componente.functionnull
disabledOnPressFunção que será chamada caso o Touchable esteja desabilitado.functionnull
disabledDesabilita o componentebooleanfalse
widthDefine a largura do componentestringnull
heightDefine a altura do componentestringnull

Video

Componente para renderização de vídeo.

video

Exemplo:

<Video source="https://s3.amazonaws.com/calindra.com.br/ame.mp4" />

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
sourceAceita arquivos de vídeo em formato MP4 e player externo como o Vimeo.stringnullNão
youtubeIdAceita o ID de um vídeo do youtubeId. OBS: O ID pode ser encontrado na URL do vídeo apois o caracter '='.stringnullNão
widthDefine a largura do componente.string ou number100%Não
heightDefine a altura do componente.string ou number100%Não
controlsPermite o usuário controlar a reprodução do vídeo, incluindo volume, navegação, e pausa/continuação da reprodução.booleanfalseNão
autoPlayO vídeo é executado automaticamente. OBS: Funciona apenas com a propriedade source.booleanfalseNão
thumbnailImagem para a capa do vídeo enquanto não carregado. OBS: Funciona apenas com a propriedade source.stringnullNão
mutedInicia o vídeo mutado.booleanfalseNão

No Android, mesmo a propriedade autoPlay={true}, para que o vídeo seja reproduzido automaticamente, é necessário que muted={true}

View

Talvez um dos componentes mais úteis para construir telas e recebe diversas propriedades para te ajudar nessa tarefa.

view

Utilização

<View>
  <Paragraph>Este parágrafo está dentro da view</Paragraph>
</View>

Propriedades

PropriedadeDescriçãoTypeDefault
backgroundAdiciona uma cor de fundo, veja os valoresstringnull
borderWidthAdiciona uma borda em todas as direções da View. veja os valoresstringnull
borderTopWidthAdiciona uma borda na topo da View. veja os valoresstringnull
borderBottomWidthAdiciona uma borda embaixo da View. veja os valoresstringnull
borderLeftWidthAdiciona uma borda na esquerda da View. veja os valoresstringnull
borderRightWidthAdiciona uma borda na direita da View. veja os valoresstringnull
boxShadowAdiciona sombrar ao redor da View. veja os valoresstringnull
borderRadiusDefine o arredondamento da borda, veja os valoresstringnull
borderRadiusLeftTopDefine o arredondamento da borda no canto esquerdo superior. veja os valoresstringnull
borderRadiusRightTopDefine o arredondamento da borda no canto direito superior. veja os valoresstringnull
borderRadiusLeftBottomDefine o arredondamento da borda no canto esquerdo inferior. veja os valoresstringnull
borderRadiusRightBottomDefine o arredondamento da borda no canto direito inferior. veja os valoresstringnull
borderColorDefine qual será a cor da borda, veja os valoresstringnull
directionDefine qual será a direção do display flex. veja os valoresstringnull
displayDefine qual será o display. Pode receber block, flex, none, inline-flex, inline-block.stringnull
alignDefine qual será o alinhamento vertical do display flex. veja os valoresstringnull
justifyDefine qual sera o alinhamento horizontal do display flex. veja os valoresstringnull
paddingLeftDefine o padding no lado esquerdo. veja os valoresstringnull
paddingRightDefine o padding no lado direito. veja os valoresstringnull
paddingTopDefine o padding em cima. veja os valoresstringnull
paddingBottomDefine o padding em baixo. veja os valoresstringnull
paddingHorizontalDefine o padding no eixo X. veja os valoresstringnull
paddingVerticalDefine o padding no eixo Y. veja os valoresstringnull
marginDefine a margem no eixo X e Y. veja os valoresstringnull
marginLeftDefine a margem no lado esquerdo. veja os valoresstringnull
marginRightDefine a margem no lado direito. veja os valoresstringnull
marginTopDefine a margem em cima. veja os valoresstringnull
marginBottomDefine a margem em baixo. veja os valoresstringnull
marginYDefine a margem no eixo Y. veja os valoresstringnull
marginXDefine a margem no eixo X. veja os valoresstringnull
maxWidthDefine qual será a largura máxima da View.stringnull
minWidthDefine qual será a largura mínima da View.stringnull
widthDefine qual será a largura da View em % ou px.string100%
heightDefine qual será a altura da View em % ou px.stringauto
displayDefine qual será o display e os valores aceitos são flex, block, none.stringblock
flexWrapDefine se os itens são forçados em uma linha ou podem ser agrupados em várias linhas e os valores aceitos são wrap, nowrap, reverse.stringnull
flexNonePassando essa propriedade a View respeitará o tamanho de width independente do flex.booleanfalse
opacityDefine a opacidade da View, veja os valores.stringnull
overflowDefine o overflow para definição de limite da View. Os valores aceitos são: hidden, auto, scroll. stringnull
overflowXDefine o overflow para definição de limite da View no eixo X. Os valores aceitos são: hidden, auto, scroll.stringnull
overflowYDefine o overflow para definição de limite da View no eixo Y. Os valores aceitos são: hidden, auto, scroll.stringnull

Window

É um componente mestre que precisa envolver toda tela.
Seu uso é obrigatório e ele deverá ser o primeiro nó de todas as telas.
Nunca utilize Window dentro de outro Window.

Você deve usar o componente Window como no exemplo abaixo.

Utilização

<Window>Todas as outras tags devem ficar aqui dentro</Window>

Super Componentes

CardImage

CardImage é um componente que contêm um conteúdo e ações sobre um determinado assunto.

cardImage



Utilização

import ImageExample from "../assets/images/ame-example.png"

;<CardImage
  onPress={() => console.log("press")}
  image={ImageExample}
  title="Título do card"
  description="Informações adicionais do card"
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
titleTítulo do card.stringnullSim
descriptionPequeno texto desctritivo do card.stringnullNão
imageImagem que será exibida no card. Pode ser um endereço HTTPS ou path do arquivo local.stringnullSim
onPressFunção executada ao clicar no card.functionnullNão
disabledDesabilita o componente.booleannullNão

List

Este componente fornece uma lista útil para ser usada como um navegador, exibir produtos ou outras coisas.

list



Utilização

state = {
  ListItems: [{ title: "Compras" }, { title: "Saldo" }, { title: "Extrato" }],
}
goTo = index => {
  console.log(index)
}
;<View padding="sm">
  <List items={this.state.ListItems} onItemPress={i => this.goTo(i)} />
</View>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
itemsRecebe um array de objetos contendo a propriedade title.arraynullSim
disabledDesabilita o Componente.booleanfalseNão
onIntemPressFunção a ser executada quando um item é clicado. Retorna o index do item no array da propriedade itemsfunctionnullNão

items

Valores aceitos em cada objeto do array. Todos os valores são do tipo string.

{
  title: "Titulo do item."
}

Executa a função semelhante a um link html. Evite o uso excessivo.

textlink

Utilização

O TextLink pode ser usado com o Text, assim você consegue controlar o tamanho da fonte sem precisar passar um parâmetro para o text e outro para o textLink por exemplo.

<Text size='md'>
  Um texto qualquer
  <TextLink onPress='() => { funcaoClick() }'/> Texto Link </TextLink>
  [b]um texto bold[/b]
</Text>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
onPressRecebe uma função para ser executada ao pressionarmos o TextLinkfunctionnullSim

Header

Header é o cabeçalho padrão para os miniapps a partir da versão 3.0.0 dos componentes, implementado pelo Design System Ametista.

Exemplos

Header na home do miniapp (context={primary})

header

Header nas demais páginas do miniapp (context={secondary})

header



Utilização

Header na home do miniapp (context={primary})

<Header
  context="primary" 
  leftIcon="arrow-left"
  leftIconOnPress={() => Ame.navigation.back()}
  rightIcon="help"
  rightIconOnPress={() => Ame.navigation.navigate({path: "/Help"})}
  title="Nome do miniapp"
/>

Header nas demais páginas do miniapp (context={secondary})

<Header
  context="secondary" 
  leftIcon="arrow-left"
  leftIconOnPress={() => Ame.navigation.back()}
  rightIcon="close"
  rightIconOnPress={() => Ame.navigation.closeMiniApp()}
  title="Nome do miniapp"
  subtitle="Nome da página"
/>

Propriedades

PropriedadeDescriçãoTypeDefaultObrigatório
contextContexto do uso do header. Recebe primary ou secondary para definir o tipo de header.stringprimarySim
leftIconÍcone à ser utilizado do lado esquerdo. Recebe apenas tokens de ícone.stringarrow-leftSim
leftIconOnPressFunção executada ao clicar no ícone esquerdo.functionnullSim
rightIconÍcone à ser utilizado do lado direito. Recebe apenas tokens de ícone.stringnullNão
rightIconOnPressFunção executada ao clicar no ícone direito.functionnullNão
titleTexto exibido na primeira linha de título.stringnullNão
subtitleTexto exibido na segunda linha, de subtítulo. (Exibido apenas no context={secondary}).stringnullNão
stickyFixa o header no topo à medida que o usuário rola a tela para baixo.booleanfalseNão
safeAreaPermite que se declare um valor em pixel para ser usado como safe area no topo do header.numbernullNão

FAQs

Last updated on 05 Jan 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc