Skip to content
This repository was archived by the owner on Nov 2, 2021. It is now read-only.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 0d9b8e9

Browse files
committedOct 8, 2021
Feat: Shuffle order of volunteers at runtime
1 parent 07c215f commit 0d9b8e9

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed
 

‎src/components/Volunteers.js

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,23 @@ function Member({className, style, name, bio, link, image, socials = {}}) {
8888
function Volunteers() {
8989
const {data} = useSWR(`${VOLUNTEERS_DOMAIN}/data.json`, fetcher, {
9090
suspense: true,
91+
revalidateIfStale: false,
92+
revalidateOnFocus: false,
93+
revalidateOnReconnect: false,
9194
});
9295

9396
const dataAugemented = useMemo(() => [...(data || []), {}], [data]);
9497

9598
const transition = useTransition(dataAugemented, {
99+
keys: (item) => item?.name || 'last',
100+
sort: (a, b) =>
101+
Object.keys(a).length === 0
102+
? 1
103+
: Object.keys(b).length === 0
104+
? -1
105+
: Math.random() > 0.5
106+
? 1
107+
: -1,
96108
delay: 200,
97109
trail: 200 / dataAugemented.length,
98110
from: {opacity: 0, scale: 0.8},
@@ -126,16 +138,18 @@ function Volunteers() {
126138
</div>
127139
</div>
128140
<div className="members">
129-
{transition((style, item) =>
130-
Object.keys(item || {}).length > 0 ? (
131-
<Member {...item} {...{style}} />
132-
) : (
133-
<animated.div className="last" {...{style}}>
134-
<Member className={'first'} />
135-
<Member className={'second'} />
136-
<Member className={'third'} bio="And many more..." />
137-
</animated.div>
138-
)
141+
{transition(
142+
(style, item) =>
143+
item &&
144+
(Object.keys(item).length > 0 ? (
145+
<Member {...item} {...{style}} />
146+
) : (
147+
<animated.div className="last" {...{style}}>
148+
<Member className={'first'} />
149+
<Member className={'second'} />
150+
<Member className={'third'} bio="And many more..." />
151+
</animated.div>
152+
))
139153
)}
140154
</div>
141155
</div>

0 commit comments

Comments
 (0)
This repository has been archived.