import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { HashRouter, Navigate, Route, Routes, useLocation } from 'react-router'
import { Refine } from '@refinedev/core'
import { dataProvider } from './dataProvider'
import { CreatorHubLayout } from './Layout'
import { LoginPage } from './LoginPage'
import { AccountDetail, AccountList } from './AccountsPage'
import { AuditPage } from './AuditPage'
import { BrowserCreatePage, BrowserDetail, BrowserList } from './BrowsersPage'
import { BrowserImageList } from './BrowserImagesPage'
import { DraftPage } from './DraftPage'
import { GatewayList } from './GatewaysPage'
import { NetworkExitDetail, NetworkExitList } from './NetworkExitsPage'
import { TaskDetail, TaskList } from './TasksPage'
import { AttemptDetail } from './TracePages'
import { CreatorAccountsPage } from './CreatorAccountsPage'
import { CreatorCompetitorsPage } from './CreatorCompetitorsPage'
import { CreatorSettingsPage } from './CreatorSettingsPage'
import { CreatorWorkbenchPage } from './CreatorWorkbenchPage'
import 'remixicon/fonts/remixicon.css'
import './styles.css'
// 开发阶段认证仅由页面层掌握:401 会清除凭证并跳转登录;localStorage 为空时直接展示登录页。
// 不用 useState:HashRouter 的 pushState/replaceState 不触发 hashchange,状态会在导航后过期;
// 改为每次渲染直接读 localStorage,登录后 navigate 引发重渲染即可拿到新状态。
const authed = () => localStorage.getItem('creatorhub.auth') !== null
function AuthGate({ children }) {
const { pathname } = useLocation()
const loggedIn = authed()
if (!loggedIn && pathname !== '/login') return
if (loggedIn && pathname === '/login') return
return children
}
createRoot(document.getElementById('root')).render(
} />
}>
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
} />
,
)