mirror of
https://github.com/supabase/supabase.git
synced 2026-10-18 15:49:09 +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>
78 lines
2.7 KiB
TypeScript
78 lines
2.7 KiB
TypeScript
'use client'
|
|
|
|
import Image from 'next/image'
|
|
import Link from 'next/link'
|
|
import { useEffect, useState } from 'react'
|
|
import { cn } from 'ui/src/lib/utils/cn'
|
|
import { Button } from 'ui/src/components/Button/Button'
|
|
import { LOCAL_STORAGE_KEYS } from 'common'
|
|
import CountdownComponent from 'ui/src/layout/banners/LW12CountdownBanner/Countdown'
|
|
import announcement from 'ui/src/layout/banners/data/Announcement.json'
|
|
import { useTheme } from 'next-themes'
|
|
|
|
const LW12BGDark =
|
|
'https://xguihxuzqibwxjnimxev.supabase.co/storage/v1/object/public/images/launch-week/lw12/assets/bg-dark.svg?t=2024-07-26T09%3A59%3A25.373Z'
|
|
const LW12BGLight =
|
|
'https://xguihxuzqibwxjnimxev.supabase.co/storage/v1/object/public/images/launch-week/lw12/assets/bg-light.svg?t=2024-07-26T09%3A59%3A25.373Z'
|
|
|
|
const PromoToast = () => {
|
|
const [visible, setVisible] = useState(false)
|
|
const { resolvedTheme } = useTheme()
|
|
const bgImage = resolvedTheme?.includes('dark') ? LW12BGDark : LW12BGLight
|
|
|
|
useEffect(() => {
|
|
const shouldHide =
|
|
!localStorage?.getItem(LOCAL_STORAGE_KEYS.TELEMETRY_CONSENT) ||
|
|
localStorage?.getItem(LOCAL_STORAGE_KEYS.HIDE_PROMO_TOAST) === 'true'
|
|
|
|
if (!shouldHide) {
|
|
setVisible(true)
|
|
}
|
|
}, [])
|
|
|
|
const handleHide = () => {
|
|
setVisible(false)
|
|
localStorage?.setItem(LOCAL_STORAGE_KEYS.HIDE_PROMO_TOAST, 'true')
|
|
}
|
|
|
|
if (!visible) return null
|
|
|
|
return (
|
|
<div
|
|
className={cn(
|
|
'opacity-0 translate-y-3 transition-all grid gap-3 fixed z-50 bottom-4 right-4 sm:bottom-8 sm:right-8 w-[calc(100vw-2rem)] sm:w-[320px] bg-alternative hover:bg-alternative border border-default rounded p-6 shadow-lg overflow-hidden',
|
|
visible && 'opacity-100 translate-y-0'
|
|
)}
|
|
>
|
|
<p className="relative z-10 text-foreground flex flex-col text-xl w-full leading-7">
|
|
Launch Week 12
|
|
</p>
|
|
<div className="relative z-10 text-foreground-lighter uppercase flex flex-col text-sm w-full font-mono mb-2">
|
|
<span>AUGUST 12-16 / 7AM PT</span>
|
|
<CountdownComponent date={new Date(announcement.launchDate)} showCard={false} />
|
|
</div>
|
|
|
|
<div className="relative z-10 flex items-center space-x-2">
|
|
<Button asChild type="secondary">
|
|
<Link target="_blank" rel="noreferrer" href="https://supabase.com/launch-week">
|
|
Claim your ticket
|
|
</Link>
|
|
</Button>
|
|
<Button type="default" onClick={handleHide}>
|
|
Dismiss
|
|
</Button>
|
|
</div>
|
|
<Image
|
|
src={bgImage}
|
|
alt=""
|
|
fill
|
|
sizes="100%"
|
|
aria-hidden
|
|
className="absolute not-sr-only object-cover z-0 inset-0 w-full h-auto"
|
|
/>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default PromoToast
|