mirror of
https://github.com/supabase/supabase.git
synced 2026-10-18 07:39:07 +03:00
* duplicate page * whale init * table background * prepare * sync undocumented remote schema from master * revert remote schema sync * add lw12 tickets migration file * ticket init * set up lw12 ticket layout * finish ticket layout and customization form * lw12 ticket og * ticket styling * code highlight border * launch week migrations * local dev progress * keep local gh config * comment section * comment section * comment out username.tsx * remove lw/ticekts temp * update copy * fix migration view * redirect to try * use misc * lw12 og * share * share correct * env var * username page * update example env * push new db schema * trigger deploy * update ticket og * ticket themes * bypass browser * change env var name * fix * fix * process env * create client server side * lw announcements * promoToast * animated bg * update ticket og bg * minor details * secret ticket * social share text * social share textgst * flow text * update og * update og handler * Update index.ts * use functions.invoke and use generic supabase URL * Update index.ts * Update handler.tsx * Update package-lock.json * Update handler.tsx * add next api route * moved to vercel edge function * set revalidate * Update route.tsx * Delete lw-ticket-og.tsx * Update route.tsx * Update [username].tsx * Update [username].tsx * add more fetches * Update turbo.json * ticket themes updated * copy and layout updated * Update index.tsx * Update Ticket.tsx * Update TicketingFlow.tsx * update countdown * updated bg * small updates * moat * Update [username].tsx * Update 20240723155310_add_lw12_ticketing_schema.sql * optimistic ticket stuff og generation * Update index.tsx * updated layout * update themes in og * Update constants.ts * attr renamed * Update TicketingFlow.tsx * Update TicketActions.tsx * grammar * moar updates * Update TicketActions.tsx * Update TicketActions2.tsx * Update TicketActions.tsx * Update Hero.tsx * Update TicketingFlow.tsx * remove console logs --------- Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import { Session, SupabaseClient } from '@supabase/supabase-js'
|
|
import { createContext, useContext } from 'react'
|
|
|
|
export type TicketState = 'registration' | 'ticket' | 'loading' | 'game'
|
|
|
|
export type UserData = {
|
|
id?: string
|
|
email?: string
|
|
username?: string
|
|
name?: string
|
|
ticket_number?: number
|
|
platinum?: boolean
|
|
golden?: boolean
|
|
referrals?: number
|
|
bg_image_id?: number
|
|
role?: string
|
|
company?: string
|
|
location?: string
|
|
metadata?: {
|
|
role?: string
|
|
company?: string
|
|
location?: string
|
|
hasSecretTicket?: boolean
|
|
hasSharedSecret?: boolean
|
|
hideAvatar?: boolean
|
|
hideMetadata?: boolean
|
|
}
|
|
shared_on_twitter?: string
|
|
shared_on_linkedin?: string
|
|
secret?: boolean
|
|
}
|
|
|
|
type ConfDataContextType = {
|
|
supabase: SupabaseClient | null
|
|
session: Session | null
|
|
userData: UserData
|
|
setUserData: React.Dispatch<React.SetStateAction<UserData>>
|
|
ticketState: TicketState
|
|
setTicketState: React.Dispatch<React.SetStateAction<TicketState>>
|
|
showCustomizationForm?: boolean
|
|
setShowCustomizationForm?: React.Dispatch<React.SetStateAction<boolean>>
|
|
}
|
|
|
|
export const ConfDataContext = createContext<ConfDataContextType | null>(null)
|
|
|
|
export default function useConfData() {
|
|
const result = useContext(ConfDataContext)
|
|
if (!result) {
|
|
throw new Error()
|
|
}
|
|
return result
|
|
}
|