Pular para o conteúdo principal

Perguntas frequentes

Mostra algo quando o app abre online?​

Não. O status é unknown até a primeira verificação terminar, e isOnline trata unknown como online. "Conexão restabelecida" só aparece depois de uma perda real: nunca na abertura.

Por que diz offline se o meu Wi-Fi está conectado?​

Porque "conectado" não é "tem internet". Se a interface está ativa mas a sonda falha em todas as URLs, o estado é offline com o motivo no-internet. Um portal cativo, um roteador sem saída ou um firewall que bloqueia os hosts da sonda têm essa aparência. Uma sonda só falha quando a própria requisição falha (sem conexão, erro de TLS, tempo esgotado); qualquer resposta HTTP, mesmo um 404 ou um 500, conta como alcançável. Use a sua própria URL de sonda se as padrão estiverem bloqueadas. Veja Privacidade.

Quanto tempo leva para perceber?​

Quando a interface cai, é imediato: nenhuma sonda é necessária. Quando a interface continua ativa mas a internet some, a próxima sonda decide: a cada 30 segundos por padrão, enquanto online. Offline, ele tenta de novo após 1 segundo, dobrando até um teto de 30 segundos, e voltar a ficar online zera isso.

Posso rodar sem nenhuma requisição de rede?​

Sim. Use probe={{ mode: 'interface-only' }}. Ele nunca chama fetch, não agenda temporizadores e depende só do sinal da interface da plataforma. Veja Privacidade.

Posso deixar com a cara do meu app?​

Sim. Sobrescreva os tokens --od-* no CSS na web, ou passe um theme no nativo. Veja Temas. Para substituir uma peça por completo, use slots.

Posso desligar o deslizar?​

Sim: dismissible={false} para todas as peças, ou as opções snackbar, banner e indicator para uma só. Toda peça também tem uma alternativa por botão ou tecla. Veja Dispensar.

O banner empurra o meu conteúdo para baixo?​

Por padrão, sim: o banner fica no fluxo. Use banner={{ overlay: true }} para flutuar sobre o conteúdo. Na web, --od-banner-height informa a altura dele enquanto aparece.

Funciona com Next.js, Expo ou React Native Web?​

Next.js: sim, a partir de um componente cliente (notas). Expo e React Native puro: sim, passando o NetInfo (início rápido para nativo). O pacote web renderiza elementos DOM e não depende de react-native-web; o pacote nativo mira somente o React Native.

Por que preciso passar o NetInfo eu mesmo?​

Para que o Metro nunca trate @react-native-community/netinfo como uma dependência obrigatória que você não instalou. Sem ele, só a sonda decide.

Funciona em web worker, Node ou testes?​

O core não tem imports de DOM nem de React Native e aceita fetch, now e temporizadores injetáveis, que é como os próprios testes dele rodam. Os pacotes de interface precisam de um renderizador React.

O texto em português e espanhol foi revisado por falantes nativos?​

Os textos incluídos seguem as notas de design para o português do Brasil e o espanhol internacional neutro. As traduções da documentação ainda precisam de revisão por falantes nativos. Correções são bem-vindas.

Onde está o código-fonte?​

No GitHub. Os pacotes têm licença MIT.