Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/components/home/Hero.astro
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import Cluster from '../ui-elements/Cluster.astro'
<Cluster>
<!-- <ButtonLink href="/schedule">Voir le programme</ButtonLink> -->
<ButtonLink href="https://conference-hall.io/sunny-tech-2026" target="_blank">CFP</ButtonLink>
<ButtonLink href="https://www.youtube.com/playlist?list=PLz7aCyCbFOu_5UbMFIJyZ_9Qsu5jZTBnU" external>
Voir les replays 2025
<ButtonLink href="https://www.billetweb.fr/sunny-tech-2026" target="_blank" external>
Accéder à la billetterie
</ButtonLink>
</Cluster>
</div>
Expand Down
9 changes: 4 additions & 5 deletions src/components/home/HomeTicketsBlock.astro
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,18 @@ const { tickets } = Astro.props

<div id="tickets">
<ContentContainer spaceBlock="4rem">
<!--
<h2>Acheter votre billet</h2>

<p style="max-width: 85ch; color: var(--text-subtle)">
* Les billets donnent accès à toutes les conférences, aux pauses café, aux déjeuners et à la soirée. Les
goodies sont aussi inclus mais pas les t-shirts. Lhébergement nest pas inclus dans le prix du billet.
goodies sont aussi inclus mais pas les t-shirts. L'hébergement n'est pas inclus dans le prix du billet.
</p>

<Grid space="4rem" autoLayout="fit">
{tickets.map((ticket) => <TicketCard ticket={ticket} />)}
</Grid>
-->
<h2>Billetterie</h2>

<!-- <h2>Billetterie</h2>
<p style="max-width: 85ch; color: var(--text-subtle)">
La billetterie sera ouverte prochainement. Inscrivez-vous à la newsletter pour être informé des nouvelles
annonces.
Expand All @@ -35,6 +34,6 @@ const { tickets } = Astro.props
href="https://1485701c.sibforms.com/serve/MUIFAMgB9ZySVOL_x0g-9wEIwg1l1jh6RrSs3xTTnw5ZInV4HRM009fe1mwczAa8HEaB4kJf-sTzkK06jO2RIaxSpuflFWayHm2y5m86PhfcDp1kLA8VYGJozdX8flk6OdewY3pf2aE7Wh54VsDoUbYGxHO_mOXmweUPXeFd3_xK6_6FLN9KTdLWRvWiJ7Ldmbx0tByLixqYWBYu"
external>
S'inscrire à la newsletter
</ButtonLink>
</ButtonLink> -->
</ContentContainer>
</div>
38 changes: 35 additions & 3 deletions src/components/home/TicketCard.astro
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,19 @@ interface Props {
}

const { ticket } = Astro.props
const { name, price, url, startDate, endDate, ticketsCount, available, soldOut, highlighted, message } = ticket.data
const {
name,
price,
url,
startDate,
endDate,
ticketsCount,
available,
soldOut,
highlighted,
message,
displayNewsletterRegistration,
} = ticket.data
---

<article
Expand Down Expand Up @@ -42,7 +54,11 @@ const { name, price, url, startDate, endDate, ticketsCount, available, soldOut,
!!message && (
<p class="text-center">
<br />
<span class="ticket-card-message">{message}</span>
<span class="ticket-card-message">
{message.split('\n').map((line) => (
<span style="display: block;">{line}</span>
))}
</span>
</p>
)
}
Expand All @@ -54,8 +70,24 @@ const { name, price, url, startDate, endDate, ticketsCount, available, soldOut,
</ButtonLink>
)
}
{!available && !soldOut && <span class="ticket-card-unavailable">Pas disponible</span>}
{
!available && !soldOut && !displayNewsletterRegistration && (
<span class="ticket-card-unavailable">Pas disponible</span>
)
}
{soldOut && <span class="ticket-card-sold-out">Épuisé</span>}
{
displayNewsletterRegistration && (
<p class="text-center">
<ButtonLink
href="https://1485701c.sibforms.com/serve/MUIFAMgB9ZySVOL_x0g-9wEIwg1l1jh6RrSs3xTTnw5ZInV4HRM009fe1mwczAa8HEaB4kJf-sTzkK06jO2RIaxSpuflFWayHm2y5m86PhfcDp1kLA8VYGJozdX8flk6OdewY3pf2aE7Wh54VsDoUbYGxHO_mOXmweUPXeFd3_xK6_6FLN9KTdLWRvWiJ7Ldmbx0tByLixqYWBYu"
target="_blank"
external>
S'inscrire à la newsletter
</ButtonLink>
</p>
)
}
</div>
</Stack>
</article>
Expand Down
1 change: 1 addition & 0 deletions src/content.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ const ticketsCollection = defineCollection({
soldOut: z.boolean(),
highlighted: z.boolean(),
message: z.string().optional(),
displayNewsletterRegistration: z.boolean().optional(),
}),
})

Expand Down
24 changes: 13 additions & 11 deletions src/data/tickets/tickets.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
[
{
"id": "student",
"name": "Étudiant",
"price": 40,
"url": "http://billetweb.fr/sunny-tech-2025",
"name": "Étudiant et demandeur d'emploi",
"price": 44,
"url": "https://www.billetweb.fr/sunny-tech-2026",
"ticketsCount": 18,
"available": true,
"soldOut": true,
"highlighted": false
"available": false,
"soldOut": false,
"highlighted": false,
"message": "La billetterie ouvrira bientôt, inscrivez-vous à la newsletter pour en être les premiers informés !"
},
{
"id": "default2",
"name": "Standard",
"price": 100,
"url": "http://billetweb.fr/sunny-tech-2025",
"ticketsCount": 300,
"available": true,
"price": 110,
"url": "https://www.billetweb.fr/sunny-tech-2026",
"ticketsCount": 280,
"available": false,
"soldOut": false,
"highlighted": false,
"message": "Billetterie soldout, mais inscrivez-vous à la liste d'attente, on sait jamais :)"
"message": "La billetterie ouvrira bientôt, inscrivez-vous à la newsletter pour en être les premiers informés !\n100 places disponibles pour la Vague 1 le mardi 27 janvier à 10h\n100 places disponibles pour la Vague 2 le mercredi 15 avril à 20h30\n80 places disponibles pour la Vague 3 le samedi 25 avril à 14h",
"displayNewsletterRegistration": true
}
]