11<template >
2-
3- <v-row class =" banner-wrapper bg-surface" >
2+ <div class =" banner-wrapper bg-surface" >
43 <div class =" bg" />
4+ <v-responsive class =" ma-auto" max-width =" 960" >
5+ <main-banner >
6+ <template #title >
7+ <div class =" font-rbcn text-h2 text-sm-h1" >
8+ <span >RBCN</span >
9+ <span class =" ml-3" >{{ currentYear }}</span >
10+ </div >
11+ </template >
12+ </main-banner >
13+ </v-responsive >
514
6- <v-container fluid >
7- <v-responsive class =" mx-auto" max-width =" 900" >
8-
9- <main-banner >
10- <template #title >
11- <div class =" d-flex items-center" >
12- <div class =" font-rbcn" >RBCN<span class =" color-theme" >25</span ></div >
13- </div >
14- </template >
15- </main-banner >
15+ </div >
1616
17- </v-responsive >
18- </v-container >
19- </v-row >
17+ <v-container fluid class =" pa-0" >
2018
21- <v-container fluid >
22- <v-responsive class =" mx-auto" max-width =" 900" >
23- <v-row >
24- <v-col cols =" 12" >
25- <news-banner v-if =" $t('newsBanner') !== ''" >
26- <div v-html =" $t('newsBanner')" />
27- </news-banner >
19+ <news-banner v-if =" $t('newsBanner') !== ''" >
20+ <div v-html =" $t('newsBanner')" />
21+ </news-banner >
2822
29- <page-section v-for =" (section, index) in sections" :key =" section.data.target.fields.title"
30- :titleId =" section.data.target.fields.title" :title =" section.data.target.fields.title" >
31- <RichTextRenderer :document =" section.data.target.fields.body" :nodeRenderers =" renderNodes()" />
32- </page-section >
33- </v-col >
34- </v-row >
23+ <page-section v-for =" (section, index) in sections" :key =" section.data.target.fields.title"
24+ :titleId =" section.data.target.fields.title" :title =" section.data.target.fields.title"
25+ :bg =" index % 2 === 1 ? 'surface-bright' : undefined" >
26+ <RichTextRenderer :document =" section.data.target.fields.body" :nodeRenderers =" renderNodes()" />
27+ </page-section >
3528
29+ <div class =" bg-surface-bright" >
30+ <v-responsive class =" mx-auto py-10" max-width =" 960" >
31+ <EventCards />
32+ </v-responsive >
33+ </div >
3634
37- <EventCards />
38-
39- <v-row class =" mt-16" />
35+ <v-responsive class =" mx-auto py-10" max-width =" 960" >
4036 <SpeakerCards />
37+ </v-responsive >
4138
4239
43- </v-responsive >
4440 </v-container >
4541
4642</template >
4743
4844<script >
49- // import { PageSection, NewsBanner, Ticket, Talks24, Workshops24, Tutorials24, Sponsors, GlobeRbcn } from 'Components'
50- import { MainBanner , PageSection , NewsBanner , EventCards , SpeakerCards , RobotIcon , TicketItem , SponsorItem } from ' Components'
45+ import {
46+ MainBanner ,
47+ PageSection ,
48+ NewsBanner ,
49+ EventCards ,
50+ SpeakerCards ,
51+ TicketItem ,
52+ SponsorItem
53+ } from ' @/components'
5154import RichTextRenderer from ' contentful-rich-text-vue-renderer'
5255import { h } from ' vue'
53- import { useGlobalStore } from ' .. /store' ;
56+ import { useGlobalStore } from ' @ /store' ;
5457import { mapState } from ' pinia' ;
5558import { format } from ' date-fns'
5659
60+
5761const customEmbeddedEntry = (node , key ) => {
5862 return h (TicketItem, { key, to: ' link to embedded entry' }, ' content for the <Link> component' );
5963};
@@ -63,13 +67,15 @@ export default {
6367 components: {
6468 PageSection,
6569 NewsBanner,
66- RobotIcon,
6770 RichTextRenderer,
6871 TicketItem,
6972 SponsorItem,
7073 EventCards
7174 },
7275 computed: {
76+ currentYear () {
77+ return format (new Date (), " yy" )
78+ },
7379 ... mapState (useGlobalStore, [' pages' ]),
7480 sections () {
7581 const page = this .pages .find ((p ) => p .fields .pageName === ' 2025' ) ?? this .pages [0 ]
@@ -105,8 +111,12 @@ export default {
105111 ' embedded-entry-inline ' : (node ) => {
106112 const target = node .data .target
107113 const type = target .sys .contentType .sys .id
114+
108115 if (type === ' ticket' ) {
109116 const { ticketName , href , price , discountedPrice , validFrom , validUntil , highlighted } = target .fields
117+
118+
119+ console .log (" type >>>>>" , ticketName, price, validUntil)
110120 const isValid =
111121 (! validFrom || (new Date () > new Date (validFrom))) &&
112122 (! validUntil || (new Date () < new Date (validUntil)))
@@ -118,6 +128,7 @@ export default {
118128 })
119129 else return undefined
120130 }
131+
121132 if (type === ' sponsor' ) {
122133 const { sponsorName , sponsorTier , href , sponsorLogo } = target .fields
123134 return h (SponsorItem, { href, name: sponsorName, src: sponsorLogo? .fields ? .file ? .url , important: !! sponsorTier })
@@ -144,6 +155,8 @@ export default {
144155.banner - wrapper {
145156 position: relative;
146157 height: 400px ;
158+ justify- content: center;
159+ display: flex;
147160}
148161
149162.bg {
0 commit comments