'use client' import { SWRConfig } from 'swr' import { useEffect, useState } from 'react' import type { ReactNode } from 'react' import { useRouter, useSearchParams } from 'next/navigation' type SwrInitorProps = { children: ReactNode } const SwrInitor = ({ children, }: SwrInitorProps) => { const router = useRouter() const searchParams = useSearchParams() const consoleToken = searchParams.get('console_token') const consoleTokenFromLocalStorage = localStorage?.getItem('console_token') const utm = { utm_source: searchParams.get('utm_source') || '', utm_medium: searchParams.get('utm_medium') || '', utm_campaign: searchParams.get('utm_campaign') || '', utm_content: searchParams.get('utm_content') || '', utm_term: searchParams.get('utm_term') || '', } localStorage?.setItem('utm', JSON.stringify(utm)) const [init, setInit] = useState(false) useEffect(() => { if (!(consoleToken || consoleTokenFromLocalStorage)) router.replace('/signin') if (consoleToken) { localStorage?.setItem('console_token', consoleToken!) router.replace('/apps', { forceOptimisticNavigation: false } as any) } setInit(true) }, []) return init ? ( {children} ) : null } export default SwrInitor