| 'use client' | |
| class StorageMock { | |
| data: Record<string, string> | |
| constructor() { | |
| this.data = {} as Record<string, string> | |
| } | |
| setItem(name: string, value: string) { | |
| this.data[name] = value | |
| } | |
| getItem(name: string) { | |
| return this.data[name] || null | |
| } | |
| removeItem(name: string) { | |
| delete this.data[name] | |
| } | |
| clear() { | |
| this.data = {} | |
| } | |
| } | |
| let localStorage, sessionStorage | |
| try { | |
| localStorage = globalThis.localStorage | |
| sessionStorage = globalThis.sessionStorage | |
| } | |
| catch (e) { | |
| localStorage = new StorageMock() | |
| sessionStorage = new StorageMock() | |
| } | |
| Object.defineProperty(globalThis, 'localStorage', { | |
| value: localStorage, | |
| }) | |
| Object.defineProperty(globalThis, 'sessionStorage', { | |
| value: sessionStorage, | |
| }) | |
| const BrowserInitor = ({ | |
| children, | |
| }: { children: React.ReactElement }) => { | |
| return children | |
| } | |
| export default BrowserInitor | |