fix storage conflict modal

This commit is contained in:
Vitaly Turovsky 2025-06-29 15:34:25 +03:00
commit 6eae7136ec
2 changed files with 13 additions and 2 deletions

View file

@ -16,10 +16,14 @@ export default () => {
if (!isModalActive/* || conflicts.length === 0 */) return null
const clampText = (text: string) => {
return text.length > 30 ? text.slice(0, 30) + '...' : text
}
const conflictText = conflicts.map(conflict => {
const localTime = formatTimestamp(conflict.localStorageTimestamp)
const cookieTime = formatTimestamp(conflict.cookieTimestamp)
return `${conflict.key}: LocalStorage (${localTime}) vs Cookie (${cookieTime})`
return `${conflict.key}: LocalStorage (${localTime}, ${clampText(conflict.localStorageValue)}) vs Cookie (${cookieTime}, ${clampText(conflict.cookieValue)})`
}).join('\n')
return (

View file

@ -134,7 +134,14 @@ const detectStorageConflicts = (): StorageConflict[] => {
delete localData.timestamp
delete cookieData.timestamp
if (JSON.stringify(localData) !== JSON.stringify(cookieData)) {
const isDataEmpty = (data: any) => {
if (typeof data === 'object' && data !== null) {
return Object.keys(data).length === 0
}
return !data && data !== 0 && data !== false
}
if (JSON.stringify(localData) !== JSON.stringify(cookieData) && !isDataEmpty(localData) && !isDataEmpty(cookieData)) {
conflicts.push({
key,
localStorageValue: localData,