1
1
import { Fragment , useCallback , useContext , useMemo , useState } from 'react' ;
2
- import { RotateCw , CircleAlert , Search , Loader , ListFilter , LogOutIcon , Heart } from 'lucide-react' ;
2
+ import {
3
+ RotateCw ,
4
+ CircleAlert ,
5
+ Search ,
6
+ Loader ,
7
+ ListFilter ,
8
+ LogOutIcon ,
9
+ Heart ,
10
+ } from 'lucide-react' ;
3
11
4
12
import { Alert , Header , NoFoundSearch , ShelterListItem } from '@/components' ;
5
13
import { Input } from '@/components/ui/input' ;
@@ -32,7 +40,7 @@ const Home = () => {
32
40
perPage : shelters . perPage ,
33
41
} ;
34
42
35
- search ( {
43
+ search ( {
36
44
params : params ,
37
45
} ) ;
38
46
} ,
@@ -43,7 +51,7 @@ const Home = () => {
43
51
const clearSearch = ( ) => {
44
52
setSearchValue ( '' ) ;
45
53
resetSearch ( ) ;
46
- }
54
+ } ;
47
55
48
56
const hasMore = useMemo (
49
57
( ) => shelters . page * shelters . perPage < shelters . count ,
@@ -52,17 +60,17 @@ const Home = () => {
52
60
53
61
const closeModal = ( ) => {
54
62
setOpenModal ( false ) ;
55
- }
63
+ } ;
56
64
57
65
const handleSearch = ( values : IUseShelterSearchParams ) => {
58
66
setOpenModal ( false ) ;
59
67
setSearchValue ( values . search ?? '' ) ;
60
68
search ( {
61
69
params : {
62
- ...values
63
- }
70
+ ...values ,
71
+ } ,
64
72
} ) ;
65
- }
73
+ } ;
66
74
67
75
const handleFetchMore = useCallback ( ( ) => {
68
76
const params = {
@@ -72,15 +80,24 @@ const Home = () => {
72
80
search : searchValue ? searchValue : '' ,
73
81
} ;
74
82
75
- search ( {
76
- params : params ,
77
- } , true ) ;
78
-
83
+ search (
84
+ {
85
+ params : params ,
86
+ } ,
87
+ true
88
+ ) ;
79
89
} , [ search , searchValue , shelters . filters , shelters . page , shelters . perPage ] ) ;
80
90
81
91
return (
82
92
< div className = "flex flex-col h-screen items-center" >
83
- { isModalOpen && < Filter handleSearch = { handleSearch } isModalOpen = { isModalOpen } closeModal = { closeModal } filters = { shelters . filters } /> }
93
+ { isModalOpen && (
94
+ < Filter
95
+ handleSearch = { handleSearch }
96
+ isModalOpen = { isModalOpen }
97
+ closeModal = { closeModal }
98
+ filters = { shelters . filters }
99
+ />
100
+ ) }
84
101
< Header
85
102
title = "SOS Rio Grande do Sul"
86
103
endAdornment = {
@@ -141,17 +158,21 @@ const Home = () => {
141
158
</ div >
142
159
</ div >
143
160
< div className = "flex flex-row" >
144
- < Button variant = "ghost" size = "sm"
145
- className = "flex gap-2 items-center [&_svg]:stroke-blue-500"
146
- onClick = { ( ) => setOpenModal ( true ) } >
161
+ < Button
162
+ variant = "ghost"
163
+ size = "sm"
164
+ className = "flex gap-2 items-center [&_svg]:stroke-blue-500"
165
+ onClick = { ( ) => setOpenModal ( true ) }
166
+ >
147
167
< ListFilter className = "h-5 w-5" />
148
- < h1 className = "font-semibold text-[16px] text-blue-500" >
149
- Filtros
150
- </ h1 >
168
+ < h1 className = "font-semibold text-[16px] text-blue-500" > Filtros</ h1 >
151
169
</ Button >
152
- < Button variant = "ghost" size = "sm"
153
- className = "flex gap-2 items-center [&_svg]:stroke-blue-500"
154
- onClick = { ( ) => clearSearch ( ) } >
170
+ < Button
171
+ variant = "ghost"
172
+ size = "sm"
173
+ className = "flex gap-2 items-center [&_svg]:stroke-blue-500"
174
+ onClick = { ( ) => clearSearch ( ) }
175
+ >
155
176
< CircleAlert className = "h-5 w-5" />
156
177
< h1 className = "font-semibold text-[16px] text-blue-500" >
157
178
Limpar Filtros
0 commit comments