Item
Linha de lista
Clínica São Lucas
12.345.678/0001-99
Transportes Cabo Branco
98.765.432/0001-10
Com moldura
Supermercado Tambau
Ultima nota em 18/08
import { Item } from '@rivocode/ui'Quando usar
A linha de lista: alguma coisa a esquerda, texto no meio, ação a direita.
Existe porque metade de qualquer tela e isso, e sem uma peça com nome cada projeto reinventa com div solta e respiro próprio. Não e componente de dado, e de arranjo.
Compõe com ItemMedia à esquerda, ItemContent no meio (com ItemTitle e
ItemDescription dentro) e ItemActions à direita. As três colunas existem
para uma só encolher: o miolo corta o texto com reticências, e a mídia e as
ações ficam do tamanho que têm.
Com interactive ganha foco e passagem; use junto com render de link ou botão,
porque cor de passagem em div não vira alvo de teclado.
No React Native
Traduz, e não concorre com o DataList: ele resolve os quatro finais de uma consulta e devolve cada linha ao renderItem sem opinião sobre o que há dentro dela. O Item é esse dentro, e serve igualmente à lista de duas escolhas numa folha, que consulta nenhuma tem. A composição do web (ItemMedia, ItemContent, ItemTitle, ItemDescription, ItemActions) vira quatro props, pela mesma regra do PageHeader: os lugares são sempre os mesmos, e prop nenhuma deixa trocar a ordem das colunas sem querer. Com onPress a linha inteira vira alvo, com 44px de altura mínima, mas quando há actions, o alvo passa a ser só a área de texto, senão o Pressable acessível por cima engoliria o botão da direita como parada do leitor de tela. Dentro de um DataList com onRowPress, não passe onPress: um Pressable dentro do outro segura o toque no de dentro, e a linha responderia aqui e nunca lá.
API
| Prop | Tipo |
|---|---|
interactive0.4.0 | boolean | null |
renderTroca o elemento renderizado mantendo a aparencia: `<Item render={<a href="..." />}>`. | ReactElement<unknown, string | JSXElementConstructor<any>> |
variant0.4.0 | "outline""plain"null |
Além destas, a peça aceita className, style, id e children, repassados ao elemento de baixo.
Partes
Item se monta com estas peças. Todas vivem nesta página, porque separar cada uma num endereço obrigaria a abrir seis abas para montar uma tela.
ItemActions
/item-actions.mdO canto de ação, à direita e sem encolher.
Botão de ícone, Badge de estado ou o gatilho de um Menu. Duas ações já é
muito para uma linha de lista: a terceira em diante vive dentro do menu, senão
cada linha vira uma barra de ferramentas.
Sem prop própria: repassa ao elemento de baixo o que você mandar.
ItemContent
/item-content.mdO miolo de texto, entre a mídia e as ações.
É a única parte que encolhe, e é assim que o título corta com reticências em vez de empurrar os botões para fora da linha. Uma linha de lista que quebra o arranjo em telas estreitas quase sempre é texto solto aqui, sem esta peça em volta.
Sem prop própria: repassa ao elemento de baixo o que você mandar.
ItemDescription
/item-description.mdA segunda linha, menor e mais apagada, também cortada quando não cabe.
Uma linha, e não um parágrafo: item de lista que cresce em altura desalinha a lista inteira, e o lugar do texto longo é a tela que o item abre.
Sem prop própria: repassa ao elemento de baixo o que você mandar.
ItemMedia
/item-media.mdO canto de imagem, ícone ou avatar.
Não encolhe. É o que garante que o avatar continue redondo quando o título do lado é longo: sem isso o flex espreme a imagem antes do texto, e a lista fica com um círculo achatado por linha.
Sem prop própria: repassa ao elemento de baixo o que você mandar.
ItemTitle
/item-title.mdA primeira linha do miolo, cortada com reticências quando não cabe.
Sem prop própria: repassa ao elemento de baixo o que você mandar.