Skip to content

Commit b906b01

Browse files
filipepachecohelenapaixaofagundesjgluccas-spechtMatheusDubin
authored andcommitted
Release 0.0.1 (SOS-RS#135)
* [fix] Config readme * wip: loading * Delete yarn.lock * refact: created shelter list view component in home page * Fix: mobile UI has broken for mobile devices (SOS-RS#22) *Fix: mobile UI has broken for mobile devices * fix: remove chip as fixed as no wrap property * chore: add shelter card clickable * chore: remove Fragment component * build: add set sm as max mobile dimension sm: 425px * style: add responsive layout * refactor: filter page * fix: priority * fix: filter parameters * fix: fixed volunteer supply that had been fulfilled displaying on shelter page * fix: improve readability * feat: hidden filter button if filter is empty * feat: cache in axios request * fix: cache search params * feat: cache clean on searchs * wip: donation tags * fix: clean search params * Update README.md [fix] Retirando a seção Funcionalidades e Backlog * fix: donation tags / componentized the urgent supplies section * fix: removed empty shelter tags empty row * feat: full edit shelter and improved interface of pet friendly in shelter page * refact: add live link and tech stack to readme * Fix/develop bugs (SOS-RS#90) * fix: cache bug (invalite cache on create/update operation) * feat: added update many shelter supplies and admin rule * Add license (SOS-RS#81) Closes SOS-RS#65. * fix: app port (SOS-RS#80) * docs: added shadcn/ui reference * fix for volunteer shelter title (SOS-RS#95) * treat contact link as a proper link * simplified href * docs: add discord link on readme * Normalizes search string in supply filter so it ignores accents (SOS-RS#125) * normalized search string to ignore accents * revert removed button * add a copy to clipboard button to PIX and contact info (SOS-RS#124) * add a copy to clipboard button to PIX and contact info * use && operator instead of ternary * Substitui onClick e useNavigate por <Link> para melhorar acessibilidade (SOS-RS#128) * replaced navigate in favour of html link and added card hover * fixed lint warnings * fix: change shelter title style (SOS-RS#106) Prevents badge misalignment on very large titles * Add new feature and creating LoadingSkeleton (SOS-RS#115) * Add new feature and creating LoadingSkeleton --------- Co-authored-by: helenapaixao <[email protected]> Co-authored-by: José Fagundes <[email protected]> Co-authored-by: Luccas Specht <[email protected]> Co-authored-by: MatheusDubin <[email protected]> Co-authored-by: danmqs <[email protected]> Co-authored-by: Giovanni Bassi <[email protected]> Co-authored-by: Felipe Monteiro <[email protected]> Co-authored-by: André Ferraz <[email protected]> Co-authored-by: Sombrio <[email protected]> Co-authored-by: Daniel Marques <[email protected]> Co-authored-by: Matheus Dubin Da Silveira <[email protected]> Co-authored-by: Miguel Dalberto <[email protected]> Co-authored-by: Pablo A. Maximo <[email protected]> Co-authored-by: Marcos Nascimento <[email protected]>
1 parent 1d138ef commit b906b01

File tree

6 files changed

+91
-29
lines changed

6 files changed

+91
-29
lines changed

index.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,22 @@
3737
<meta property="og:url" content="https://sos-rs.com" />
3838
<meta property="og:type" content="website" />
3939

40+
<<<<<<< HEAD
4041
<meta name="twitter:card" content="summary_large_image" />
4142
<meta name="twitter:title" content="SOS - Rio Grande do Sul" />
4243
<meta
4344
name="twitter:description"
4445
content="Encontre abrigos e recursos para ajudar durante enchentes no Rio Grande do Sul. O SOS Rio Grande do Sul oferece informações sobre locais de abrigo, doações e suporte para vítimas de enchentes."
4546
/>
4647
<meta name="twitter:image" content="https://sos-rs.com/sos.png" />
48+
=======
49+
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
50+
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
51+
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
52+
<link rel="icon" type="image/x-icon" href="/favicon.ico">
53+
<link rel="manifest" href="/site.webmanifest">
54+
<link rel="canonical" href="https://sos-rs.com/" />
55+
>>>>>>> 4e0d9c0 (Release 0.0.1 (#135))
4756

4857
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
4958
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />

src/components/CardAboutShelter/components/InfoRow/InfoRow.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { IInfoRowProps } from './types';
44

55
const InfoRow = React.forwardRef<HTMLDivElement, IInfoRowProps>(
66
(props, ref) => {
7+
<<<<<<< HEAD
78
const {
89
icon,
910
label,
@@ -12,13 +13,20 @@ const InfoRow = React.forwardRef<HTMLDivElement, IInfoRowProps>(
1213
className = '',
1314
...rest
1415
} = props;
16+
=======
17+
const { icon, label, value, clipboardButton = false, className = '', ...rest } = props;
18+
>>>>>>> 4e0d9c0 (Release 0.0.1 (#135))
1519
const isLink = value?.startsWith('http');
1620
const ValueComp = !value ? (
1721
<Fragment />
1822
) : isLink ? (
23+
<<<<<<< HEAD
1924
<a
2025
href={value}
2126
target="_blank"
27+
=======
28+
<a href={value} target='_blank'
29+
>>>>>>> 4e0d9c0 (Release 0.0.1 (#135))
2230
className="text-blue-500 break-all cursor-pointer hover:underline"
2331
>
2432
{value}
@@ -55,6 +63,10 @@ const InfoRow = React.forwardRef<HTMLDivElement, IInfoRowProps>(
5563
</div>
5664
)}
5765
</span>
66+
<<<<<<< HEAD
67+
=======
68+
69+
>>>>>>> 4e0d9c0 (Release 0.0.1 (#135))
5870
</div>
5971
</div>
6072
);

src/pages/EditShelterSupply/EditShelterSupply.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const EditShelterSupply = () => {
3636
if (v) {
3737
setFilteredSupplies(
3838
supplies.filter((s) =>
39+
<<<<<<< HEAD
3940
s.name
4041
.toLowerCase()
4142
.normalize('NFD')
@@ -46,6 +47,10 @@ const EditShelterSupply = () => {
4647
.normalize('NFD')
4748
.replace(/[\u0300-\u036f]/g, '')
4849
)
50+
=======
51+
s.name.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '')
52+
.includes(v.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, ''))
53+
>>>>>>> 4e0d9c0 (Release 0.0.1 (#135))
4954
)
5055
);
5156
} else setFilteredSupplies(supplies);

src/pages/Home/Home.tsx

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import { useCallback, useMemo, useState, useEffect } from 'react';
2-
import { useNavigate, useSearchParams } from 'react-router-dom';
3-
import { RotateCw, PlusIcon } from 'lucide-react';
1+
import { useCallback, useEffect, useMemo, useState } from 'react';
2+
import { useSearchParams } from 'react-router-dom';
3+
import { RotateCw } from 'lucide-react';
44
import qs from 'qs';
55

66
import { BurgerMenu, Footer, Header } from '@/components';
77
import { useShelters, useThrottle } from '@/hooks';
88
import { Button } from '@/components/ui/button';
9-
import { Filter } from './components/Filter';
10-
import { ShelterListView } from './components/ShelterListView';
9+
import { Filter, ShelterListView } from './components';
1110
import { IFilterFormProps } from './components/Filter/types';
1211

12+
1313
const initialFilterData: IFilterFormProps = {
1414
search: '',
1515
priority: null,
@@ -42,8 +42,6 @@ const Home = () => {
4242
[filterData]
4343
);
4444

45-
const navigate = useNavigate();
46-
4745
const clearSearch = useCallback(() => {
4846
setSearch('');
4947
setFilterData(initialFilterData);
@@ -131,7 +129,6 @@ const Home = () => {
131129
window.open('https://forms.gle/2S7L2gR529Dc8P3T9', '_blank')
132130
}
133131
>
134-
<PlusIcon className="h-5 w-5 stroke-white" />
135132
Cadastrar abrigo
136133
</Button>
137134
<Button
@@ -146,7 +143,7 @@ const Home = () => {
146143
</div >
147144
}
148145
/>
149-
< ShelterListView
146+
<ShelterListView
150147
loading={loading}
151148
count={shelters.count}
152149
data={shelters.results}
@@ -172,7 +169,6 @@ const Home = () => {
172169
},
173170
});
174171
}}
175-
onSelectShelter={(s) => navigate(`/abrigo/${s.id}`)}
176172
hasMoreItems={hasMore}
177173
onOpenModal={() => setOpenModal(true)}
178174
onClearSearch={clearSearch}

src/pages/Home/components/ShelterListItem/ShelterListItem.tsx

Lines changed: 57 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
import { useCallback, useMemo } from 'react';
22
import { format } from 'date-fns';
33
<<<<<<< HEAD
4+
<<<<<<< HEAD
45
import { Link } from 'react-router-dom';
56
=======
67
import { useNavigate } from 'react-router-dom';
78
>>>>>>> 3d3f437 (merge: develop -> master (#91))
9+
=======
10+
import { Link } from 'react-router-dom';
11+
>>>>>>> 4e0d9c0 (Release 0.0.1 (#135))
812
import { ChevronRight } from 'lucide-react';
913

1014
import {
@@ -24,6 +28,7 @@ import { IUseSheltersDataSupplyData } from '@/hooks/useShelters/types';
2428
import { ShelterSupplyCategoryRow } from '../ShelterSupplyCategoryRow';
2529

2630
const ShelterListItem = (props: IShelterListItemProps) => {
31+
<<<<<<< HEAD
2732
<<<<<<< HEAD
2833
const { data } = props;
2934
const { capacity, shelteredPeople } = data;
@@ -32,6 +37,10 @@ const ShelterListItem = (props: IShelterListItemProps) => {
3237
const { capacity, shelteredPeople } = data;
3338
const navigate = useNavigate();
3439
>>>>>>> 3d3f437 (merge: develop -> master (#91))
40+
=======
41+
const { data } = props;
42+
const { capacity, shelteredPeople } = data;
43+
>>>>>>> 4e0d9c0 (Release 0.0.1 (#135))
3544
const { availability, className: availabilityClassName } =
3645
useMemo<IShelterAvailabilityProps>(
3746
() => getAvailabilityProps(capacity, shelteredPeople),
@@ -102,25 +111,52 @@ const ShelterListItem = (props: IShelterListItemProps) => {
102111
</Link>
103112
=======
104113
return (
105-
<div className="flex flex-col p-4 w-full border-2 border-border rounded-md gap-1 relative">
106-
<Button size="sm" variant="ghost" className="absolute top-4 right-4">
107-
<ChevronRight
108-
className="h-5 w-5"
109-
onClick={() => navigate(`/abrigo/${data.id}`)}
110-
/>
111-
</Button>
112-
<div
113-
className="flex items-center gap-1"
114-
onClick={() => navigate(`/abrigo/${data.id}`)}
115-
>
116-
<h3
117-
className="font-semibold text-lg hover:cursor-pointer hover:text-slate-500"
118-
onClick={onClick}
119-
>
120-
{data.name}
121-
</h3>
122-
{data.verified && <VerifiedBadge />}
114+
<Link to={`/abrigo/${data.id}`} target="_blank">
115+
<div className="flex flex-col p-4 w-full border-2 border-border rounded-md gap-1 relative hover:bg-accent">
116+
<div className="inline-flex justify-between">
117+
<div className="flex flex-row items-center gap-1">
118+
<h3 className="font-semibold text-lg h-full hover:cursor-pointer hover:text-slate-500">
119+
{data.name}
120+
</h3>
121+
{data.verified && (
122+
<div className="h-full pt-1">
123+
<VerifiedBadge />
124+
</div>
125+
)}
126+
</div>
127+
<Button size="sm" variant="ghost">
128+
<ChevronRight className="h-5 w-5" />
129+
</Button>
130+
</div>
131+
<h6 className={cn('font-semibold text-md', availabilityClassName)}>
132+
{availability}
133+
</h6>
134+
<h6 className="text-muted-foreground text-sm md:text-lg font-medium">
135+
{data.address}
136+
</h6>
137+
{data.shelterSupplies.length > 0 && (
138+
<>
139+
<ShelterSupplyCategoryRow
140+
title="Necessita voluntários:"
141+
tags={tags.NeedVolunteers.map(getChipProps)}
142+
/>
143+
<ShelterSupplyCategoryRow
144+
title="Necessita urgente doações de:"
145+
tags={tags.NeedDonations.map(getChipProps)}
146+
/>
147+
<ShelterSupplyCategoryRow
148+
title="Sobrando para doações:"
149+
tags={tags.RemainingSupplies.map(getChipProps)}
150+
/>
151+
</>
152+
)}
153+
{data.updatedAt && (
154+
<small className="text-sm md:text-md font-light text-muted-foreground mt-2">
155+
Atualizado em {format(data.updatedAt, 'dd/MM/yyyy HH:mm')}
156+
</small>
157+
)}
123158
</div>
159+
<<<<<<< HEAD
124160
<h6 className={cn('font-semibold text-md', availabilityClassName)}>
125161
{availability}
126162
</h6>
@@ -150,6 +186,9 @@ const ShelterListItem = (props: IShelterListItemProps) => {
150186
)}
151187
</div>
152188
>>>>>>> 3d3f437 (merge: develop -> master (#91))
189+
=======
190+
</Link>
191+
>>>>>>> 4e0d9c0 (Release 0.0.1 (#135))
153192
);
154193
};
155194

src/pages/Home/components/ShelterListView/ShelterListView.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,14 @@ const ShelterListView = React.forwardRef<HTMLDivElement, IShelterListViewProps>(
9292
{loading ? (
9393
<LoadingSkeleton amountItems={4} />
9494

95+
9596
) : data.length === 0 ? (
9697
<NoFoundSearch />
9798
) : (
9899
<Fragment>
99100
{data.map((s, idx) => (
100-
<ShelterListItem key={idx} data={s} />
101101

102+
<ShelterListItem key={idx} data={s} />
102103
))}
103104
{hasMoreItems ? (
104105
<Button

0 commit comments

Comments
 (0)