response
{
"owner": {
"name": "string",
"id": "string"
},
"farm": {
"name": "string",
"id": "string"
}
}
src/
|-- domain/
| |-- user/
| |-- task/
|-- infra/
| |-- api/
|-- data/
| |--
|-- presentation/
| |-- pages/
| |-- templates/
| |-- components/
| | |-- atoms/
| | |-- molecules/
| | |-- organisms/
Categoria | Ferramenta de DocumentaĆ§Ć£o |
---|---|
Componentes | Storybook |
Hooks e Classes | jsDocs |
UtilitƔrios | Markdown |
createHttp()
useHttpQuery()
useHttpMutation()
Composition
patterns Adapter
uncontrolled vs controlled
DOM vs virtual DOM
git-flow
IndexedDB
methods array
key do react
memorizar componente
//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" },
});
//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}
});
//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();
};
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>
);
}
const CookiesStorage = {
setItem: Cookies.set,
getItem: Cookies.get,
removeItem: Cookies.remove,
}
export const cookiesStorageFactory = () => useStorage(CookiesStorage)
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)}
/>