npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@coinsamba/react-tiny-hooks

v1.0.0

Published

Coleção de hooks

Downloads

47

Readme

react-tiny-hooks

Coleção de hooks

useLocalStorage

Este hook permite armazenar valores em localStorage de forma reativa. Ele mantém o estado atualizado com o valor armazenado em localStorage e sincroniza automaticamente com outras instâncias do mesmo hook no mesmo domínio.

Parâmetros

  • key (string): A chave utilizada para armazenar o valor em localStorage.
  • initialValue (qualquer tipo): O valor inicial a ser utilizado caso não haja um valor armazenado para a chave especificada.

Retorno

  • [storedValue, setValue]: Um array contendo o valor atual e uma função para atualizar o valor.

Exemplo

import { useState, useEffect } from "react";
import { useLocalStorage } from "@coinsamba/react-tiny-hooks";

export default function MyComponent() {
  const [value, setValue] = useLocalStorage("myKey", "initialValue");

  useEffect(() => {
    console.log("Value:", value);
  }, [value]);

  const handleClick = () => {
    setValue("new value");
  };

  return (
    <div>
      <button onClick={handleClick}>Set Value</button>
    </div>
  );
}

useWindowSize

Este hook permite obter a dimensão atual da janela do navegador. Ele atualiza o estado sempre que a janela é redimensionada.

Retorno

  • windowSize (objeto): Um objeto contendo as propriedades width e height, representando a largura e altura da janela, respectivamente.

Exemplo

import React from "react";
import { useWindowSize } from "@coinsamba/react-tiny-hooks";

const MyComponent = () => {
  const windowSize = useWindowSize();

  return (
    <div>
      <p>Width: {windowSize.width}</p>
      <p>Height: {windowSize.height}</p>
    </div>
  );
};

export default MyComponent;

useInterval

Este hook permite executar uma função de callback repetidamente em um intervalo de tempo especificado.

Parâmetros

  • callback (função): A função de callback a ser executada em cada intervalo.
  • delay (number | null): O intervalo de tempo em milissegundos entre as chamadas da função de callback. Se for null, o intervalo é interrompido.

Retorno

  • Nenhum.

Exemplo

import React, { useState } from "react";
import { useInterval } from "@coinsamba/react-tiny-hooks";

const CounterComponent = () => {
  const [count, setCount] = useState(0);

  useInterval(() => {
    setCount((prevCount) => prevCount + 1);
  }, 1000);

  return <p>{count}</p>;
};

export default CounterComponent;

useIsClient

Este hook é utilizado no Next.js para verificar se o código está sendo executado no cliente (navegador) ou no servidor.

Retorno

  • isClient (boolean): Um valor booleano que indica se o código está sendo executado no cliente (true) ou no servidor (false).

Exemplo

import React from "react";
import { useIsClient } from "@coinsamba/react-tiny-hooks";

const IsClientComponent = () => {
  const isClient = useIsClient();

  return <p>{isClient ? "Client" : "Server"}</p>;
};

export default IsClientComponent;

useDebounce

Este hook é utilizado para adiar a execução de uma função de callback até que tenha ocorrido um intervalo de tempo especificado após a última invocação da função.

Parâmetros

  • effect (função): A função de callback a ser adiada.
  • delay (number): O intervalo de tempo em milissegundos a aguardar antes de executar a função de callback.
  • deps (array): Uma matriz de dependências opcionais que determina quando a função de callback é atualizada.

Retorno

  • Nenhum.

Exemplo

import React, { useState } from "react";
import { useDebounce } from "@coinsamba/react-tiny-hooks";

const SearchComponent = () => {
  const [searchTerm, setSearchTerm] = useState("");
  
  useDebounce(() => {
    // Lógica de busca ou chamada à API aqui
    console.log("Search term:", searchTerm);
  }, 500, [searchTerm]);

  const handleInputChange = (event) => {
    setSearchTerm(event.target.value);
  };

  return (
    <div>
      <input type="text" value={searchTerm} onChange={handleInputChange} />
    </div>
  );
};

export default SearchComponent;

useDeviceDetect

Este hook é utilizado para detectar o tipo de dispositivo em que o aplicativo está sendo executado, como mobile, desktop, Android, iOS, entre outros.

Retorno

  • device (object): Um objeto contendo as seguintes propriedades:
    • isMobile (boolean): Indica se o dispositivo é móvel.
    • isDesktop (boolean): Indica se o dispositivo é desktop.
    • isAndroid (boolean): Indica se o dispositivo é Android.
    • isIos (boolean): Indica se o dispositivo é iOS.
    • isSSR (boolean): Indica se o código está sendo executado no servidor (Server-Side Rendering).

Exemplo

import React from "react";
import { useDeviceDetect } from "@coinsamba/react-tiny-hooks";

const DeviceDetectComponent = () => {
  const { isMobile, isDesktop, isAndroid, isIos, isSSR } = useDeviceDetect();

  return (
    <div>
      <p>Mobile: {isMobile ? "Yes" : "No"}</p>
      <p>Desktop: {isDesktop ? "Yes" : "No"}</p>
      <p>Android: {isAndroid ? "Yes" : "No"}</p>
      <p>iOS: {isIos ? "Yes" : "No"}</p>
      <p>SSR: {isSSR ? "Yes" : "No"}</p>
    </div>
  );
};

export default DeviceDetectComponent;

useToggle

Este hook é utilizado para criar um estado booleano e uma função para alternar o valor desse estado entre true e false.

Parâmetros

  • initialState (boolean) (opcional): O valor inicial do estado booleano. O padrão é false.

Retorno

Um array contendo:

  • state (boolean): O estado booleano atual.
  • toggle (function): Uma função para alternar o valor do estado booleano.

Exemplo

import React from "react";
import { useToggle } from "@coinsamba/react-tiny-hooks";

const ToggleComponent = () => {
  const [isToggled, toggle] = useToggle(false);

  return (
    <div>
      <p>Toggle: {isToggled ? "On" : "Off"}</p>
      <button onClick={toggle}>Toggle</button>
    </div>
  );
};

export default ToggleComponent;

useOnlineStatus

Este hook é utilizado para obter o status de conectividade online/offline do navegador.

Retorno

  • Um valor booleano indicando o status de conectividade online (true) ou offline (false).

Exemplo

import React from "react";
import { useOnlineStatus } from "@coinsamba/react-tiny-hooks";

const OnlineStatusComponent = () => {
  const isOnline = useOnlineStatus();

  return (
    <div>
      <p>Status: {isOnline ? "Online" : "Offline"}</p>
    </div>
  );
};

export default OnlineStatusComponent;