mirror of
http://112.124.100.131/huang.ze/ebiz-dify-ai.git
synced 2025-12-09 19:06:51 +08:00
Fix/use embedded chatbot with no track mode (#582)
This commit is contained in:
52
web/app/components/browser-initor.tsx
Normal file
52
web/app/components/browser-initor.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
'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 BrowerInitor = ({
|
||||
children,
|
||||
}: { children: React.ReactElement }) => {
|
||||
return children
|
||||
}
|
||||
|
||||
export default BrowerInitor
|
||||
@@ -1,4 +1,5 @@
|
||||
import I18nServer from './components/i18n-server'
|
||||
import BrowerInitor from './components/browser-initor'
|
||||
import SentryInitor from './components/sentry-initor'
|
||||
import { getLocaleOnServer } from '@/i18n/server'
|
||||
|
||||
@@ -25,10 +26,12 @@ const LocaleLayout = ({
|
||||
data-public-edition={process.env.NEXT_PUBLIC_EDITION}
|
||||
data-public-sentry-dsn={process.env.NEXT_PUBLIC_SENTRY_DSN}
|
||||
>
|
||||
<SentryInitor>
|
||||
{/* @ts-expect-error Async Server Component */}
|
||||
<I18nServer locale={locale}>{children}</I18nServer>
|
||||
</SentryInitor>
|
||||
<BrowerInitor>
|
||||
<SentryInitor>
|
||||
{/* @ts-expect-error Async Server Component */}
|
||||
<I18nServer locale={locale}>{children}</I18nServer>
|
||||
</SentryInitor>
|
||||
</BrowerInitor>
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user