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)} - + {/* */}
)