Skip to content

Commit 8bc5f61

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into develop
2 parents 9a30b5c + 582343d commit 8bc5f61

File tree

21 files changed

+423
-195
lines changed

21 files changed

+423
-195
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: CI
22

33
on:
44
push:
5-
branches: [master]
5+
branches: [main]
66

77
jobs:
88
build:

CONTRIBUTING.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# Contribuindo
2+
3+
Você pode contribuir com o projeto de diversas formas, implementando uma
4+
funcionalidade nova, corrigindo um bug, procurando bugs, revisando pull
5+
requests, entre outras.
6+
Para se inteirar do projeto, entre no
7+
[Discord](https://discord.gg/vjZS6BQXvM) e participe das discussões.
8+
9+
## 🤝 Contribuindo com atividades que não são de código
10+
11+
O projeto precisa de ajuda em diversas frentes diferentes como: QA, produto,
12+
design e gestão. Entre no servidor do Discord onde há canais específicos para
13+
essas atividades.
14+
15+
Se você encontrou um bug, vá nas
16+
[issues](https://github.com/SOS-RS/frontend/issues)
17+
do projeto e reporte-o lá. Verifique antes se já não existe um bug aberto para o
18+
problema que quer relatar, usando a busca. O mesmo vale para novas
19+
funcionalidades.
20+
21+
O restante deste documento focará nas contribuições de código.
22+
23+
## ✅ Escolhendo qual será sua contribuição de código
24+
25+
Verifique no [projeto do Github](https://github.com/orgs/SOS-RS/projects/1)
26+
quais funcionalidades ainda não foram implementadas e já estão prontas para
27+
serem desenvolvidas, elas estarão na coluna "Disponível pra dev". Lá há itens de
28+
backend e frontend, então atente-se para qual você gostaria de participar.
29+
30+
Após escolher o item que quer trabalhar, faça um comentário no issue informando
31+
que quer contribuir para sua entrega. Uma pessoa que administra o repositório
32+
marcará você como a pessoa responsável por aquele issue, e marcará o item como
33+
"Em desenvolvimento".
34+
35+
A partir daí você já pode trabalhar no item que escolheu.
36+
37+
Você também pode mandar a contribuição diretamente sem avisar, mas corre o
38+
risco de alguém solicitar para trabalhar no item e entregá-lo junto ou antes de
39+
você, desperdiçando assim esforços. Somente faça isso se a correção for bem rápida e pontual para
40+
evitar o desperdício.
41+
42+
⚠️ **Importante**: Itens de alta prioridade precisam ser entregues o mais rápido possível,
43+
idealmente em até dois dias. Verifique se tem tempo livre suficiente para se
44+
dedicar a um item de urgência, a fim de evitar segurar o item por tempo demais
45+
de forma desnecessária.
46+
47+
## 🚀 Configuração Inicial Local
48+
49+
1. Faça um fork do repositório para o seu usuário (uma boa ideia é usar um nome mais descritivo do que `frontend`, como `sos-rs-frontend`).
50+
2. Clone o repositório (troque `<seuusuario>` na url abaixo pelo seu usuário):
51+
52+
```bash
53+
git clone https://github.com/<seuusuario>/sos-rs-frontend.git
54+
```
55+
56+
3. Instale as dependências:
57+
58+
```bash
59+
npm install
60+
```
61+
62+
4. Inicie o servidor:
63+
64+
```bash
65+
npm run dev
66+
```
67+
68+
O app estará disponível em <http://localhost:5173>.
69+
70+
5. Inicie o servidor de backend. Veja as instruções no seu
71+
[documento de contribuição](https://github.com/SOS-RS/backend/blob/develop/CONTRIBUTING.md).
72+
73+
## 💻 Codificando e enviando
74+
75+
1. Faça suas alterações.
76+
2. Rode o lint com `npm run lint`.
77+
3. Crie um branch com o git `git checkout -b nomedobranch`.
78+
4. Faça um commit com `git commit`.
79+
5. Faça um push para o seu repositório com `git push`.
80+
6. [Sincronize seu repositório](#-sincronizando).
81+
7. [Abra um pull request](https://docs.github.com/pt/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).
82+
Não deixe de informar, no seu pull request, qual a issue que está fechando.
83+
Idealmente coloque um comentário no PR que já fechará a issue, como
84+
`fixes #xxxx` ou `closes #xxxx` (onde `xxxx` é o número do issue). Veja
85+
[como isso funciona](https://docs.github.com/pt/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests).
86+
8. Acompanhe a revisão do PR. Algumas verificações automáticas serão feitas (o
87+
Github Actions rodará o build do Vite, por exemplo). Se uma delas falhar, corrija-a, a
88+
revisão humana só começa quando estas checagem estão passando. Após abrir o
89+
PR uma pessoa que administra o projeto pode pedir revisões e alterações.
90+
Busque respondê-las o mais rápido possível para que o PR possa ser integrado.
91+
92+
## 🔄 Sincronizando
93+
94+
Você vai precisar, de tempos em tempos, sincronizar a branch `develop` do
95+
seu repositório. Você pode usar o botão `Sync fork` do Github
96+
(veja [os docs](https://docs.github.com/pt/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork)).
97+
Ou você pode fazer manualmente, o que te permite fazer a sincronização sem depender do Github:
98+
99+
1. Antes de mais nada, se estiver no meio de uma contribuição, verifique que já commitou
100+
tudo que tinha pra commitar, e então faça checkout do branch `develop`:
101+
102+
```bash
103+
git checkout develop
104+
```
105+
106+
2. Adicione o repositório oficial como remoto com nome `upstream` (só necessário na primeira vez):
107+
108+
```bash
109+
git remote add upstream https://github.com/SOS-RS/frontend.git
110+
```
111+
112+
3. Faça pull do branch `develop`:
113+
114+
```bash
115+
git pull upstream develop
116+
```
117+
118+
4. Se estiver no meio de uma contribuição, faça um rebase no branch `develop`
119+
(substitua `<seubranch>` pelo nome do seu branch):
120+
121+
```bash
122+
git checkout <seubranch>
123+
git rebase develop
124+
```
125+
126+
Após o rebase, é importante rodar novamente a aplicação e verificar se tudo
127+
continua funcionando.

README.md

Lines changed: 19 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
1-
# README
1+
# 🌊 Frontend para App de Ajuda em Enchentes 🌊
22

33
Este projeto é o frontend de um aplicativo destinado a auxiliar na organização e distribuição de suprimentos, além de coordenar voluntários durante os alagamentos no Rio Grande do Sul. A aplicação visa conectar pessoas afetadas pelas enchentes com recursos essenciais e voluntários dispostos a ajudar.
44

5+
O objetivo deste aplicativo é facilitar uma resposta rápida e eficiente em situações de emergência causadas por enchentes, promovendo a colaboração e o apoio mútuo entre a comunidade e organizações de ajuda.
6+
7+
Se você quiser discutir ideias, problemas ou contribuições, sinta-se à vontade para se juntar ao nosso servidor do
8+
Discord [aqui](https://discord.gg/vjZS6BQXvM).
9+
510
## Acesso à Aplicação
611

712
[SOS Rio Grande do Sul](https://sos-rs.com/)
8-
[Discord](https://discord.gg/eJTuannsd6)
913

10-
## Sobre o Projeto
14+
## 🤝 Contribuição
1115

12-
O objetivo deste aplicativo é facilitar uma resposta rápida e eficiente em situações de emergência causadas por enchentes, promovendo a colaboração e o apoio mútuo entre a comunidade e organizações de ajuda.
16+
Contribuições são muito bem-vindas! Se deseja ajudar, veja o
17+
[documento de contribuição](./CONTRIBUTING.md).
18+
19+
Agradecemos o seu interesse e apoio. Juntos, podemos fazer uma diferença significativa para as vítimas das enchentes no Rio Grande do Sul!
1320

1421
## Tecnologias Utilizadas
1522

@@ -20,36 +27,12 @@ Este frontend foi desenvolvido utilizando as seguintes tecnologias:
2027
- [**Tailwind CSS**](https://tailwindcss.com/docs/installation): Framework CSS baseado em classes utilitárias.
2128
- [**shadcn/ui**](https://ui.shadcn.com/docs): Coleção de componentes reutilizáveis, baseado em Tailwind.
2229

23-
Para executar o frontend do aplicativo em seu ambiente local, siga os passos abaixo:
24-
25-
1. Clone o repositório:
26-
```
27-
git clone https://github.com/SOS-RS/frontend
28-
```
29-
2. Entre no diretório do projeto:
30-
```
31-
cd frontend
32-
```
33-
3. Instale as dependências:
34-
```
35-
npm install
36-
```
37-
4. Inicie o servidor de desenvolvimento:
38-
```
39-
npm run dev
40-
```
41-
O app estará disponível em `http://localhost:5173`.
42-
43-
## Contribuindo
44-
45-
Contribuições são muito bem-vindas! Se você tem interesse em ajudar a melhorar o app, por favor:
46-
47-
1. Faça um fork do repositório.
48-
2. Crie uma branch para sua feature (`git checkout -b feature/MinhaFeature`).
49-
3. Faça seus commits (`git commit -m 'Adicionando uma nova feature'`).
50-
4. Faça push para a branch (`git push origin feature/MinhaFeature`).
51-
5. Abra um Pull Request.
52-
53-
---
30+
## Licença
5431

55-
Agradecemos o seu interesse e apoio. Juntos, podemos fazer uma diferença significativa para as vítimas das enchentes no Rio Grande do Sul!
32+
Este código está licenciado usando a
33+
[licença MIT](./LICENSE).
34+
35+
## Contribuidores
36+
37+
Os contribuidores são voluntários, e podem ser encontrados
38+
[na página de contribuidores](https://github.com/SOS-RS/frontend/graphs/contributors).

src/components/ui/badge-variants.tsx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { cva } from "class-variance-authority";
2+
3+
const badgeVariants = cva(
4+
"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
5+
{
6+
variants: {
7+
variant: {
8+
default:
9+
"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
10+
secondary:
11+
"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
12+
destructive:
13+
"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
14+
outline: "text-foreground",
15+
},
16+
},
17+
defaultVariants: {
18+
variant: "default",
19+
},
20+
}
21+
);
22+
23+
export { badgeVariants };

src/components/ui/badge.tsx

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,8 @@
1-
import * as React from "react"
2-
import { cva, type VariantProps } from "class-variance-authority"
1+
import * as React from "react";
2+
import { type VariantProps } from "class-variance-authority";
33

4-
import { cn } from "@/lib/utils"
5-
6-
const badgeVariants = cva(
7-
"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
8-
{
9-
variants: {
10-
variant: {
11-
default:
12-
"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
13-
secondary:
14-
"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
15-
destructive:
16-
"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
17-
outline: "text-foreground",
18-
},
19-
},
20-
defaultVariants: {
21-
variant: "default",
22-
},
23-
}
24-
)
4+
import { cn } from "@/lib/utils";
5+
import { badgeVariants } from "./badge-variants";
256

267
export interface BadgeProps
278
extends React.HTMLAttributes<HTMLDivElement>,
@@ -30,7 +11,7 @@ export interface BadgeProps
3011
function Badge({ className, variant, ...props }: BadgeProps) {
3112
return (
3213
<div className={cn(badgeVariants({ variant }), className)} {...props} />
33-
)
14+
);
3415
}
3516

36-
export { Badge, badgeVariants }
17+
export { Badge };

src/components/ui/button-variants.tsx

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { cva } from 'class-variance-authority';
2+
3+
const buttonVariants = cva(
4+
'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
5+
{
6+
variants: {
7+
variant: {
8+
default: 'bg-primary text-primary-foreground hover:bg-primary/90',
9+
destructive:
10+
'bg-destructive text-destructive-foreground hover:bg-destructive/90',
11+
outline:
12+
'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
13+
secondary:
14+
'bg-secondary text-secondary-foreground hover:bg-secondary/80',
15+
ghost: 'hover:bg-accent hover:text-accent-foreground',
16+
link: 'text-primary underline-offset-4 hover:underline',
17+
},
18+
size: {
19+
default: 'h-10 px-4 py-2',
20+
sm: 'h-9 rounded-md px-3',
21+
lg: 'h-11 rounded-md px-8',
22+
icon: 'h-10 w-10',
23+
},
24+
},
25+
defaultVariants: {
26+
variant: 'default',
27+
size: 'default',
28+
},
29+
}
30+
);
31+
32+
export { buttonVariants };

src/components/ui/button.tsx

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,10 @@
11
import * as React from 'react';
22
import { Slot } from '@radix-ui/react-slot';
3-
import { cva, type VariantProps } from 'class-variance-authority';
3+
import { type VariantProps } from 'class-variance-authority';
44

55
import { cn } from '@/lib/utils';
66
import { Loader } from 'lucide-react';
7-
8-
const buttonVariants = cva(
9-
'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
10-
{
11-
variants: {
12-
variant: {
13-
default: 'bg-primary text-primary-foreground hover:bg-primary/90',
14-
destructive:
15-
'bg-destructive text-destructive-foreground hover:bg-destructive/90',
16-
outline:
17-
'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
18-
secondary:
19-
'bg-secondary text-secondary-foreground hover:bg-secondary/80',
20-
ghost: 'hover:bg-accent hover:text-accent-foreground',
21-
link: 'text-primary underline-offset-4 hover:underline',
22-
},
23-
size: {
24-
default: 'h-10 px-4 py-2',
25-
sm: 'h-9 rounded-md px-3',
26-
lg: 'h-11 rounded-md px-8',
27-
icon: 'h-10 w-10',
28-
},
29-
},
30-
defaultVariants: {
31-
variant: 'default',
32-
size: 'default',
33-
},
34-
}
35-
);
7+
import { buttonVariants } from './button-variants';
368

379
export interface ButtonProps
3810
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
@@ -70,4 +42,4 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
7042
);
7143
Button.displayName = 'Button';
7244

73-
export { Button, buttonVariants };
45+
export { Button };
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { AccessLevel } from '@/service/sessions/types';
2+
3+
const MappedRoles: Record<AccessLevel, AccessLevel[]> = {
4+
Admin: ['Admin'],
5+
DistributionCenter: ['Admin', 'DistributionCenter'],
6+
Staff: ['Admin', 'Staff'],
7+
User: ['Admin', 'Staff', 'DistributionCenter', 'User'],
8+
};
9+
10+
export default MappedRoles;

src/hooks/useAuthRoles/useAuthRoles.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
import { useContext } from 'react';
22

33
import { SessionContext } from '@/contexts';
4+
import MappedRoles from '@/hooks/useAuthRoles/MappedRoles';
45
import { AccessLevel } from '@/service/sessions/types';
56

6-
const MappedRoles: Record<AccessLevel, AccessLevel[]> = {
7-
Admin: ['Admin'],
8-
DistributionCenter: ['Admin', 'DistributionCenter'],
9-
Staff: ['Admin', 'Staff'],
10-
User: ['Admin', 'Staff', 'DistributionCenter', 'User'],
11-
};
12-
137
const useAuthRoles = (...roles: AccessLevel[]) => {
148
const { session } = useContext(SessionContext);
159

src/hooks/useShelters/useShelters.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ const useShelters = (options: IUseShelterOptions = {}) => {
5353
if (!append) setLoading(false);
5454
});
5555
},
56-
[]
56+
[cache]
5757
);
5858

5959
useEffect(() => {

0 commit comments

Comments
 (0)