mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 09:55:06 +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>
46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
import { useEffect } from 'react'
|
|
import { useTheme } from 'next-themes'
|
|
import { useRouter } from 'next/router'
|
|
import useDarkLaunchWeeks from '../hooks/useDarkLaunchWeeks'
|
|
|
|
export function useForceDeepDark() {
|
|
const router = useRouter()
|
|
const { resolvedTheme, theme } = useTheme()
|
|
|
|
const isDarkTheme = resolvedTheme?.includes('dark')
|
|
const forceDarkMode = router.pathname === '/' || useDarkLaunchWeeks()
|
|
const isGaSection = router.pathname.includes('/ga-week') || router.pathname === '/ga'
|
|
|
|
useEffect(() => {
|
|
const handleDocumentLoad = () => {
|
|
// Update the HTML element attributes
|
|
const theme = forceDarkMode || isDarkTheme ? 'dark' : 'light'
|
|
|
|
document.documentElement.setAttribute('data-theme', theme)
|
|
document.documentElement.style.colorScheme = theme
|
|
|
|
// wait before setting the theme
|
|
setTimeout(() => {
|
|
document.documentElement.setAttribute('data-theme', theme)
|
|
document.documentElement.style.colorScheme = theme
|
|
}, 200)
|
|
|
|
// Clean up the event listener
|
|
window.removeEventListener('load', handleDocumentLoad)
|
|
}
|
|
|
|
// Check if document is already loaded
|
|
if (document.readyState === 'complete') {
|
|
handleDocumentLoad()
|
|
} else {
|
|
// Add a global load event listener
|
|
window.addEventListener('load', handleDocumentLoad)
|
|
}
|
|
|
|
// Clean up the event listener on component unmount
|
|
return () => {
|
|
window.removeEventListener('load', handleDocumentLoad)
|
|
}
|
|
}, [resolvedTheme, theme, isDarkTheme, router])
|
|
}
|