Carregando…
Carregando…
Carregando…Mantém uma `<ul>` grudada no fim enquanto chega conteúdo novo (chat, logs); solta quando o usuário rola pra cima e re-gruda perto do fim.
Nível, estado de carga e tempo estimado de bateria via Battery Status API. `isSupported` false onde a API não existe.
Parear e conectar a um dispositivo GATT via Web Bluetooth (Chromium, contexto seguro). Tipos vêm de `@types/web-bluetooth`.
Gerencia um cookie único serializado como JSON: `[valor, set, remove]`, com opções de `expires`/`maxAge`/`path`/`domain`/`secure`/`sameSite`.
Copia texto pra área de transferência e expõe uma flag `isCopied` que volta a `false` sozinha após 2s.
Contador numérico com `min`/`max` opcionais e ações `increment`/`decrement`/`set`/`reset`. Lança erro se o valor inicial já estiver fora do range.
Retorna uma cópia de um valor que só atualiza depois de `delay` ms sem novas mudanças.
Transforma um elemento por ref numa área de drop de arquivos: `files`, `isOverDropZone`, filtro por tipo MIME e callbacks `onDrop`/`onEnter`/`onLeave`/`onOver`.
Devolve uma função com identidade estável que sempre executa a versão mais recente do callback — evita re-render em cadeia por dependência de função.
`addEventListener` tipado pra window, document, um elemento por ref ou um MediaQueryList — sempre chamando o handler mais recente, com cleanup automático.
`true` só na primeira visita do usuário ao site (marcado via `localStorage`), `false` em todas as visitas seguintes.
Posição atual e watch contínuo: latitude, longitude, precisão, altitude, velocidade. Trata API indisponível e permissão negada.
Histórico de undo/redo pra valores numéricos, com capacidade máxima configurável (`capacity`, default 10). Devolve o snapshot pro chamador aplicar.
`{ value, onChange }` prontos pra espalhar num `<input>` controlado — atalho pra evitar boilerplate de `useState` + handler.
`true` quando o elemento da ref entra no viewport, via IntersectionObserver, com `threshold` e `rootMargin` opcionais.
`useLayoutEffect` no client, `useEffect` no server — evita o warning de SSR do React.
Registra combinações de teclas (com Ctrl/Meta/Shift/Alt) e dispara um handler por combinação. Ignora INPUT/TEXTAREA/SELECT por padrão.
Dispara um callback quando uma sequência específica de teclas é digitada; retorna a sequência parcial atual. Match por `code`, `key` ou ambos.
Estado sincronizado com `localStorage` (serialização JSON), com sincronia entre hooks/abas via evento custom `local-storage` e API igual à do `useState`.
Estado reativo de `window.location`/`history` — reage a navegação `popstate` e também a `pushState`/`replaceState` via monkey-patch com `CustomEvent`.
Callback-ref + `{ width, height }` do border-box do elemento, mantidos em dia por um ResizeObserver. Uso: `const [ref, { width }] = useMeasure()`.
Amostra `performance.memory` num intervalo configurável (heap usado / total / limite). Só existe no Chromium — `isSupported` avisa.
Posição do mouse na página e relativa a um container (o ref devolvido, ou um `containerRef` passado). SSR-safe via `useIsomorphicLayoutEffect`.
`online` mais `effectiveType`, `downlink`, `rtt`, `saveData` quando o browser expõe `navigator.connection`. Via `useSyncExternalStore` (client-only).
Chama um handler quando o clique, toque ou foco acontece **fora** do(s) elemento(s) ref. Aceita uma ref ou um array.
Booleano reativo pro estado de conexão, ouvindo os eventos `online`/`offline`. Versão leve do `useNetworkStatus`.
Devolve uma função estável que força o componente a re-renderizar, sem precisar de um state dummy manual.
Estado sincronizado com `sessionStorage` (serialização JSON), com sincronia entre hooks via evento custom `session-storage` e API igual à do `useState`.
Wrapper mínimo da Web Speech API: `speak(options)`, `cancel()`, lista de vozes e flag `speaking`. SSR-safe.
Máquina de passos de 1 até `maxStep`, com `goToNextStep`/`goToPrevStep`/`setStep`/`reset` e flags `canGoToNextStep`/`canGoToPrevStep`. Útil pra wizards e onboarding.
Cronômetro formatado `dd:hh:mm:ss` com `play`/`pause`/`togglePause`/`reset` e total de segundos decorridos.
Devolve um valor throttled: só atualiza no máximo 1x a cada `limit` ms, mesmo que `value` mude com mais frequência.
Controle completo de um `<video>` por ref: play/pause, volume, seek, mute, fullscreen — com estado reativo sincronizado pelos eventos do elemento.
`{ x, y }` do scroll da janela em estado reativo, com throttle configurável (`throttleMs`, default 100). Começa em 0 no server.
Largura e altura da janela, com debounce no `resize` e guarda contra mismatch de hidratação.