Pular para o conteúdo principal

Referência do React Native

5 min de leituraAtualizado em 25 out. 2026

Pacote @atalia-ia/react-native-chat. As funções existem como exportação nomeada e no objeto padrão:

TypeScript
import Atalia, { identify, useAtaliaState, type AtaliaEvent } from '@atalia-ia/react-native-chat';

Por baixo, cada função chama o SDK nativo da plataforma: o comportamento é o descrito nas referências de Android e iOS.

Funções​

Configuração​

FunçãoDescrição
configure(channelToken: string, options?: AtaliaOptions): voidInicia o SDK. Com o plugin do Expo (channelToken no app.json) o SDK já nasce configurado e esta chamada só troca as opções.

Chat​

FunçãoDescrição
open(): voidAbre o chat por cima do app.
openConversation(conversationId: number): voidAbre direto numa conversa. Com o chat já aberto, só troca de conversa.
close(): voidiOS: fecha o chat. No Android o visitante fecha pela própria tela.

Identificação​

FunçãoDescrição
identify(jwt: string): Promise<AtaliaContact>Liga o visitante ao usuário logado. O JWT vem do seu backend. Em caso de erro, error.code traz o código da Atalia.
logout(): Promise<void>Encerra a sessão identificada; o aparelho volta a ser visitante anônimo.

Não lidas e estado​

FunçãoDescrição
getState(): Promise<AtaliaState>Não lidas, identificação e se o chat está aberto.
refreshUnread(): Promise<number>Consulta as não lidas na Atalia. O SDK já consulta sozinho quando o app volta para a frente.

Eventos​

FunçãoDescrição
addListener(listener: (event: AtaliaEvent) => void): AtaliaSubscriptionRecebe os eventos do chat. Chame remove() no objeto devolvido para parar.

Notificações push​

FunçãoDescrição
setPushToken(token: string): voidToken do Firebase Cloud Messaging. O SDK registra o aparelho na Atalia e o acompanha no login e no logout.
setAPNsToken(token: string, environment: AtaliaPushEnvironment): voidiOS: token do APNs em hexadecimal, para o modo webhook. No Android não faz nada.
clearPushToken(): voidTira o aparelho da Atalia.
isAtaliaNotification(notification: AtaliaNotificationInput): booleanA notificação veio da Atalia?
shouldShowNotification(notification: AtaliaNotificationInput): Promise<boolean>Para o handler com o app aberto: false quando é da Atalia e o chat já está na tela. Outra origem devolve true.
handleNotification(notification: AtaliaNotificationInput): Promise<boolean>App aberto, com o Firebase: no Android mostra a notificação (menos com o chat na tela); no iOS só atualiza as não lidas. false quando não é da Atalia.
handleNotificationTap(notification: AtaliaNotificationInput): booleanToque: abre o chat na conversa da notificação. false quando não é da Atalia.

Botão flutuante​

FunçãoDescrição
showLauncher(options?: AtaliaLauncherOptions): voidMostra o botão por cima de todas as telas. Chamar de novo troca as opções.
hideLauncher(): voidTira o botão.

Hooks​

HookDevolve
useAtaliaState()AtaliaState, atualizado sozinho com os eventos do chat.
useAtaliaUnreadCount()Só as não lidas, para um badge.
useAtaliaEvent(listener)Nada: ouve os eventos enquanto o componente estiver na tela. Passe uma função estável (useCallback), senão a inscrição é refeita a cada renderização.

Tipos​

AtaliaOptions​

CampoPadrãoDescrição
baseUrl?: stringhttps://chat.atalia.aiOutra origem: homologação ou o domínio próprio do canal.
customDomain?: booleanfalsetrue quando baseUrl é o domínio próprio vinculado ao canal.
closeButton?: booleantrueMostra o botão "Fechar" no chat.
presentationStyle?: 'pageSheet' | 'fullScreen''pageSheet'Como o chat abre: folha que sobe sobre o app (arrastar a alça fecha) ou tela cheia. Até a 0.3.0, o padrão era 'fullScreen' (e a opção valia só no iOS).
debug?: booleanfalsePermite inspecionar o WebView. Nunca em produção.
appBadge?: booleantrueiOS: com o push ligado, o número no ícone do app acompanha as não lidas. false também tira o número do push da Atalia.

AtaliaState​

CampoDescrição
unreadCount: numberMensagens do atendente, da IA e do sistema ainda não lidas.
isIdentified: booleanA sessão pertence a um usuário identificado.
isChatOpen: booleanA tela do chat está aberta.

AtaliaContact​

CampoDescrição
externalId: stringO id do usuário no seu sistema, o mesmo do JWT.
contactId: numberO id do contato na Atalia.
name: string | nullNome do contato, quando o JWT traz.

AtaliaEvent​

Cada evento tem type e os campos abaixo.

typeCamposQuando
readynenhumO chat terminou de carregar.
opened / closednenhumA tela do chat abriu ou fechou.
identifiedexternalId, contactIdO visitante foi identificado.
loggedOutnenhumA sessão identificada foi encerrada.
conversationStarted / conversationClosedconversationIdUma conversa começou ou foi encerrada.
messageReceivedconversationId, messageIdChegou mensagem do atendente, da IA ou do sistema. Só os ids: o texto nunca sai do chat.
unreadChangedcountO total de não lidas mudou.
errorcode, commandFalha ao carregar o chat (INIT_FAILED) ou num comando (command = identify, open_conversation...).

AtaliaLauncherOptions​

CampoPadrãoDescrição
side?: 'start' | 'end'o lado do painelLado da tela.
horizontalMargin?: number16Distância da lateral.
bottomMargin?: number16Distância do fim da tela, além da área segura. Aumente para ficar acima de uma barra de abas.
text?: stringo do painelTítulo do botão aberto.
subtitle?: stringo nome do atendimentoLinha de baixo do botão aberto. '' tira o subtítulo.
color?: stringa do painelCor do círculo e da aba, #RRGGBB.
collapse?: 'circle' | 'edge' | 'never''circle'Forma depois de recolher: só o círculo, aba na lateral ou sempre aberto.
collapseAfter?: number5000Milissegundos aberto antes de recolher.
draggable?: booleanfalseO usuário arrasta o botão para onde quiser; ao soltar, ele gruda na lateral mais próxima.
dockable?: booleantruePuxar até a borda esconde o botão numa aba.
preloadChat?: booleantrueCarrega o chat escondido enquanto o botão está na tela: o toque abre o chat pronto.

Outros​

TipoDescrição
AtaliaPushEnvironment'production' ou 'sandbox' (builds instalados pelo Xcode).
AtaliaNotificationInputO data da notificação ou o objeto inteiro da biblioteca: RemoteMessage do Firebase, Notification ou NotificationResponse do expo-notifications.
AtaliaSubscription{ remove(): void }, devolvido por addListener.

Erros​

As funções que devolvem Promise rejeitam com um erro que tem code, o mesmo código das plataformas nativas:

codeQuando
NOT_CONFIGUREDO SDK ainda não foi configurado (nem pelo plugin, nem por configure).
TIMEOUTO chat aberto não respondeu a tempo a um comando.
EXPIRED, INVALID_SIGNATURE, REPLAYED...Recusa do identify pela Atalia: veja Identificar o usuário logado.