Padrões do projeto
Estrutura geral
- /src
- /assets
- /components
- /contexts
- /globals
- /guards
- /hooks
- /pages
- /services
- /shared
- /types
- /utils
- .env (.env, .env.production, .env.test)
1 - /src: Pasta contendo todos os arquivos de desenvolvimento.
1.1 - /assets: Todos os arquivos estáticos (imagens, fontes, etc).
1.2 - /components: Todos os componentes do projeto.
1.3 - /contexts: Contextos do projeto, utilizando Context API do React.
1.4 - /globals: Arquivos e componentes utilizados em todo o projeto.
1.5 - /guards: Componentes de Guard, utilizados para proteger acesso de algumas rotas com permissões (Logado, Admin, Empresa, Common).
1.6 - /hooks: Hooks customizados.
1.7 - /pages: Todas as páginas do projeto.
1.8 - /services: Arquivos contendo funções utilizadas para integração com o servidor.
1.9 - /shared: Arquivos com funções compartilhadas em várias partes do projeto.
1.10 - /types: Arquivos com tipos necessários em componentes e páginas.
1.11 - /utils: Arquivos com funções úteis e compartilhadas.
2 - Arquivos .env: Para manter informações constantes (links de API, Bucket do S3, etc) em um local fácil e seguro, utilizamos arquivos ".env".
.env.production: Informações utilizadas apenas em modo de produção
.env.test: Informações utilizadas apenas em modo de testes.
Caso queira utilizar o servidor de testes para testar o painel, descomente a seguinte linha:
VITE_API_URL='https://api-desconfieja.com.br:9773'
e comente a linha com mesmo nome que aponta para o servidor local: VITE_API_URL='https://localhost:8443'
Para a criação de páginas e componentes
- nome (Pasta com o nome do componente ou página)
- index.tsx (Arquivo com todo código TypeScript e lógica)
- styles.ts (Arquivo com todo código de estilização, feito com Styled-Components)
Cada página fica dentro de uma pasta com o nome de sua categoria (A página de listagem de depósitos vai dentro de "deposits", por exemplo).
Nomenclatura de páginas e componentes
Os nomes de componentes e páginas sempre iniciam com letra maiúscula:
function Componente() { ... }
Estrutura do componente
Ao criar um componente ou página, é recomendado manter a seguinte ordem:
function Componente() {
// Hooks
const hook = useHook();
// Estados
const [estado, setEstado] = useState();
const [estado2, setEstado2] = useState();
// Variáveis
const variavel = 3;
// Funções
function submit() { ... }
function handleChange() { ... }
// Effects
useEffect(() => { ... }, []);
// Render
return (
<Container>
{ ... }
</Container>
)
}