/react-utils

Primary LanguageTypeScript

[GET] listagens de temas e tipos (select)

response

{
    "owner": {
        "name": "string",
        "id": "string"
    },
    "farm": {
        "name": "string",
        "id": "string"
    }
}
  

šŸ“ arquitetura do projeto

src/
|-- domain/
|   |-- user/
|   |-- task/
|-- infra/
|   |-- api/
|-- data/
|   |--
|-- presentation/
|   |-- pages/
|   |-- templates/
|   |-- components/
|   |   |-- atoms/
|   |   |-- molecules/
|   |   |-- organisms/
 

šŸ“š DocumentaĆ§Ć£o

Categoria Ferramenta de DocumentaĆ§Ć£o
Componentes Storybook
Hooks e Classes jsDocs
UtilitƔrios Markdown

šŸ“„ SumĆ”rio

šŸŒ createHttp()

//uso do createHttp
import { apiClient } from "@/infra/api";
import { createHttp } from "@/infra/http-client"; // Importe a classe e a funĆ§Ć£o

// Crie uma instĆ¢ncia de HttpService configurada para um tipo especĆ­fico de resposta
const { http } = createHttp<MyResponseType>();

// FaƧa uma solicitaĆ§Ć£o GET para um endpoint
const response = await http.exec({
  endpoint: "/exemplo",
  method: "GET",
  params: { id: "1" },
});

šŸ“” useHttpQuery ()

//uso do useHttpQuery 
import { useHttpQuery  } from '@/hooks/index';
import { endpoint } from '@/endpoint';

//parametros
-`queryKey` (QueryKey): Uma chave Ćŗnica que identifica a consulta ou recurso a ser buscado. Isso pode ser Ćŗtil para cache ou invalidaĆ§Ć£o de cache.
-`options` (UseQueryOptions): OpƧƵes adicionais para personalizar o comportamento do `useQuery` da biblioteca `react-query`.
-`HttpService` (HttpProps): Um objeto de configuraĆ§Ć£o que define os detalhes da requisiĆ§Ć£o HTTP GET.
-`endpoint` (string): O endpoint da API ou URL de onde os dados devem ser buscados.
-`headers` (object): Um objeto contendo cabeƧalhos HTTP opcionais a serem enviados com a requisiĆ§Ć£o.
-Outras opƧƵes relevantes para uma requisiĆ§Ć£o HTTP GET, como `params`, `auth`, etc.

//exemplo de uso(obs: evitar usar string diretamente no endpoint)
const { data, isLoading, isError } = useHttpQuery <IResponsePost[]>({
    queryKey: ['getPosts'],
    HttpService: { endpoint: endpoint.getPosts },
    options: {enabled: true}
});

šŸ”„ useHttpMutation()

//uso do useHttpMutation
import { useHttpMutation } from '@/hooks/index';
import { endpoint } from '@/endpoint';

//parametros
- `options` (MutationOptions<TData, TError, TRequest>): Um objeto opcional contendo opƧƵes de configuraĆ§Ć£o para a mutaĆ§Ć£o. Essas opƧƵes sĆ£o as mesmas que as fornecidas pelo `useMutation` do `react-query`. Elas permitem personalizar o comportamento da mutaĆ§Ć£o, como manipulaĆ§Ć£o de erros, atualizaĆ§Ć£o de cache, etc.
- `HttpService` (HttpProps): Um objeto que representa os dados da solicitaĆ§Ć£o POST. Isso geralmente inclui o corpo da solicitaĆ§Ć£o, cabeƧalhos e outras informaƧƵes relevantes para a solicitaĆ§Ć£o.


//exemplo de uso(obs: evitar usar string diretamente no endpoint)
 const { isLoading, isError, isSuccess, mutate } = useHttpMutation<TData, TError, TRequest>({
    options: {
       // OpƧƵes de configuraĆ§Ć£o da mutaĆ§Ć£o (opcional),
    },
    HttpService: {
       endpoint: endpoint.createPost 
    },
  });

  const handleSubmit = () => {
    mutate();
  };

šŸ§© Composition

import { Input } from './Input';

function App() {
  return (
    <div>
      <Input.Text />
      <Input.Title>TĆ­tulo</Input.Title>
      <Input.Mask mask="99/99/9999" />
      <Input.Error>Error</Input.Error>
    </div>
  );
}

šŸ”Œpatterns Adapter

const CookiesStorage = {
	setItem: Cookies.set,
	getItem: Cookies.get,
	removeItem: Cookies.remove,
}
export const cookiesStorageFactory = () => useStorage(CookiesStorage)

šŸŽ® unControlled vs controlled

  const uncontrolled = useRef<HTMLInputElement>(null)
  const [controlled, setControlled] = useState('')

  <Input
    name="uncontrolled"
    ref={uncontrolled}
  />
  <Input
    name="controlled"
    value={controlled}
    onChange={e => setControlled(e.target.value)}
  />