mirror of
https://github.com/supabase/supabase.git
synced 2026-10-19 16:19:10 +03:00
* init site * add nav menu * add props table component * init all the examples • also includes moving a bunch of ./ui files to ./ui-patterns * update package • might need to remove some of these * Update rehype-component.ts * move nav * more changes * add new source information to contentlayer * fix copy buttons * add text-confirm. start new concept of "fragments" * move base path. add homepage. add theme selection * added colors * add form-item-layout * temporary fix code blocks in light mode. they currently don't switch theme to theme * start adding code themes * Update dark.json * update code block themes * fix animations * add cdmk search * export registry of icons in ./icons package * add comments * add icon copy stuff * Update icons.tsx * more docs * more docs. cleaned up colors and icons docs * Update theming.mdx * add more docs * update * add package * Update tailwind.config.js * update content * Update drawer-demo.tsx * Update aspect-ratio-demo.tsx * add new blocks * Update source-panel.tsx * Update source-panel.tsx * Update source-panel.tsx * add new source block * Update source-panel.tsx * Update _app.tsx * Update page.tsx * Delete layout-old.tsx * remove old themes * remove old ui registry * comment out nav items * Update package-lock.json * Update AssistantChatForm.tsx * move back * move again * update * Update index.tsx * Update package-lock.json * Update package-lock.json * Update package-lock.json * update package * udpate prettier * fix tag issues * Update package-lock.json * update to contentlayer2 * update package-lock.json * fix type errors * ignore spelling * Update avoid-typos.yml * Update avoid-typos.yml * Update package-lock.json * Use ui type definitions. * move tsconfig base stuff. fix content layer issue * Update package-lock.json * Update package-lock.json --------- Co-authored-by: Alaister Young <a@alaisteryoung.com> Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
76 lines
2.5 KiB
TypeScript
76 lines
2.5 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/LW11CountdownBanner/Countdown'
|
|
import announcement from 'ui/src/layout/banners/data/Announcement.json'
|
|
import { useTheme } from 'next-themes'
|
|
|
|
const LW11BGDark =
|
|
'https://obuldanrptloktxcffvn.supabase.co/storage/v1/object/public/images/lw11/assets/backgrounds/regular/001.png'
|
|
const LW11BGLight =
|
|
'https://obuldanrptloktxcffvn.supabase.co/storage/v1/object/public/images/lw11/assets/backgrounds/platinum/001.png'
|
|
|
|
const PromoToast = () => {
|
|
const [visible, setVisible] = useState(false)
|
|
const { resolvedTheme } = useTheme()
|
|
const bgImage = resolvedTheme?.includes('dark') ? LW11BGDark : LW11BGLight
|
|
|
|
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'
|
|
)}
|
|
>
|
|
<div className="relative z-10 text-foreground-lighter flex flex-col text-sm w-full mb-2">
|
|
<p className="text-foreground flex flex-col text-lg w-full leading-6 mb-1">
|
|
General Availability Week
|
|
</p>
|
|
</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/ga-week">
|
|
Learn more
|
|
</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
|