Files
Jonathan Summers-MuirandFrancesco Sansalvadore 1f1f8a5fa4 Feat/whale init (#28243)
* 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>
2024-08-01 01:59:01 +08:00

62 lines
2.1 KiB
TypeScript

import React, { useState } from 'react'
// import TicketHeader from '../Ticket/TicketHeader'
// import TicketNumber from '../Ticket/TicketNumber'
import { UserData } from '~/components/LaunchWeek/hooks/use-conf-data'
import Image from 'next/image'
interface Props {
user: UserData
}
export function TicketBrick({ user }: Props) {
const [isLoading, setLoading] = useState(true)
const golden = user.shared_on_linkedin && user.shared_on_twitter
// reg_bg_57.png
const baseImagePath = `https://obuldanrptloktxcffvn.supabase.co/storage/v1/object/public/images/lw7/tickets_bg/`
const randomNumber = Math.floor(Math.random() * 200) + 1
const goldRandomNumber = Math.floor(Math.random() * 56) + 1
return (
<>
<div
key={user.name}
className="relative w-[450px] h-[230px] border border-red-100 rounded-2xl overflow-hidden"
>
<Image
src={
golden
? `${baseImagePath}/reg_bg_${randomNumber}.png`
: `${baseImagePath}/gold/gold_bg_${goldRandomNumber}.png`
}
layout="fill"
objectFit="cover"
className={[
'duration-700 ease-in-out',
isLoading ? 'grayscale blur-2xl scale-110' : 'grayscale-0 blur-0 scale-100',
].join(' ')}
onLoadingComplete={() => setLoading(false)}
alt=""
/>
<div className="z-20 relative">
{/* <TicketHeader size="small" /> */}
<div className="rounded-full grid gap-4 mx-auto justify-center mt-8">
<img
src={`https://github.com/${user.username}.png`}
alt={user.username}
className="w-20 h-20 rounded-full mx-auto"
/>
<div className="text-center">
<h3 className="gradient-text-100 text-xl">{user.name ? user.name : user.username}</h3>
{user.name && <p className="gradient-text-100 text-sm">@{user.username}</p>}
</div>
</div>
{/* <TicketNumber number={user.ticketNumber} size="small" /> */}
</div>
</div>
</>
)
}