This commit is contained in:
Francesco Sansalvadore committed 2024-11-15 17:05:42 -04:00
1 parent 336837af22
commit 8dc3645ec7
5 files changed
+10 -192

No files matched your search

@@ -10,10 +10,10 @@ import {
import useConfData from '~/components/LaunchWeek/hooks/use-conf-data'
import { v4 as uuidv4 } from 'uuid'
import { useTheme } from 'next-themes'
import { getColor } from './Multiplayer/randomColor'
import { Coordinates, Payload, User } from './Multiplayer/types'
import { getColor } from './randomColor'
import { Coordinates, Payload, User } from './types'
import { cloneDeep, throttle } from 'lodash'
import Cursor from './Multiplayer/Cursor'
import Cursor from './Cursor'
/**
* [x] multiplayer cursors
@@ -4,10 +4,10 @@ import { useEffect, useRef, useState, useCallback } from 'react'
import useConfData from '~/components/LaunchWeek/hooks/use-conf-data'
import { v4 as uuidv4 } from 'uuid'
import { useTheme } from 'next-themes'
import { INTERACTIVE_GRID_COLORS } from './InteractiveGridParty'
import Cursor from './Multiplayer/Cursor'
import { getColor } from './Multiplayer/randomColor'
import { Coordinates } from './Multiplayer/types'
import { INTERACTIVE_GRID_COLORS } from './CanvasPartyMode'
import Cursor from './Cursor'
import { getColor } from './randomColor'
import { Coordinates } from './types'
const GRID_SIZE = 100
const CELL_SIZE = 40
@@ -5,8 +5,8 @@ import { DEFAULT_TRANSITION, INITIAL_BOTTOM, getAnimation } from '~/lib/animatio
import { LW13_DATE, LW13_LAUNCH_DATE } from '~/lib/constants'
import CountdownComponent from '~/components/LaunchWeek/13/Countdown'
import InteractiveGridParty from '~/components/LaunchWeek/13/InteractiveGridParty'
import InteractiveGridSingle from '~/components/LaunchWeek/13/InteractiveGridSingle'
import CanvasPartyMode from '~/components/LaunchWeek/13/Multiplayer/CanvasPartyMode'
import CanvasSingleMode from '~/components/LaunchWeek/13/Multiplayer/CanvasSingleMode'
import MetalTicket from '~/components/LaunchWeek/13/MetalTicket'
import SectionContainer from '~/components/Layouts/SectionContainer'
import useConfData from '~/components/LaunchWeek/hooks/use-conf-data'
@@ -171,7 +171,7 @@ const TicketingFlow = () => {
</LazyMotion>
</div>
</SectionContainer>
{isPartyMode ? <InteractiveGridParty /> : <InteractiveGridSingle />}
{isPartyMode ? <CanvasPartyMode /> : <CanvasSingleMode />}
{hasTicket && (
<MetalTicket
username={DISPLAY_NAME ?? ''}
@@ -1,91 +0,0 @@
import { useState, useEffect } from 'react'
import { useRouter } from 'next/router'
import { NextSeo } from 'next-seo'
import { Session } from '@supabase/supabase-js'
import { LW12_DATE, LW12_TITLE, LW_URL, SITE_ORIGIN } from '~/lib/constants'
import supabase from '~/lib/supabase'
import DefaultLayout from '~/components/Layouts/Default'
import { TicketState, ConfDataContext, UserData } from '~/components/LaunchWeek/hooks/use-conf-data'
import InteractiveGrid from '~/components/LaunchWeek/13/InteractiveGridParty'
export default function LaunchWeekIndex() {
const { query } = useRouter()
const TITLE = `${LW12_TITLE} | ${LW12_DATE}`
const DESCRIPTION = 'Join us for a week of announcing new features, every day at 7 AM PT.'
const OG_IMAGE = `${SITE_ORIGIN}/images/launchweek/12/lw12-og.png?lw=12`
const ticketNumber = query.ticketNumber?.toString()
const [session, setSession] = useState<Session | null>(null)
const [showCustomizationForm, setShowCustomizationForm] = useState<boolean>(false)
const defaultUserData = {
id: query.id?.toString(),
ticket_number: ticketNumber ? parseInt(ticketNumber, 10) : undefined,
name: query.name?.toString(),
username: query.username?.toString(),
platinum: !!query.platinum,
}
const [userData, setUserData] = useState<UserData>(defaultUserData)
const [ticketState, setTicketState] = useState<TicketState>('loading')
useEffect(() => {
if (supabase) {
supabase.auth.getSession().then(({ data: { session } }) => setSession(session))
const {
data: { subscription },
} = supabase.auth.onAuthStateChange((_event, session) => {
setSession(session)
})
return () => subscription.unsubscribe()
}
}, [supabase])
useEffect(() => {
if (session?.user) {
if (userData?.id) {
return setTicketState('ticket')
}
return setTicketState('loading')
}
if (!session) return setTicketState('registration')
}, [session, userData])
return (
<>
<NextSeo
title={TITLE}
description={DESCRIPTION}
openGraph={{
title: TITLE,
description: DESCRIPTION,
url: LW_URL,
images: [
{
url: OG_IMAGE,
},
],
}}
/>
<ConfDataContext.Provider
value={{
supabase,
session,
userData,
setUserData,
ticketState,
setTicketState,
showCustomizationForm,
setShowCustomizationForm,
}}
>
<DefaultLayout>
<InteractiveGrid />
</DefaultLayout>
</ConfDataContext.Provider>
</>
)
}
@@ -1,91 +0,0 @@
import { useState, useEffect } from 'react'
import { useRouter } from 'next/router'
import { NextSeo } from 'next-seo'
import { Session } from '@supabase/supabase-js'
import { LW12_DATE, LW12_TITLE, LW_URL, SITE_ORIGIN } from '~/lib/constants'
import supabase from '~/lib/supabase'
import DefaultLayout from '~/components/Layouts/Default'
import { TicketState, ConfDataContext, UserData } from '~/components/LaunchWeek/hooks/use-conf-data'
import MetalTicket from '~/components/LaunchWeek/13/MetalTicket'
export default function LaunchWeekIndex() {
const { query } = useRouter()
const TITLE = `${LW12_TITLE} | ${LW12_DATE}`
const DESCRIPTION = 'Join us for a week of announcing new features, every day at 7 AM PT.'
const OG_IMAGE = `${SITE_ORIGIN}/images/launchweek/12/lw12-og.png?lw=12`
const ticketNumber = query.ticketNumber?.toString()
const [session, setSession] = useState<Session | null>(null)
const [showCustomizationForm, setShowCustomizationForm] = useState<boolean>(false)
const defaultUserData = {
id: query.id?.toString(),
ticket_number: ticketNumber ? parseInt(ticketNumber, 10) : undefined,
name: query.name?.toString(),
username: query.username?.toString(),
platinum: !!query.platinum,
}
const [userData, setUserData] = useState<UserData>(defaultUserData)
const [ticketState, setTicketState] = useState<TicketState>('loading')
useEffect(() => {
if (supabase) {
supabase.auth.getSession().then(({ data: { session } }) => setSession(session))
const {
data: { subscription },
} = supabase.auth.onAuthStateChange((_event, session) => {
setSession(session)
})
return () => subscription.unsubscribe()
}
}, [supabase])
useEffect(() => {
if (session?.user) {
if (userData?.id) {
return setTicketState('ticket')
}
return setTicketState('loading')
}
if (!session) return setTicketState('registration')
}, [session, userData])
return (
<>
<NextSeo
title={TITLE}
description={DESCRIPTION}
openGraph={{
title: TITLE,
description: DESCRIPTION,
url: LW_URL,
images: [
{
url: OG_IMAGE,
},
],
}}
/>
<ConfDataContext.Provider
value={{
supabase,
session,
userData,
setUserData,
ticketState,
setTicketState,
showCustomizationForm,
setShowCustomizationForm,
}}
>
<DefaultLayout>
<MetalTicket username="Francesco Sansalvadore" />
</DefaultLayout>
</ConfDataContext.Provider>
</>
)
}