diff --git a/src/components/SpeakerGrid.astro b/src/components/SpeakerGrid.astro index c9d64b8..6133603 100644 --- a/src/components/SpeakerGrid.astro +++ b/src/components/SpeakerGrid.astro @@ -3,13 +3,27 @@ import { parseAndWrapCaptions } from "../../utils/captionParser"; const { people, team, core, contributors } = Astro.props; -// Filter based on the `core` parameter -const members = core ? people.filter((p) => { - return team.includes(p.id) -}).filter((p) => p.imageUrl) : team; +const coreContributorsOrder = [ + 'mykola-siusko', + 'pg', + 'michael-parenti', + 'coinmandeer', + 'robert', + 'cat', + 'odd', + 'mf' +]; + +// Filter based on the `core` parameter +const members = core + ? people.filter((p) => team.includes(p.id)).filter((p) => p.imageUrl) + : team; + +// Filter and sort `filteredPeople` based on `coreContributorsOrder` +const filteredPeople = members.filter((p) => p.imageUrl).sort((a, b) => { + return coreContributorsOrder.indexOf(a.id) - coreContributorsOrder.indexOf(b.id); +}); -// const filteredPeople = members.filter((p) => p.imageUrl).slice(0, 12); -const filteredPeople = members.filter((p) => p.imageUrl); function personLink(person) { if (person.refs?.twitter) { @@ -32,6 +46,7 @@ function personLink(person) { } --- +