Skip to content

Commit

Permalink
feat: add con 2024
Browse files Browse the repository at this point in the history
  • Loading branch information
ginifizz committed Sep 27, 2023
1 parent e97e767 commit 0a94c06
Show file tree
Hide file tree
Showing 53 changed files with 1,641 additions and 53 deletions.
6 changes: 6 additions & 0 deletions pwa/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,9 @@ app/playground/utils/php-web.mjs
app/playground/utils/php-web.wasm
public/php-web.data
public/php-web.wasm
.phive
core.temp
docs.temp/
core/
php-wasm/
tools/pdg
2 changes: 1 addition & 1 deletion pwa/app/(con)/[locale]/con/2022/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
return {
title: {
default: dictionary[2022].title,
template: `%s - API Platform Conference 2021`,
template: `%s - API Platform Conference 2022`,
},
description: dictionary[2022].description,
openGraph: {
Expand Down
71 changes: 38 additions & 33 deletions pwa/app/(con)/[locale]/con/2023/components/HomePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ type HomePageProps = {
};

const HomePage = ({ speakers, partners }: HomePageProps) => {
const { t, Translate } = useContext(LanguageContext);
const { t, Translate, locale } = useContext(LanguageContext);
return (
<>
<Cover
Expand All @@ -35,6 +35,9 @@ const HomePage = ({ speakers, partners }: HomePageProps) => {
{t("buy_tickets")}
</BuyButton>
)}
<Button className="pink" to={`/${locale}/con`}>
{t("back_to_current_edition")}
</Button>
</div>
}
/>
Expand All @@ -55,42 +58,44 @@ const HomePage = ({ speakers, partners }: HomePageProps) => {
) : null}
</div>
</Section>
<Section
className="relative py-10 before:bg-grey before:h-[calc(100%-500px)] before:absolute before:left-0 before:bottom-0 before:w-full after:bg-wave2 after:w-[1300px] after:h-[800px] after:absolute after:top-24 after:left-1/2 after:bg-top after:bg-contain after:opacity-50 after:bg-no-repeat after:-translate-x-1/2 after:rotate-6"
section="pricing"
>
<div className="container relative z-10">
<SectionTitle dark>
<Translate translationKey="pricing.title" />
</SectionTitle>
<div className="max-w-4xl mx-auto flex flex-row flex-wrap justify-center">
{prices.map((price) => (
<PricingCard key={price.id} price={price} />
))}
<div className="w-full self-center max-w-md mt-10 | lg:pl-10 lg:mt-0 lg:w-1/3">
<div className="p-5 dotted-corner flex flex-col items-center text-center bg-blue bg-blue-gradient shadow-md border-blue-dark border-4">
<span className="font-bold text-white leading-tight font-title uppercase lined-center lined-white relative">
{t("pricing.student")}
</span>
<div className="mt-2 text-blue-black/80 font-semibold">
<Translate translationKey="pricing.free_ticket" />
{currentEdition === "2023" && (
<Section
className="relative py-10 before:bg-grey before:h-[calc(100%-500px)] before:absolute before:left-0 before:bottom-0 before:w-full after:bg-wave2 after:w-[1300px] after:h-[800px] after:absolute after:top-24 after:left-1/2 after:bg-top after:bg-contain after:opacity-50 after:bg-no-repeat after:-translate-x-1/2 after:rotate-6"
section="pricing"
>
<div className="container relative z-10">
<SectionTitle dark>
<Translate translationKey="pricing.title" />
</SectionTitle>
<div className="max-w-4xl mx-auto flex flex-row flex-wrap justify-center">
{prices.map((price) => (
<PricingCard key={price.id} price={price} />
))}
<div className="w-full self-center max-w-md mt-10 | lg:pl-10 lg:mt-0 lg:w-1/3">
<div className="p-5 dotted-corner flex flex-col items-center text-center bg-blue bg-blue-gradient shadow-md border-blue-dark border-4">
<span className="font-bold text-white leading-tight font-title uppercase lined-center lined-white relative">
{t("pricing.student")}
</span>
<div className="mt-2 text-blue-black/80 font-semibold">
<Translate translationKey="pricing.free_ticket" />
</div>
<Button
size="small"
square
className="white mt-2 mb-5"
to="mailto:events@les-tilleuls.coop"
>
{t("contact_us")}
</Button>
<small className="text-xs text-blue-black/50 font-bold">
*{t("pricing.certificate_needed")}
</small>
</div>
<Button
size="small"
square
className="white mt-2 mb-5"
to="mailto:events@les-tilleuls.coop"
>
{t("contact_us")}
</Button>
<small className="text-xs text-blue-black/50 font-bold">
*{t("pricing.certificate_needed")}
</small>
</div>
</div>
</div>
</div>
</Section>
</Section>
)}
<Venue
subtitle={t("2023.venue.subtitle")}
tip_title={t("2023.venue.tip_title")}
Expand Down
2 changes: 1 addition & 1 deletion pwa/app/(con)/[locale]/con/2023/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
return {
title: {
default: dictionary[2023].title,
template: `%s - API Platform Conference 2021`,
template: `%s - API Platform Conference 2023`,
},
description: dictionary[2023].description,
openGraph: {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
"use client";
import ReviewCoverBase from "components/con/review/ReviewCover";
import { useContext } from "react";
import { LanguageContext } from "contexts/con/LanguageContext";

export default function ReviewCover() {
const { t, Translate } = useContext(LanguageContext);
return (
<ReviewCoverBase
edition="2023"
title={t("2023.review.title")}
baseline={
<>
<p>
{t("2023.review.subtitle_1")}
<br />
{t("2023.review.subtitle_2")}
</p>
<Translate
className="text-sm mt-4"
translationKey="2023.review.subtitle_3"
translationParams={{
twitter: (
<a
className="font-bold underline"
href="https://twitter.com/ApiPlatform"
target="_blank"
rel="noreferrer noopener"
>
Twitter
</a>
),
}}
/>
</>
}
/>
);
}
205 changes: 205 additions & 0 deletions pwa/app/(con)/[locale]/con/2023/review/components/Review/en.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
"use client";
import React from "react";
import Button from "components/con/common/Button";
import useDynamicRefs from "hooks/con/useDynamicRefs";
import ReviewItem from "components/con/review/ReviewItem";
import LinedTitle from "components/con/common/typography/LinedTitle";

export default function ReviewList() {
const [, setRef] = useDynamicRefs();
const reviewRef = setRef("review-list");

return (
<section className="pb-36" ref={reviewRef}>
<div className="container">
<ReviewItem
edition="2023"
imageId="days"
title={
<>
<strong>2</strong>
<span>awesome days</span>
</>
}
>
<LinedTitle className="mb-5">We doubled the fun</LinedTitle>
<p>
This year, the API Platform Con took place over 2 days with still
two tracks in both languages.
</p>
<p>
Tracks were given in{" "}
<a
href="https://www.euratechnologies.com/"
target="_blank"
rel="noreferrer noopener"
>
Euratechnologies
</a>
, located at 1 hour from Paris, 30 min from Brussels and 12 hours
from Montreal!
</p>
</ReviewItem>
<ReviewItem
edition="2023"
imageId="speakers"
title={
<>
<strong>29</strong>
<span>inspiring speakers</span>
</>
}
>
<LinedTitle className="mb-5">
They made this event so amazing!
</LinedTitle>
<p>
Some of the best speakers from our ecosystem came from America,
Africa or Europe and shared their knowledge in English and in
French.
</p>
<p>
A wide variety of topics were discussed and we’re very proud to have
welcomed some new speakers who were on stage for the very first
time!
</p>
<Button className="square" size="small" to="/con/2023/speakers">
See all speakers
</Button>
</ReviewItem>
<ReviewItem
edition="2023"
imageId="attendees"
title={
<>
<strong>700</strong>
<span>attendees</span>
</>
}
>
<LinedTitle className="mb-5">Thank you 700 times!</LinedTitle>
<p>
300 people were in Lille and 400 people from all over the world
listened to our talks online. The online participation rate has even
reached 71%!
</p>
<p>Thank you so much!</p>
</ReviewItem>
<ReviewItem
edition="2023"
imageId="sponsors"
title={
<>
<strong>12</strong>
<span>sponsors and partners</span>
</>
}
>
<LinedTitle className="mb-5">
Our best allies for this event
</LinedTitle>
<p>
A huge thank you to our Platinum sponsor{" "}
<a
href="https://www.france.tv/"
target="_blank"
rel="noreferrer noopener"
>
France Télévisions
</a>{" "}
for trusting us.
</p>
<p>
Thank you also to our fabulous Gold sponsors{" "}
<a
href="https://sensiolabs.com/fr/"
target="_blank"
rel="noreferrer noopener"
>
Sensiolabs
</a>
,{" "}
<a
href="https://www.alicesgarden.fr/"
target="_blank"
rel="noreferrer noopener"
>
Alice&apos;s Garden
</a>
,{" "}
<a
href="https://positivethinking.tech/fr/"
target="_blank"
rel="noreferrer noopener"
>
Linkvalue
</a>
,{" "}
<a
href="https://platform.sh/"
target="_blank"
rel="noreferrer noopener"
>
Platform.sh
</a>{" "}
and{" "}
<a
href="https://www.clever-cloud.com/fr/"
target="_blank"
rel="noreferrer noopener"
>
Clever Cloud
</a>
.
</p>
<p>
A big thank you to our Bronze sponsors{" "}
<a
href="https://www.rapid-flyer.com/"
target="_blank"
rel="noreferrer noopener"
>
Rapid Flyer
</a>{" "}
and{" "}
<a
href="https://fairness.coop/"
target="_blank"
rel="noreferrer noopener"
>
Fairness
</a>{" "}
for joining us.
</p>
<Button
className="square"
size="small"
to="mailto:events@les-tilleuls.coop"
>
Become a partner in 2023
</Button>
</ReviewItem>
<ReviewItem
edition="2023"
imageId="release"
title={
<>
<span>API Platform’s new</span>
<strong>release</strong>
</>
}
>
<LinedTitle className="mb-5">An unforgettable edition</LinedTitle>
<p>
API Platform Con was the occasion to celebrate the release of API
Platform 3.
</p>
<p>
We hope you enjoy our core team’s work and we can’t wait to hear
from your feedback!
</p>
</ReviewItem>
</div>
</section>
);
}
Loading

0 comments on commit 0a94c06

Please sign in to comment.