@@ -3,19 +3,19 @@ import Button from "components/con/common/Button";
33import SpeakerList from "components/con/speakers/SpeakerList" ;
44import SectionTitle from "components/con/common/typography/SectionTitle" ;
55import SectionSubTitle from "components/con/common/typography/SectionSubtitle" ;
6- import Web from "components /con/common/Web " ;
6+ import { currentEdition } from "data /con/editions " ;
77import Wave from "components/con/common/Wave" ;
88import Venue from "components/con/home/Venue" ;
9- import Image from "next/image" ;
109import Partners from "components/con/home/Partners" ;
1110import LookingSponsorCard from "components/con/home/LookingSponsorCard" ;
1211import { Partner , Speaker } from "types/con" ;
1312import { useContext } from "react" ;
1413import { LanguageContext } from "contexts/con/LanguageContext" ;
1514import Section from "components/con/home/Section" ;
16- import PictureGallery from "components /con/common/PictureGallery " ;
15+ import prices from "data /con/2025/prices " ;
1716import Logo from "./Logo" ;
18- import AfterMovie from "app/con/2024/components/AfterMovie" ;
17+ import PricingCard from "components/con/home/Pricing/PricingCard" ;
18+ import BuyButton from "components/con/common/BuyButton" ;
1919
2020type HomePageProps = {
2121 speakers : Speaker [ ] ;
@@ -39,65 +39,29 @@ const HomePage = ({ speakers, partners, images }: HomePageProps) => {
3939 < p className = "flex-1 text-lg md:text-xl font-extrabold pb-6 lg:text-3xl md:text-left" >
4040 { t ( "2025.baseline" ) }
4141 </ p >
42- < p className = "flex-1 text-sm md:text-md font-extrabold pb-6 lg:text-lg md:text-left" >
43- { t ( "2025.subbaseline" ) }
44- </ p >
4542 < div className = "flex gap-2" >
46- < Button className = "pink" to = { `/${ locale } /con/2024/review` } >
47- { t ( "2025.previous_edition" ) }
43+ { currentEdition === "2025" && (
44+ < BuyButton className = "mr-2" id = "cover" >
45+ { t ( "buy_tickets" ) }
46+ </ BuyButton >
47+ ) }
48+ < Button empty to = { `/${ locale } /con/2025/call-for-papers` } >
49+ { t ( "2025.cfp.title" ) }
4850 </ Button >
4951 </ div >
5052 </ div >
5153 </ div >
5254 < Wave className = "absolute opacity-30 z-0 bottom-0 h-[60vh] right-[7%] top-[63%] -translate-y-1/2" />
5355 </ Section >
54- < Section
55- section = "lastYear"
56- className = "bg-white z-10 relative pb-10 overflow-y-clip"
57- >
58- < div className = "container text-center" >
59- < SectionTitle >
60- < Translate translationKey = "last_edition.title" />
61- </ SectionTitle >
62- < SectionSubTitle >
63- < Translate
64- translationKey = "2025.see_review.subtitle"
65- translationParams = { {
66- edition : "2024" ,
67- link : (
68- < a href = { `/${ locale } /con/2024/review` } className = "link" >
69- { t ( "2025.see_review.link" ) }
70- </ a >
71- ) ,
72- } }
73- />
74- </ SectionSubTitle >
75- < PictureGallery
76- className = "py-4"
77- link = "https://www.flickr.com/photos/194052559@N02/albums/72177720320499314/"
78- >
79- { images . map ( ( image : string ) => (
80- < Image
81- className = "object-cover"
82- key = { image }
83- fill
84- src = { image }
85- alt = ""
86- sizes = "(max-width: 640px) 200px, (max-width: 768px) 240px, (max-width: 1536px) 300px, 400px"
87- />
88- ) ) }
89- </ PictureGallery >
90- </ div >
91- </ Section >
9256 < Section
9357 section = "speakers"
94- className = "z-10 relative py-4 overflow-x-hidden text-white "
58+ className = "bg-white z-10 relative py-4 overflow-x-hidden"
9559 >
9660 < div className = "container text-center" >
97- < SectionTitle dark h1 >
61+ < SectionTitle h1 >
9862 < Translate translationKey = "2025.our_speakers.title" />
9963 </ SectionTitle >
100- < SectionSubTitle dark >
64+ < SectionSubTitle >
10165 < Translate
10266 translationKey = "2025.our_speakers.subtitle"
10367 translationParams = { {
@@ -130,15 +94,86 @@ const HomePage = ({ speakers, partners, images }: HomePageProps) => {
13094 </ Button >
13195 </ div >
13296 </ Section >
97+ { currentEdition === "2025" && (
98+ < Section
99+ 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"
100+ section = "pricing"
101+ >
102+ < div className = "container relative z-10" >
103+ < SectionTitle dark >
104+ < Translate translationKey = "pricing.title" />
105+ </ SectionTitle >
106+ < div className = "max-w-4xl mx-auto flex flex-row flex-wrap justify-center" >
107+ { prices . map ( ( price ) => (
108+ < PricingCard key = { price . id } price = { price } />
109+ ) ) }
110+ < div className = "w-full self-center max-w-md mt-10 | lg:pl-10 lg:mt-0 lg:w-1/3" >
111+ < 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" >
112+ < span className = "font-bold text-white leading-tight font-title uppercase lined-center lined-white relative" >
113+ { t ( "pricing.student" ) }
114+ </ span >
115+ < div className = "mt-2 text-blue-black/80 font-semibold" >
116+ < Translate translationKey = "pricing.free_ticket" />
117+ </ div >
118+ < Button
119+ size = "small"
120+ square
121+ className = "white mt-2 mb-5"
122+ to = "mailto:events@les-tilleuls.coop"
123+ >
124+ { t ( "contact_us" ) }
125+ </ Button >
126+ < small className = "text-xs text-blue-black/50 font-bold" >
127+ *{ t ( "pricing.certificate_needed" ) }
128+ </ small >
129+ </ div >
130+ </ div >
131+ </ div >
132+ </ div >
133+ </ Section >
134+ ) }
135+ < Venue subtitle = { t ( "2025.venue.subtitle" ) } />
136+ < Section
137+ section = "lastYear"
138+ className = " z-10 relative pb-10 overflow-y-clip"
139+ >
140+ < div className = "container text-center flex flex-col items-center pt-12" >
141+ < SectionTitle dark >
142+ < Translate translationKey = "last_edition.title" />
143+ </ SectionTitle >
144+ < SectionSubTitle dark >
145+ < Translate
146+ translationKey = "2025.see_review.subtitle"
147+ translationParams = { {
148+ edition : "2024" ,
149+ link : (
150+ < a href = { `/${ locale } /con/2024/review` } className = "link" >
151+ { t ( "2025.see_review.link" ) }
152+ </ a >
153+ ) ,
154+ } }
155+ />
156+ </ SectionSubTitle >
157+ < iframe
158+ className = "aspect-video w-full max-w-2xl border-white border-8 shadow-2xl"
159+ src = "https://www.youtube.com/embed/XXj8NCvLuis?si=hWGWKS81UriUkJ3R&controls=0"
160+ title = "YouTube video player"
161+ frameBorder = "0"
162+ allow = "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
163+ referrerPolicy = "strict-origin-when-cross-origin"
164+ allowFullScreen
165+ > </ iframe >
166+ </ div >
167+ </ Section >
133168 < Section
134169 section = "missing"
135- className = "relative z-10 text-center overflow-y-clip bg-white "
170+ className = "relative bg-grey z-10 text-center overflow-y-clip"
136171 >
137172 < div className = "container text-center" >
138173 < SectionTitle >
139174 < Translate
140175 translationKey = "missing_conferences.title"
141- translationParams = { { edition : "2024 " } }
176+ translationParams = { { edition : "2025 " } }
142177 />
143178 </ SectionTitle >
144179 < SectionSubTitle > { t ( "missing_conferences.subtitle" ) } </ SectionSubTitle >
@@ -151,10 +186,6 @@ const HomePage = ({ speakers, partners, images }: HomePageProps) => {
151186 </ Button >
152187 </ div >
153188 </ Section >
154- < div className = "pb-12" >
155- < AfterMovie />
156- </ div >
157- < Venue subtitle = { t ( "2025.venue.subtitle" ) } />
158189 < Section section = "sponsorship" className = "py-8" >
159190 < div className = "container text-center" >
160191 < SectionTitle dark >
0 commit comments