Skip to content

Commit 97b7305

Browse files
filipepachecofagundesjg
authored andcommitted
refactor: changed order of shelters to updated at instead priority sum (SOS-RS#137) (SOS-RS#140)
Co-authored-by: José Geraldo D. F <[email protected]>
1 parent b906b01 commit 97b7305

File tree

2 files changed

+37
-80
lines changed

2 files changed

+37
-80
lines changed

src/hooks/useShelters/types.ts

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
1-
import { ShelterTagType } from '@/pages/Home/components/ShelterListItem/types';
1+
export enum ShelterCategory {
2+
Shelter = 'Shelter',
3+
DistributionCenter = 'DistributionCenter',
4+
}
5+
6+
export enum SupplyMeasure {
7+
Unit = 'Unit',
8+
Kg = 'Kg',
9+
Litters = 'Litters',
10+
Box = 'Box',
11+
Piece = 'Piece',
12+
}
213

3-
export interface IUseSheltersData {
14+
export interface IUseShelterData {
415
id: string;
516
name: string;
617
street?: string;
@@ -18,24 +29,29 @@ export interface IUseSheltersData {
1829
verified: boolean;
1930
latitude?: string | null;
2031
longitude?: string | null;
32+
shelterSupplies: IUseShelterDataSupply[];
33+
category: ShelterCategory;
34+
actived: boolean;
2135
createdAt: string;
2236
updatedAt?: string | null;
23-
shelterSupplies: IUseSheltersDataSupplyData[];
2437
}
2538

26-
export interface IUseSheltersDataSupplyData {
27-
supply: {
28-
name: string;
29-
supplyCategory: { name: string };
30-
};
39+
export interface IUseShelterDataSupply {
3140
priority: number;
32-
tags: ShelterTagType[];
33-
<<<<<<< HEAD
3441
quantity?: number | null;
35-
=======
36-
>>>>>>> 3d3f437 (merge: develop -> master (#91))
42+
supply: IUseShelterDataSupplyData;
3743
}
3844

39-
export interface IUseShelterOptions {
40-
cache?: boolean;
45+
export interface IUseShelterDataSupplyData {
46+
id: string;
47+
name: string;
48+
measure: SupplyMeasure;
49+
supplyCategory: IUseShelterDataSupplyCategory;
50+
createdAt: string;
51+
updatedAt?: string | null;
4152
}
53+
54+
export interface IUseShelterDataSupplyCategory {
55+
id: string;
56+
name: string;
57+
}
Lines changed: 7 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,11 @@
1-
import { useState, useCallback, useEffect } from 'react';
2-
import { AxiosRequestConfig } from 'axios';
1+
import { useFetch } from '../useFetch';
2+
import { PaginatedQueryPath } from '../usePaginatedQuery/paths';
3+
import { IUseShelterData } from './types';
34

4-
import { api } from '@/api';
5-
import { IServerResponse } from '@/types';
6-
import { IPaginatedResponse } from '../usePaginatedQuery/types';
7-
import { IUseShelterOptions, IUseSheltersData } from './types';
8-
9-
const useShelters = (options: IUseShelterOptions = {}) => {
10-
const { cache } = options;
11-
const [loading, setLoading] = useState<boolean>(false);
12-
const [data, setData] = useState<IPaginatedResponse<IUseSheltersData>>({
13-
count: 0,
14-
page: 1,
15-
perPage: 20,
16-
results: [],
17-
});
18-
19-
const refresh = useCallback(
20-
(config: AxiosRequestConfig<any> = {}, append: boolean = false) => {
21-
const { search, ...rest } = (config ?? {}).params ?? {};
22-
const headers = config.headers ?? {};
23-
if (cache) headers['x-app-cache'] = 'true';
24-
if (!append) setLoading(true);
25-
api
26-
.get<IServerResponse<any>>('/shelters', {
27-
...config,
28-
headers,
29-
params: {
30-
<<<<<<< HEAD
31-
orderBy: 'updatedAt',
32-
=======
33-
orderBy: 'prioritySum',
34-
>>>>>>> 3d3f437 (merge: develop -> master (#91))
35-
order: 'desc',
36-
search:
37-
search ?? new URLSearchParams(window.location.search).toString(),
38-
...rest,
39-
},
40-
})
41-
.then(({ data }) => {
42-
if (append) {
43-
setData((prev) => ({
44-
...prev,
45-
...data.data,
46-
results: [...prev.results, ...data.data.results],
47-
}));
48-
} else {
49-
setData((prev) => ({
50-
...prev,
51-
...data.data,
52-
results: [...data.data.results],
53-
}));
54-
}
55-
})
56-
.finally(() => {
57-
if (!append) setLoading(false);
58-
});
59-
},
60-
[]
5+
const useShelter = (shelterId: string) => {
6+
return useFetch<IUseShelterData>(
7+
`${PaginatedQueryPath.Shelters}/${shelterId}`
618
);
62-
63-
useEffect(() => {
64-
refresh();
65-
}, [refresh]);
66-
67-
return { data, loading, refresh };
689
};
6910

70-
export { useShelters };
11+
export { useShelter };

0 commit comments

Comments
 (0)