feat: update main chat and system chat UI
This commit is contained in:
@@ -2,7 +2,34 @@ import type { AppPageDescriptor } from '../../store/appStore/types';
|
||||
import { isPreviewRuntime } from './previewRuntime';
|
||||
|
||||
export const CLIENT_ID_STORAGE_KEY = 'work-app.visitor.client-id';
|
||||
const PREVIEW_CLIENT_ID_STORAGE_KEY = 'work-app.preview-runtime.client-id';
|
||||
|
||||
function readStorageValue(storage: Storage | null | undefined, key: string) {
|
||||
try {
|
||||
return storage?.getItem(key)?.trim() ?? '';
|
||||
} catch {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
function writeStorageValue(storage: Storage | null | undefined, key: string, value: string) {
|
||||
try {
|
||||
if (value) {
|
||||
storage?.setItem(key, value);
|
||||
} else {
|
||||
storage?.removeItem(key);
|
||||
}
|
||||
} catch {
|
||||
// Ignore storage failures in restricted preview runtimes.
|
||||
}
|
||||
}
|
||||
|
||||
function removeStorageValue(storage: Storage | null | undefined, key: string) {
|
||||
try {
|
||||
storage?.removeItem(key);
|
||||
} catch {
|
||||
// Ignore storage failures in restricted preview runtimes.
|
||||
}
|
||||
}
|
||||
|
||||
function getClientStorage() {
|
||||
if (typeof window === 'undefined') {
|
||||
@@ -11,7 +38,7 @@ function getClientStorage() {
|
||||
|
||||
if (isPreviewRuntime()) {
|
||||
return {
|
||||
key: PREVIEW_CLIENT_ID_STORAGE_KEY,
|
||||
key: CLIENT_ID_STORAGE_KEY,
|
||||
primaryStorage: window.localStorage,
|
||||
legacyStorage: window.sessionStorage,
|
||||
};
|
||||
@@ -43,17 +70,17 @@ export function getClientId() {
|
||||
return '';
|
||||
}
|
||||
|
||||
const savedClientId = storageConfig.primaryStorage.getItem(storageConfig.key)?.trim() ?? '';
|
||||
const savedClientId = readStorageValue(storageConfig.primaryStorage, storageConfig.key);
|
||||
|
||||
if (savedClientId) {
|
||||
return savedClientId;
|
||||
}
|
||||
|
||||
const legacyClientId = storageConfig.legacyStorage?.getItem(storageConfig.key)?.trim() ?? '';
|
||||
const legacyClientId = readStorageValue(storageConfig.legacyStorage, storageConfig.key);
|
||||
|
||||
if (legacyClientId) {
|
||||
storageConfig.primaryStorage.setItem(storageConfig.key, legacyClientId);
|
||||
storageConfig.legacyStorage?.removeItem(storageConfig.key);
|
||||
writeStorageValue(storageConfig.primaryStorage, storageConfig.key, legacyClientId);
|
||||
removeStorageValue(storageConfig.legacyStorage, storageConfig.key);
|
||||
return legacyClientId;
|
||||
}
|
||||
|
||||
@@ -67,8 +94,8 @@ export function clearClientId() {
|
||||
return;
|
||||
}
|
||||
|
||||
storageConfig.primaryStorage.removeItem(storageConfig.key);
|
||||
storageConfig.legacyStorage?.removeItem(storageConfig.key);
|
||||
removeStorageValue(storageConfig.primaryStorage, storageConfig.key);
|
||||
removeStorageValue(storageConfig.legacyStorage, storageConfig.key);
|
||||
}
|
||||
|
||||
export function getOrCreateClientId() {
|
||||
@@ -85,8 +112,8 @@ export function getOrCreateClientId() {
|
||||
}
|
||||
|
||||
const nextClientId = generateClientId();
|
||||
storageConfig.primaryStorage.setItem(storageConfig.key, nextClientId);
|
||||
storageConfig.legacyStorage?.removeItem(storageConfig.key);
|
||||
writeStorageValue(storageConfig.primaryStorage, storageConfig.key, nextClientId);
|
||||
removeStorageValue(storageConfig.legacyStorage, storageConfig.key);
|
||||
return nextClientId;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user