///
/**
* This is a common wrapper component for csr.tsx and ssg-client.tsx
*/
import React, { useState } from 'react'
import { HashRouter, BrowserRouter } from 'react-router-dom'
import { dataCacheCtx, setDataCacheCtx } from '../ctx'
import type { PageLoaded } from '../../../clientTypes'
// @ts-expect-error
const Router = __HASH_ROUTER__ ? HashRouter : BrowserRouter
// @ts-expect-error
const basename = __HASH_ROUTER__
? undefined
: import.meta.env.BASE_URL?.replace(/\/$/, '')
interface Props {
readonly initCache?: PageLoaded
readonly children: React.ReactNode
}
const ClientAppWrapper: React.FC> = ({
initCache,
children,
}) => {
const [dataCache, setDataCache] = useState(initCache ?? {})
return (
{children}
)
}
export default ClientAppWrapper