2023-12-20 23:14:44 +01:00
|
|
|
---
|
2024-04-29 14:54:38 +02:00
|
|
|
import * as config from "../config.yaml";
|
|
|
|
import core from "../core.json";
|
|
|
|
import contributors from "../contributors.json";
|
2024-09-13 19:04:35 +02:00
|
|
|
import SpeakerGrid from "./SpeakerGrid.astro";
|
|
|
|
import SliderTestimonial from "./SliderTestimonial.astro";
|
|
|
|
import MembersGrid from "./MembersGrid.astro";
|
2024-09-21 21:36:10 +02:00
|
|
|
import { fade } from "astro:transitions";
|
2023-12-20 23:14:44 +01:00
|
|
|
|
2024-09-13 19:04:35 +02:00
|
|
|
// Accept sectionsConfig as a prop
|
|
|
|
const {
|
|
|
|
sectionsConfig = [
|
|
|
|
{ name: "community", visible: true, order: 1 },
|
|
|
|
{ name: "socialLinks", visible: true, order: 2 },
|
|
|
|
{ name: "speakers", visible: true, order: 3 },
|
|
|
|
{ name: "core contributors", visible: true, order: 4 },
|
|
|
|
{ name: "contributors", visible: true, order: 5 },
|
|
|
|
{ name: "testimonials", visible: true, order: 6 },
|
|
|
|
{ name: "membersGrid", visible: true, order: 7 },
|
|
|
|
{ name: "communityPartners", visible: true, order: 8 },
|
|
|
|
],
|
|
|
|
} = Astro.props;
|
2024-02-23 23:30:55 +01:00
|
|
|
|
2024-09-13 19:04:35 +02:00
|
|
|
// Function to sort sections by order
|
|
|
|
const sortedSections = sectionsConfig
|
|
|
|
.filter((section) => section.visible)
|
|
|
|
.sort((a, b) => a.order - b.order);
|
2023-12-20 23:14:44 +01:00
|
|
|
---
|
|
|
|
|
2024-09-13 19:04:35 +02:00
|
|
|
{
|
|
|
|
sortedSections.map((section) => (
|
|
|
|
<div>
|
|
|
|
{section.name === "community" && (
|
|
|
|
<div class="middle-pane-medium mt-16">
|
|
|
|
<h1>
|
|
|
|
<a
|
|
|
|
class="glitch-text"
|
|
|
|
href="https://docs.web3privacy.info/get-involved"
|
|
|
|
>
|
|
|
|
Join the Community
|
2024-09-12 16:25:32 +02:00
|
|
|
</a>
|
2024-09-13 19:04:35 +02:00
|
|
|
</h1>
|
|
|
|
<div>{config.landing.community}</div>
|
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
|
|
|
|
{section.name === "socialLinks" && (
|
|
|
|
<div class=" middle-pane-big grid place-items-center grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-2 pt-4 w-full">
|
|
|
|
<a
|
|
|
|
href={core.links.twitter}
|
|
|
|
class="bg-[#101010] w-full flex items-center justify-center w-full h-40 overflow-hidden"
|
|
|
|
>
|
|
|
|
<button class="flex flex-col items-center justify-center">
|
|
|
|
<div class="icon twitter" />
|
|
|
|
@web3privacy
|
|
|
|
</button>
|
|
|
|
</a>
|
|
|
|
<a
|
|
|
|
href={core.links.telegram}
|
|
|
|
class="bg-[#101010] w-full flex items-center justify-center w-full h-40 overflow-hidden"
|
|
|
|
>
|
|
|
|
<button class="flex flex-col items-center justify-center">
|
|
|
|
<div class="icon telegram" />
|
|
|
|
Telegram
|
|
|
|
</button>
|
|
|
|
</a>
|
|
|
|
<a
|
|
|
|
href={core.links.signal}
|
|
|
|
class="bg-[#101010] w-full flex items-center justify-center w-full h-40 overflow-hidden"
|
|
|
|
>
|
|
|
|
<button class="flex flex-col items-center justify-center">
|
|
|
|
<div class="icon">
|
|
|
|
<img src="/icons/signal.svg" alt="" />
|
|
|
|
</div>
|
|
|
|
Signal
|
|
|
|
</button>
|
|
|
|
</a>
|
|
|
|
<a
|
|
|
|
href={core.links.matrix}
|
|
|
|
class="bg-[#101010] w-full flex items-center justify-center w-full h-40 overflow-hidden"
|
|
|
|
>
|
|
|
|
<button class="flex flex-col items-center justify-center">
|
|
|
|
<div class="icon matrix" />
|
|
|
|
matrix
|
|
|
|
</button>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
)}
|
2024-09-12 06:21:15 +02:00
|
|
|
|
2024-09-13 19:04:35 +02:00
|
|
|
{section.name === "speakers" && (
|
|
|
|
<div class="middle-pane-medium mt-16">
|
|
|
|
<h1 class="my-6 glitch-text ">Speakers</h1>
|
2024-09-16 17:10:46 +02:00
|
|
|
<SpeakerGrid
|
|
|
|
people={core.people}
|
2024-09-24 14:45:28 +02:00
|
|
|
team={core.teams["core-speakers"]}
|
2024-09-24 14:07:20 +02:00
|
|
|
core={true}
|
2024-09-16 17:10:46 +02:00
|
|
|
/>
|
2024-09-13 19:04:35 +02:00
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
|
|
|
|
{section.name === "core contributors" && (
|
|
|
|
<div class="middle-pane-medium mt-16">
|
|
|
|
<h1 class="my-6 glitch-text">Core Contributors</h1>
|
2024-09-16 17:10:46 +02:00
|
|
|
<SpeakerGrid
|
|
|
|
people={core.people}
|
2024-09-25 18:18:57 +02:00
|
|
|
team={core.teams["core-contributors"]}
|
|
|
|
core={false}
|
2024-09-16 17:10:46 +02:00
|
|
|
/>
|
2024-09-13 19:04:35 +02:00
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
|
|
|
|
{section.name === "contributors" && (
|
|
|
|
<div class="middle-pane-medium">
|
|
|
|
<h1 class="my-6 glitch-text">Contributors</h1>
|
2024-09-16 18:13:20 +02:00
|
|
|
<div class="flex gap-3 flex-wrap mb-4 items-center justify-center md:justify-start">
|
2024-09-13 19:04:35 +02:00
|
|
|
{contributors.items.map((contrib) => (
|
|
|
|
<div>
|
|
|
|
<a
|
|
|
|
href={contrib.html_url}
|
|
|
|
target="_blank"
|
|
|
|
title={contrib.login}
|
|
|
|
>
|
|
|
|
<img
|
|
|
|
src={contrib.avatar_url}
|
2024-09-19 20:01:31 +02:00
|
|
|
class="w-6 md:w-14 rounded-full aspect-square"
|
2024-09-13 19:04:35 +02:00
|
|
|
/>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
))}
|
|
|
|
</div>
|
|
|
|
<div class="flex gap-4 lg:gap-6 pt-4 flex-wrap">
|
|
|
|
<a href={core.links.telegram} class="button inverted">
|
|
|
|
<button>Become a Contributor</button>
|
2024-04-29 14:54:38 +02:00
|
|
|
</a>
|
|
|
|
</div>
|
2024-09-13 19:04:35 +02:00
|
|
|
</div>
|
|
|
|
)}
|
2023-12-20 23:14:44 +01:00
|
|
|
|
2024-09-13 19:04:35 +02:00
|
|
|
{section.name === "testimonials" && (
|
|
|
|
<div class="middle-pane-medium">
|
|
|
|
<h1 class="my-6 mt-16 glitch-text">
|
|
|
|
What People Have To Say About US
|
|
|
|
</h1>
|
|
|
|
<SliderTestimonial />
|
2024-09-12 06:21:15 +02:00
|
|
|
</div>
|
2024-09-13 19:04:35 +02:00
|
|
|
)}
|
2024-09-12 16:25:32 +02:00
|
|
|
|
2024-09-13 19:04:35 +02:00
|
|
|
{section.name === "membersGrid" && (
|
2024-09-21 21:36:10 +02:00
|
|
|
<div class="mx-4 mt-16">
|
|
|
|
<h1 class="my-6 middle-pane-medium glitch-text">Members</h1>
|
2024-09-25 17:25:54 +02:00
|
|
|
<div class="middle-pane-medium">
|
2024-09-21 21:36:10 +02:00
|
|
|
<MembersGrid people={core.people} team={core.teams["members"]} core={false} />
|
|
|
|
</div>
|
2024-09-13 19:04:35 +02:00
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
</div>
|
|
|
|
))
|
|
|
|
}
|