fix storage conflict modal
This commit is contained in:
parent
34eecc166f
commit
6eae7136ec
2 changed files with 13 additions and 2 deletions
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue