Pular para o conteúdo principal

Avatar

O componente Avatar é utilizado para exibir imagens de perfil de usuários, com suporte para iniciais (monograma) quando não há imagem disponível e funcionalidade de upload de imagem.

Importação

import { Avatar } from '@platformbuilders/fluid-react-native';

Exemplo Básico

<Avatar 
accessibility="avatar-usuario"
size={50}
/>

Exemplos

Com Imagem

<Avatar 
accessibility="avatar-usuario"
image="https://exemplo.com/avatar.jpg"
size={60}
/>

Com Monograma (Iniciais)

Quando não há imagem disponível, o Avatar pode exibir as iniciais do nome do usuário:

<Avatar 
accessibility="avatar-usuario"
name="John Doe"
size={60}
displayMonogram
/>

Com Upload de Imagem

<Avatar 
accessibility="avatar-usuario"
size={80}
onUpload={(uri) => {
console.log('Imagem carregada:', uri);
// Salvar a URI da imagem no estado ou enviar para o servidor
}}
/>

Com Estilo Personalizado

<Avatar 
accessibility="avatar-usuario"
size={70}
showBorder
borderWidth={3}
borderColor="#2ecc71"
style={{ marginBottom: 16 }}
monogramStyle={{ color: '#ffffff', fontWeight: 'bold' }}
/>

Com Referência para Controle

import React, { useRef } from 'react';
import { Button, View } from 'react-native';
import { Avatar } from '@platformbuilders/fluid-react-native';

const ProfileScreen = () => {
const avatarRef = useRef(null);

const handleSelectImage = () => {
// Abre o seletor de imagens
avatarRef.current.openPicker();
};

const handleClearImage = () => {
// Limpa a imagem atual
avatarRef.current.clearUploadImage();
};

return (
<View>
<Avatar
ref={avatarRef}
accessibility="perfil-avatar"
size={100}
onUpload={(uri) => console.log('Imagem carregada:', uri)}
/>

<Button title="Selecionar imagem" onPress={handleSelectImage} />
<Button title="Remover imagem" onPress={handleClearImage} />
</View>
);
};

API

Props

PropTipoPadrãoDescrição
accessibilitystring'Upload de Avatar'Identificador de acessibilidade (obrigatório)
idstring-ID opcional para o componente
accessibilityLabelstring-Rótulo de acessibilidade
imageImageSource-Fonte da imagem para o avatar
namestring-Nome do usuário (usado para gerar monograma)
sizenumber50Tamanho do avatar (largura e altura)
showBorderbooleantrueSe deve exibir borda ao redor do avatar
borderWidthnumber2Largura da borda
borderColorstring-Cor da borda (usa a cor primária do tema se não especificado)
displayMonogrambooleantrueSe deve exibir as iniciais quando não há imagem
monogramStyleStyleProp<TextStyle>-Estilo personalizado para o monograma
animatedLoadingbooleantrueSe deve mostrar animação de carregamento
imageQualityPhotoQuality0.5Qualidade da imagem ao fazer upload (0 a 1)
onPress() => void-Callback para quando o avatar é pressionado
onUpload(uri: string) => any-Callback para quando uma imagem é carregada
styleStyleProp<ViewStyle>-Estilo do componente

Métodos (via Ref)

MétodoDescrição
getUploadImage()Retorna a URI da imagem atualmente carregada
clearUploadImage()Limpa a imagem atual
takePicture()Tira uma foto usando a câmera (quando disponível)
openPicker()Abre o seletor de imagens nativo

Notas de uso

  • Quando name e displayMonogram são fornecidos, o componente exibirá as iniciais do nome se não houver imagem
  • O monograma é gerado automaticamente a partir do nome usando a função formatToMonogram
  • O componente usa react-native-image-picker para a funcionalidade de upload
  • Quando onUpload é fornecido, tocar no avatar abrirá o seletor de imagens
  • Para controle programático, use uma referência (ref) para acessar os métodos do componente