diff --git a/apps/www/components/LaunchWeek/12/LWSummary.tsx b/apps/www/components/LaunchWeek/12/LWSummary.tsx index 2a50107df3a..02cc16d1a02 100644 --- a/apps/www/components/LaunchWeek/12/LWSummary.tsx +++ b/apps/www/components/LaunchWeek/12/LWSummary.tsx @@ -9,7 +9,7 @@ const LW11Summary = () => {
Launch Week diff --git a/apps/www/components/LaunchWeek/13/Releases/LWSummary.tsx b/apps/www/components/LaunchWeek/13/Releases/LWSummary.tsx index c0b20d9b064..eb095b410eb 100644 --- a/apps/www/components/LaunchWeek/13/Releases/LWSummary.tsx +++ b/apps/www/components/LaunchWeek/13/Releases/LWSummary.tsx @@ -9,7 +9,7 @@ const LW13Summary = () => {
Launch Week diff --git a/apps/www/components/LaunchWeek/14/Releases/LWSummary.tsx b/apps/www/components/LaunchWeek/14/Releases/LWSummary.tsx index cc6d67f678d..44d0fd7eb26 100644 --- a/apps/www/components/LaunchWeek/14/Releases/LWSummary.tsx +++ b/apps/www/components/LaunchWeek/14/Releases/LWSummary.tsx @@ -14,7 +14,7 @@ const LW14Summary = () => { >
Launch Week 14 diff --git a/apps/www/components/Nav/index.tsx b/apps/www/components/Nav/index.tsx index 9906b423282..565e481b9a3 100644 --- a/apps/www/components/Nav/index.tsx +++ b/apps/www/components/Nav/index.tsx @@ -43,19 +43,10 @@ const Nav = ({ hideNavbar, stickyNavbar = true }: Props) => { const sendTelemetryEvent = useSendTelemetryEvent() const userMenu = useDropdownMenu(user) - const isLaunchWeekXPage = pathname === '/launch-week/x' - const isLaunchWeek12Page = pathname === '/launch-week/12' - const isLaunchWeek13Page = pathname === '/launch-week/13' const isGAWeekSection = pathname?.startsWith('/ga-week') const isStateOfStartupsPage = pathname?.startsWith('/state-of-startups') - const disableStickyNav = - isLaunchWeekXPage || - isGAWeekSection || - isLaunchWeekXPage || - isLaunchWeek12Page || - isLaunchWeek13Page || - !stickyNavbar - const showLaunchWeekNavMode = (isGAWeekSection || isLaunchWeekXPage) && !open + const disableStickyNav = isGAWeekSection || !stickyNavbar + const showLaunchWeekNavMode = isGAWeekSection && !open const [scrolled, setScrolled] = React.useState(false) React.useEffect(() => { diff --git a/apps/www/hooks/useDarkLaunchWeeks.tsx b/apps/www/hooks/useDarkLaunchWeeks.tsx index 2717fb98298..b0212240afe 100644 --- a/apps/www/hooks/useDarkLaunchWeeks.tsx +++ b/apps/www/hooks/useDarkLaunchWeeks.tsx @@ -7,9 +7,8 @@ const useDarkLaunchWeeks = () => { const isLaunchWeek7 = pathname?.startsWith('/launch-week/7') const isLaunchWeek8 = pathname?.startsWith('/launch-week/8') - const isLaunchWeekX = pathname?.startsWith('/launch-week/x') - return isLaunchWeek7 || isLaunchWeek8 || isLaunchWeekX + return isLaunchWeek7 || isLaunchWeek8 } export default useDarkLaunchWeeks diff --git a/apps/www/lib/redirects.js b/apps/www/lib/redirects.js index 7aebc0c9000..29839256f39 100644 --- a/apps/www/lib/redirects.js +++ b/apps/www/lib/redirects.js @@ -2942,6 +2942,26 @@ module.exports = [ source: '/launch-week/6', destination: '/blog/launch-week-6-wrap-up', }, + { + permanent: true, + source: '/launch-week/x', + destination: '/blog/launch-week-x-best-launches', + }, + { + permanent: true, + source: '/launch-week/12', + destination: '/blog/launch-week-12-top-10', + }, + { + permanent: true, + source: '/launch-week/13', + destination: '/blog/launch-week-13-top-10', + }, + { + permanent: true, + source: '/launch-week/14', + destination: '/blog/launch-week-14-top-10', + }, { permanent: true, source: '/docs/guides/platform/enterprise-billing', diff --git a/apps/www/pages/_app.tsx b/apps/www/pages/_app.tsx index 6c31fa3419d..42538c5fa4d 100644 --- a/apps/www/pages/_app.tsx +++ b/apps/www/pages/_app.tsx @@ -46,15 +46,9 @@ export default function App({ Component, pageProps }: AppProps) { const isDarkLaunchWeek = useDarkLaunchWeeks() const forceDarkMode = isDarkLaunchWeek - let applicationName = 'Supabase' - let faviconRoute = DEFAULT_FAVICON_ROUTE - let themeColor = DEFAULT_FAVICON_THEME_COLOR - - if (router.asPath?.includes('/launch-week/x')) { - applicationName = 'Supabase LWX' - faviconRoute = 'images/launchweek/lwx/favicon' - themeColor = 'FFFFFF' - } + const applicationName = 'Supabase' + const faviconRoute = DEFAULT_FAVICON_ROUTE + const themeColor = DEFAULT_FAVICON_THEME_COLOR // Advertise the .md version for AI agents on pages that have one. const cleanPath = (router.asPath ?? '/').split('?')[0].split('#')[0].replace(/\/$/, '') || '/' diff --git a/apps/www/pages/launch-week/12/index.tsx b/apps/www/pages/launch-week/12/index.tsx deleted file mode 100644 index fe852f3e175..00000000000 --- a/apps/www/pages/launch-week/12/index.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import { useState, useEffect } from 'react' -import dynamic from 'next/dynamic' -import { useRouter } from 'next/router' -import { NextSeo } from 'next-seo' -import { Session } from '@supabase/supabase-js' -import { LW12_DATE, LW12_TITLE, LW_URL, SITE_ORIGIN } from '~/lib/constants' -import supabase from '~/lib/supabase' - -import DefaultLayout from '~/components/Layouts/Default' -import { TicketState, ConfDataContext, UserData } from '~/components/LaunchWeek/hooks/use-conf-data' -import SectionContainer from '~/components/Layouts/SectionContainer' -import LWStickyNav from '~/components/LaunchWeek/12/Releases/LWStickyNav' -import LWHeader from '~/components/LaunchWeek/12/Releases/LWHeader' -import MainStage from '~/components/LaunchWeek/12/Releases/MainStage' - -const BuildStage = dynamic(() => import('~/components/LaunchWeek/12/Releases/BuildStage')) -const CTABanner = dynamic(() => import('~/components/CTABanner')) -const LaunchWeekPrizeSection = dynamic( - () => import('~/components/LaunchWeek/12/LaunchWeekPrizeSection') -) -const LW12Meetups = dynamic(() => import('~/components/LaunchWeek/12/LWMeetups')) - -export default function LaunchWeekIndex() { - const { query } = useRouter() - - const TITLE = `${LW12_TITLE} | ${LW12_DATE}` - const DESCRIPTION = 'Join us for a week of announcing new features, every day at 7 AM PT.' - const OG_IMAGE = `${SITE_ORIGIN}/images/launchweek/12/lw12-og.png?lw=12` - - const ticketNumber = query.ticketNumber?.toString() - const [session, setSession] = useState(null) - const [showCustomizationForm, setShowCustomizationForm] = useState(false) - - const defaultUserData = { - id: query.id?.toString(), - ticket_number: ticketNumber ? parseInt(ticketNumber, 10) : undefined, - name: query.name?.toString(), - username: query.username?.toString(), - platinum: !!query.platinum, - } - - const [userData, setUserData] = useState(defaultUserData) - const [ticketState, setTicketState] = useState('loading') - - useEffect(() => { - if (supabase) { - supabase.auth.getSession().then(({ data: { session } }) => setSession(session)) - const { - data: { subscription }, - } = supabase.auth.onAuthStateChange((_event, session) => { - setSession(session) - }) - - return () => subscription.unsubscribe() - } - }, [supabase]) - - useEffect(() => { - if (session?.user) { - if (userData?.id) { - return setTicketState('ticket') - } - return setTicketState('loading') - } - if (!session) return setTicketState('registration') - }, [session, userData]) - - return ( - <> - - - - - - - - - - - - - - - - - - ) -} diff --git a/apps/www/pages/launch-week/13/index.tsx b/apps/www/pages/launch-week/13/index.tsx deleted file mode 100644 index 5881ed1202d..00000000000 --- a/apps/www/pages/launch-week/13/index.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import { useState, useEffect } from 'react' -import dynamic from 'next/dynamic' -import { useRouter } from 'next/router' -import { NextSeo } from 'next-seo' -import { Session } from '@supabase/supabase-js' -import { LW13_DATE, LW13_TITLE, LW_URL, SITE_ORIGIN } from '~/lib/constants' -import supabase from '~/lib/supabase' - -import DefaultLayout from '~/components/Layouts/Default' -import { TicketState, ConfDataContext, UserData } from '~/components/LaunchWeek/hooks/use-conf-data' -import LWStickyNav from '~/components/LaunchWeek/13/Releases/LWStickyNav' -import LWHeader from '~/components/LaunchWeek/13/Releases/LWHeader' -import MainStage from '~/components/LaunchWeek/13/Releases/MainStage' - -const BuildStage = dynamic(() => import('~/components/LaunchWeek/13/Releases/BuildStage')) -const CTABanner = dynamic(() => import('~/components/CTABanner')) - -export default function LaunchWeekIndex() { - const { query } = useRouter() - - const TITLE = `${LW13_TITLE} | ${LW13_DATE}` - const DESCRIPTION = 'Join us for a week of announcing new features, every day at 7 AM PT.' - const OG_IMAGE = `${SITE_ORIGIN}/images/launchweek/12/lw13-og.png?lw=12` - - const ticketNumber = query.ticketNumber?.toString() - const [session, setSession] = useState(null) - const [showCustomizationForm, setShowCustomizationForm] = useState(false) - - const defaultUserData = { - id: query.id?.toString(), - ticket_number: ticketNumber ? parseInt(ticketNumber, 10) : undefined, - name: query.name?.toString(), - username: query.username?.toString(), - platinum: !!query.platinum, - } - - const [userData, setUserData] = useState(defaultUserData) - const [ticketState, setTicketState] = useState('loading') - - useEffect(() => { - if (supabase) { - supabase.auth.getSession().then(({ data: { session } }) => setSession(session)) - const { - data: { subscription }, - } = supabase.auth.onAuthStateChange((_event, session) => { - setSession(session) - }) - - return () => subscription.unsubscribe() - } - }, [supabase]) - - useEffect(() => { - if (session?.user) { - if (userData?.id) { - return setTicketState('ticket') - } - return setTicketState('loading') - } - if (!session) return setTicketState('registration') - }, [session, userData]) - - return ( - <> - - - - - - - - - - - - - ) -} - -// export const getServerSideProps: GetServerSideProps = async () => { -// const { data: meetups } = await supabase! -// .from('meetups') -// .select('*') -// .eq('launch_week', 'lw13') -// .neq('is_published', false) -// .order('start_at') - -// return { -// props: { -// meetups, -// }, -// } -// } diff --git a/apps/www/pages/launch-week/14/index.tsx b/apps/www/pages/launch-week/14/index.tsx deleted file mode 100644 index 16267f9a608..00000000000 --- a/apps/www/pages/launch-week/14/index.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { NextSeo } from 'next-seo' -import { LW14_DATE, LW14_TITLE, LW14_URL, SITE_ORIGIN } from 'lib/constants' -import { useRouter } from 'next/router' -import { Lw14ConfDataProvider } from 'components/LaunchWeek/14/hooks/use-conf-data' -import DefaultLayout from 'components/Layouts/Default' -import LWStickyNav from 'components/LaunchWeek/14/Releases/LWStickyNav' -import LWHeader from 'components/LaunchWeek/14/Releases/LWHeader' -import MainStage from 'components/LaunchWeek/14/Releases/MainStage' -import BuildStage from 'components/LaunchWeek/14/Releases/BuildStage' - -const Lw14Page = () => { - const TITLE = `${LW14_TITLE} | ${LW14_DATE}` - const DESCRIPTION = 'Join us for a week of announcing new features, every day at 7 AM PT.' - const OG_IMAGE = `${SITE_ORIGIN}/images/launchweek/14/lw14-og.png?lw=14` - - const { query } = useRouter() - const ticketNumber = query.ticketNumber?.toString() - const defaultUserData = { - id: query.id?.toString(), - ticket_number: ticketNumber ? parseInt(ticketNumber, 10) : undefined, - name: query.name?.toString(), - username: query.username?.toString(), - platinum: !!query.platinum, - } - - return ( - <> - - - - -
- - - - -
-
-
- - ) -} - -export default Lw14Page diff --git a/apps/www/pages/launch-week/x/index.tsx b/apps/www/pages/launch-week/x/index.tsx deleted file mode 100644 index 7d7324ee3dc..00000000000 --- a/apps/www/pages/launch-week/x/index.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import { useState, useEffect } from 'react' -import dynamic from 'next/dynamic' -import { GetServerSideProps } from 'next' -import { useRouter } from 'next/router' -import { NextSeo } from 'next-seo' -import { Session } from '@supabase/supabase-js' -import { LW_URL, SITE_ORIGIN } from '~/lib/constants' -import supabase from '~/lib/supabaseMisc' - -import FaviconImports from '~/components/LaunchWeek/X/FaviconImports' -import DefaultLayout from '~/components/Layouts/Default' -import { TicketState, ConfDataContext, UserData } from '~/components/LaunchWeek/hooks/use-conf-data' -import SectionContainer from '~/components/Layouts/SectionContainer' -import { Meetup } from '~/components/LaunchWeek/X/LWXMeetups' -import LWXStickyNav from '~/components/LaunchWeek/X/Releases/LWXStickyNav' -import LWXHeader from '~/components/LaunchWeek/X/Releases/LWXHeader' -import MainStage from '~/components/LaunchWeek/X/Releases/MainStage' - -const BuildStage = dynamic(() => import('~/components/LaunchWeek/X/Releases/BuildStage')) -const LWXMeetups = dynamic(() => import('~/components/LaunchWeek/X/LWXMeetups')) -const LaunchWeekPrizeSection = dynamic( - () => import('~/components/LaunchWeek/X/LaunchWeekPrizeSection') -) - -interface Props { - meetups?: Meetup[] -} - -export default function LaunchWeekIndex({ meetups }: Props) { - const { query } = useRouter() - - const TITLE = 'Supabase Launch Week X | 11-15 December 2023' - const DESCRIPTION = 'Join us for a week of announcing new features, every day at 8 AM PT.' - const OG_IMAGE = `${SITE_ORIGIN}/images/launchweek/lwx/lwx-og.jpg` - - const ticketNumber = query.ticketNumber?.toString() - const bgImageId = query.bgImageId?.toString() - const [session, setSession] = useState(null) - const [showCustomizationForm, setShowCustomizationForm] = useState(false) - - const defaultUserData = { - id: query.id?.toString(), - ticketNumber: ticketNumber ? parseInt(ticketNumber, 10) : undefined, - name: query.name?.toString(), - username: query.username?.toString(), - golden: !!query.golden, - bgImageId: bgImageId ? parseInt(bgImageId, 10) : undefined, - } - - const [userData, setUserData] = useState(defaultUserData) - const [ticketState, setTicketState] = useState('loading') - - useEffect(() => { - if (supabase) { - supabase.auth.getSession().then(({ data: { session } }) => setSession(session)) - const { - data: { subscription }, - } = supabase.auth.onAuthStateChange((_event, session) => { - setSession(session) - }) - - return () => subscription.unsubscribe() - } - }, [supabase]) - - useEffect(() => { - document.body.classList.add('bg-[#060809]') - - return () => { - if (document.body.classList.contains('bg-[#060809]')) { - document.body.classList.remove('bg-[#060809]') - } - } - }, []) - - useEffect(() => { - if (session?.user) { - if (userData?.id) { - return setTicketState('ticket') - } - return setTicketState('loading') - } - if (!session) return setTicketState('registration') - }, [session, userData]) - - return ( - <> - - - - - - - - - - - - - - - - - - ) -} - -export const getServerSideProps: GetServerSideProps = async () => { - const { data: meetups } = await supabase!.from('lwx_meetups').select('*') - - return { - props: { - meetups: - // @ts-ignore - meetups?.sort((a, b) => (new Date(a.start_at) > new Date(b.start_at) ? 1 : -1)) ?? [], - }, - } -}