| '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 |
|
|