diff --git a/routes/index.tsx b/routes/index.tsx index 8fc5e61..e2fdc65 100644 --- a/routes/index.tsx +++ b/routes/index.tsx @@ -3,10 +3,10 @@ import { AutoGrid } from ':components/AutoGrid.tsx' import { CohabitInfoTable } from ':components/CohabitInfoTable.tsx' import { Heros } from ':components/Heros.tsx' import { MachineCard, machineMock } from ':components/MachineCard.tsx' -import { MemberCard, memberMock } from ':components/MemberCard.tsx' import { ProjectCard, projectMock } from ':components/ProjectCard.tsx' import { SponsorCards } from ':components/SponsorCards.tsx' import BlogCardList from ':islands/BlogCardList.tsx' +import MemberCardList from ':islands/MemberCardList.tsx' export default function Home() { return ( @@ -18,10 +18,12 @@ export default function Home() { Nos actus - <> - - Voir plus - > + + Voir plus @@ -50,10 +52,12 @@ export default function Home() { Nos membres - <> - {memberMock.slice(0, 4).map(MemberCard)} - Nous découvrir - > + + Nous découvrir diff --git a/routes/membres/[id]/index.tsx b/routes/membres/[id]/index.tsx index 333e492..8a1fbd9 100644 --- a/routes/membres/[id]/index.tsx +++ b/routes/membres/[id]/index.tsx @@ -1,31 +1,19 @@ import { PageProps } from '$fresh/server.ts' import { Markdown } from ':components/Markdown.tsx' -import { MemberCard, memberMock } from ':components/MemberCard.tsx' +import { MemberCard } from ':components/MemberCard.tsx' +import { db } from ':src/db/mod.ts' +import { fetchCarnet, userToMemberCardProps } from ':src/members/mod.ts' -const db = [ - 'julien.oculi', -] +export default async function Member(_: Request, { params, url }: PageProps) { + const uuid = params.id as ReturnType + const user = await db.ressource.user.get({ uuid }).catch(() => undefined) -async function getCarnet(user: string): Promise { - try { - const response = await fetch( - `https://git.cohabit.fr/${user}/.carnet/raw/branch/main/index.md`, - ) - return response.text() - } catch (error) { - return 'Carnet introuvable\n```js\nString(error)\n```' - } -} - -export default async function Member(_: Request, { params }: PageProps) { - const id = Number(params.id) - const Member = memberMock.at(id) - - if (!Member) { + if (!user) { return Membre inconnu, peut être serez vous le prochain } - const carnet = await getCarnet(db.at(id)!) + const memberCardProps = await userToMemberCardProps(user) + const carnet = await fetchCarnet(user.login) return ( - {MemberCard(Member)} + {MemberCard(memberCardProps)} Portfolio - {carnet} + + {carnet} + ) } diff --git a/routes/membres/index.tsx b/routes/membres/index.tsx index 6286da0..8a3ac89 100644 --- a/routes/membres/index.tsx +++ b/routes/membres/index.tsx @@ -1,5 +1,5 @@ import { AutoGrid } from ':components/AutoGrid.tsx' -import { MemberCard, memberMock } from ':components/MemberCard.tsx' +import MemberCardList from ':islands/MemberCardList.tsx' export default function Membres() { return ( @@ -8,32 +8,34 @@ export default function Membres() { Permanents - {memberMock.slice(0, 5).map(MemberCard)} + Bénévoles - {memberMock.slice(5, 10).map(MemberCard)} + Service civique - - {memberMock.slice(10, 15).map(MemberCard)} - + {/* */} Stage - - {memberMock.slice(15, 20).map(MemberCard)} - + {/* */} Étudiants - - {memberMock.slice(0, 5).map(MemberCard)} - + {/* */} > )