Skip to content

Commit ffe760d

Browse files
authored
Shuffle team members (#1880)
1 parent 2f28800 commit ffe760d

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/about/team/TeamPage.vue

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
<script lang="ts">
2+
const shuffleMembers = (members: Member[], pinTheFirstMember = false): void => {
3+
let offset = pinTheFirstMember ? 1 : 0
4+
// `i` is between `1` and `length - offset`
5+
// `j` is between `0` and `length - offset - 1`
6+
// `offset + i - 1` is between `offset` and `length - 1`
7+
// `offset + j` is between `offset` and `length - 1`
8+
let i = members.length - offset
9+
while (i > 0) {
10+
const j = Math.floor(Math.random() * i);
11+
[
12+
members[offset + i - 1],
13+
members[offset + j]
14+
] = [
15+
members[offset + j],
16+
members[offset + i - 1]
17+
]
18+
i--
19+
}
20+
}
21+
</script>
22+
123
<script setup lang="ts">
224
import { VTLink } from '@vue/theme'
325
import membersCoreData from './members-core.json'
@@ -6,6 +28,9 @@ import membersPartnerData from './members-partner.json'
628
import TeamHero from './TeamHero.vue'
729
import TeamList from './TeamList.vue'
830
import type { Member } from './Member'
31+
shuffleMembers(membersCoreData as Member[], true)
32+
shuffleMembers(membersEmeritiData as Member[])
33+
shuffleMembers(membersPartnerData as Member[])
934
</script>
1035

1136
<template>
@@ -26,7 +51,7 @@ import type { Member } from './Member'
2651
</template>
2752
</TeamHero>
2853

29-
<TeamList :members="membersCoreData">
54+
<TeamList :members="membersCoreData as Member[]">
3055
<template #title>Core Team Members</template>
3156
<template #lead
3257
>Core team members are those who are actively involved in the

0 commit comments

Comments
 (0)