Update tickets section

This commit is contained in:
tree🌴 2023-02-21 17:36:29 +01:00
parent cee2fee853
commit 91eedce35f
3 changed files with 31 additions and 18 deletions

View file

@ -51,19 +51,21 @@ themes:
- title: Veksl - title: Veksl
desc: Easy onboarding to cryptocurrencies without KYC/AML using peer-to-peer tools is crucial for privacy. What options do we have today? desc: Easy onboarding to cryptocurrencies without KYC/AML using peer-to-peer tools is crucial for privacy. What options do we have today?
ticketsIntro: Be a part of the first Web3Privacy Summit experience… ticketsIntro: Be a part of the first Web3Privacy Summit experience…
ticketsNote: Tickets will go on sale in early March 2023. ticketsNote: Tickets will go on sale in late February 2023.
ticketing: false
ticketingUrl: https://tickets.web3privacy.info/w3ps1/
tickets: tickets:
- title: All-day Access - title: All-day Access
price: 2350 CZK (~99 EUR) price: €99
includes: includes:
- All talks & panels - All talks & panels
- Coffee breaks - Coffee breaks
- Buffet lunch - Buffet lunch
- Networking drinks with speakers & attendees - Networking drinks with speakers & attendees
hint: | hint: |
[Apply for a discount →](https://tally.so/r/mYPDJW)<br />(as independent developer, student, privacy advocate, open-source contributor..) [Apply for a discount →](https://attend.web3privacy.info)<br />(as independent developer, student, privacy advocate, open-source contributor..)
- title: "#Lunarpunk Party" - title: "#Lunarpunk Party"
price: 350 CZK (~15 EUR) price: €15
includes: includes:
- 8pm - morning - 8pm - morning
- Prague rave from top DJs - Prague rave from top DJs
@ -84,7 +86,7 @@ faq:
- title: When will tickets go on sale? What will be the payment options? - title: When will tickets go on sale? What will be the payment options?
text: Tickets will go on sale in early March 2023. Payment will be possible via credit card, Bitcoin (on-chain), Lightning Network or possibly other cryptocurrencies. text: Tickets will go on sale in early March 2023. Payment will be possible via credit card, Bitcoin (on-chain), Lightning Network or possibly other cryptocurrencies.
- title: All-day access ticket is expensive for me. Do you offer any discounts? - title: All-day access ticket is expensive for me. Do you offer any discounts?
text: Yes, we do! We offer discounts (up to 75%) for independent developers, students and especially active privacy advocates or open-source contributors to private protocols or tools. If you are interested in a discount, please fill out [this form](https://tally.so/r/mYPDJW). text: Yes, we do! We offer discounts (up to 75%) for independent developers, students and especially active privacy advocates or open-source contributors to private protocols or tools. If you are interested in a discount, please fill out [this form](https://attend.web3privacy.info).
- title: Why event isn't admission free? - title: Why event isn't admission free?
text: We would like to have most of the cost of the event covered by admission fees directly from visitors. We want to be independent of sponsors and reduce the pressure to make it a "sales" or marketing event. text: We would like to have most of the cost of the event covered by admission fees directly from visitors. We want to be independent of sponsors and reduce the pressure to make it a "sales" or marketing event.
- title: How do I get to the venue? - title: How do I get to the venue?

View file

@ -16,8 +16,9 @@
{ title: 'Speakers', url: '#speakers' }, { title: 'Speakers', url: '#speakers' },
{ title: 'Program', url: '#program' }, { title: 'Program', url: '#program' },
{ title: 'Sponsors', url: '#sponsors' }, { title: 'Sponsors', url: '#sponsors' },
{ title: 'FAQ', url: '#faq' },
{ title: 'Ticket', url: '#ticket', class: 'button' }, { title: 'Ticket', url: '#ticket', class: 'button' },
{ title: 'FAQ', url: '#faq' },
{ title: 'Chat', url: 'https://chat.web3privacy.info', external: true },
]; ];
const homepageAnimation = () => { const homepageAnimation = () => {
@ -36,6 +37,7 @@
} }
const arr = [] const arr = []
for (const mi of menu) { for (const mi of menu) {
if (mi.external) continue;
const el = document.getElementById(mi.title.toLowerCase()) const el = document.getElementById(mi.title.toLowerCase())
const pos = el.getBoundingClientRect() const pos = el.getBoundingClientRect()
//console.log(mi.title, pos.top, pos.bottom) //console.log(mi.title, pos.top, pos.bottom)
@ -66,13 +68,13 @@
</script> </script>
<div class="relative w-full min-h-screen text-white"> <div class="relative w-full min-h-screen text-white">
<div class="fixed w-full h-18 bg-black pt-2 pb-2 z-40"> <div class="fixed w-full h-18 bg-black pt-2 pb-2 z-40">
<div class="middle-pane-big bg-black"> <div class="middle-pane-big bg-black">
<div class="flex"> <div class="flex">
<div class="flex items-center gap-4 grow"> <div class="flex items-center gap-4 grow">
<div class="w-16 py-2"> <div class="w-16 py-2">
<a href={data.config.parentUrl}><img src={data.config.logo} alt={data.config.parent} /></a> <a href={data.config.parentUrl} target="_blank"><img src={data.config.logo} alt={data.config.parent} /></a>
</div> </div>
<!--h1 class="text-2xl uppercase">{data.config.title}</h1--> <!--h1 class="text-2xl uppercase">{data.config.title}</h1-->
</div> </div>
@ -80,7 +82,7 @@
<button class="md:hidden text-3xl" on:click={(ev) => (navbar = !navbar)}>☰</button> <button class="md:hidden text-3xl" on:click={(ev) => (navbar = !navbar)}>☰</button>
{#each menu.filter(i => !i.hidden) as mi} {#each menu.filter(i => !i.hidden) as mi}
<div class="hidden md:block"> <div class="hidden md:block">
<a class="{mi.class ? mi.class : 'hover:underline'} {choosed && mi.url === choosed[0].url ? 'font-bold underline' : null}" href={mi.url} on:mouseenter={animateText} on:click={handleAnchorClick}> <a class="{mi.class ? mi.class : 'hover:underline'} {choosed && mi.url === choosed[0].url ? 'font-bold underline' : null} {mi.external ? 'external' : ''}" href={mi.url} on:mouseenter={animateText} on:click={!mi.external ? handleAnchorClick : null} target={mi.external ? '_blank' : ''}>
{mi.name?.toUpperCase() || mi.title.toUpperCase()} {mi.name?.toUpperCase() || mi.title.toUpperCase()}
</a> </a>
</div> </div>
@ -142,7 +144,7 @@
/> />
</svg> </svg>
</a> </a>
<a href="https://twitter.com/{data.config.twitter}" class="text-2xl no-underline hover:underline"> <a href="https://twitter.com/{data.config.twitter}" class="text-2xl no-underline hover:underline external" target="_blank">
@{data.config.twitter} @{data.config.twitter}
</a> </a>
</div> </div>

View file

@ -2,6 +2,7 @@
import SvelteMarkdown from 'svelte-markdown'; import SvelteMarkdown from 'svelte-markdown';
import PeopleList from '$lib/components/PeopleList.svelte'; import PeopleList from '$lib/components/PeopleList.svelte';
import { animateText } from '$lib/helpers'; import { animateText } from '$lib/helpers';
import { goto } from '$app/navigation';
export let data; export let data;
@ -103,7 +104,7 @@
<div class="middle-pane-medium pt-16 text-xl text-center mx-auto pb-32"> <div class="middle-pane-medium pt-16 text-xl text-center mx-auto pb-32">
<div class="section-header" on:mouseenter={animateText}>Sponsors</div> <div class="section-header" on:mouseenter={animateText}>Sponsors</div>
<div> <div>
<a href={data.config.sponsorUrl} target="_blank" <a href={data.config.sponsorUrl}
><button ><button
class="py-2 px-5 bg-white text-black hover:bg-black border border-bg-white hover:text-white" on:mouseenter={animateText} class="py-2 px-5 bg-white text-black hover:bg-black border border-bg-white hover:text-white" on:mouseenter={animateText}
>Become a Sponsor</button >Become a Sponsor</button
@ -120,18 +121,17 @@
<div class="grid lg:grid-cols-2 gap-10 md:w-2/3 mx-auto"> <div class="grid lg:grid-cols-2 gap-10 md:w-2/3 mx-auto">
{#each data.config.tickets as tt} {#each data.config.tickets as tt}
<div <div
class="bg-[#0d1117] hover:border-0 py-10 px-10 hover:text-black hover:bg-white" on:mouseenter={animateSection(40)} class="bg-[#0d1117] hover:border-0 py-10 px-10 hover:text-black hover:bg-white {data.config.ticketing ? "cursor-pointer" : ""}"
on:mouseenter={animateSection(40)}
on:click={() => data.config.ticketing ? goto(data.config.ticketingUrl) : false}
> >
<div class="text-3xl uppercase animate-section">{tt.title}</div> <div class="text-3xl uppercase"><a href={data.config.ticketingUrl} class="animate-section">{tt.title}</a></div>
<div class="text-xl mt-6 font-bold animate-section">{tt.price}</div> <div class="text-xl mt-6 font-bold"><a href={data.config.ticketingUrl}>{tt.price}</a></div>
<ul class="mt-6 text-lg text-left list-disc px-6"> <ul class="mt-6 text-lg text-left list-disc px-6">
{#each tt.includes as ti} {#each tt.includes as ti}
<li>{ti}</li> <li>{ti}</li>
{/each} {/each}
</ul> </ul>
<!--div class="mt-6">
<a href="/"><button class="py-2 px-5 bg-white text-black">Buy {tt.title} ticket</button></a>
</div-->
{#if tt.note} {#if tt.note}
<div class="mt-10 text-base">{tt.note}</div> <div class="mt-10 text-base">{tt.note}</div>
{/if} {/if}
@ -141,7 +141,16 @@
</div> </div>
{/each} {/each}
</div> </div>
<div class="mt-8 text-xl">{data.config.ticketsNote}</div> {#if data.config.ticketing}
<div class="mt-10">
<a href={data.config.ticketingUrl}><button
class="py-2 px-5 bg-white text-black hover:bg-black border border-bg-white hover:text-white" on:mouseenter={animateText}
>Buy a ticket</button></a>
</div>
{/if}
{#if data.config.ticketsNote}
<div class="mt-8 text-xl">{data.config.ticketsNote}</div>
{/if}
</div> </div>
</div> </div>