mirror of
https://github.com/nextcloud/spreed.git
synced 2025-07-23 18:55:33 +00:00
fix(safari): provide fallback for 'window.requestIdleCallback'
- also refactor old migration steps Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
This commit is contained in:
31
src/init.js
31
src/init.js
@ -89,17 +89,18 @@ const migrateDirectLocalStorageToNextcloudBrowserStorage = () => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const storageKeys = Array.from(Array(localStorage.length), (_, i) => localStorage.key(i)).filter((key) => key.startsWith('audioDisabled_')
|
const deprecatedKeys = [
|
||||||
|| key.startsWith('videoDisabled_')
|
'audioDisabled_',
|
||||||
|| key.startsWith('virtualBackgroundEnabled_')
|
'videoDisabled_',
|
||||||
|| key.startsWith('virtualBackgroundType_')
|
'virtualBackgroundEnabled_',
|
||||||
|| key.startsWith('virtualBackgroundBlurStrength_')
|
'virtualBackgroundType_',
|
||||||
|| key.startsWith('virtualBackgroundUrl_'))
|
'virtualBackgroundBlurStrength_',
|
||||||
|
'virtualBackgroundUrl_',
|
||||||
|
]
|
||||||
|
|
||||||
if (storageKeys.length) {
|
Object.keys(localStorage).forEach((key) => {
|
||||||
console.debug('Migrating localStorage keys to BrowserStorage', storageKeys)
|
if (deprecatedKeys.some((deprecatedKey) => key.startsWith(deprecatedKey))) {
|
||||||
|
console.debug('Migrating localStorage key to BrowserStorage: %s', key)
|
||||||
storageKeys.forEach((key) => {
|
|
||||||
BrowserStorage.setItem(key, localStorage.getItem(key))
|
BrowserStorage.setItem(key, localStorage.getItem(key))
|
||||||
localStorage.removeItem(key)
|
localStorage.removeItem(key)
|
||||||
|
|
||||||
@ -115,14 +116,14 @@ const migrateDirectLocalStorageToNextcloudBrowserStorage = () => {
|
|||||||
BrowserStorage.setItem(typeKey, VIRTUAL_BACKGROUND.BACKGROUND_TYPE.BLUR)
|
BrowserStorage.setItem(typeKey, VIRTUAL_BACKGROUND.BACKGROUND_TYPE.BLUR)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
|
||||||
BrowserStorage.setItem('localStorageMigrated', 'done')
|
BrowserStorage.setItem('localStorageMigrated', 'done')
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* Clean up some deprecated (no longer in use) keys from @nextcloud/browser-storage
|
||||||
*/
|
*/
|
||||||
function cleanOutdatedBrowserStorageKeys() {
|
function cleanOutdatedBrowserStorageKeys() {
|
||||||
const deprecatedKeys = [
|
const deprecatedKeys = [
|
||||||
@ -137,7 +138,13 @@ function cleanOutdatedBrowserStorageKeys() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (window.requestIdleCallback) {
|
||||||
window.requestIdleCallback(() => {
|
window.requestIdleCallback(() => {
|
||||||
migrateDirectLocalStorageToNextcloudBrowserStorage()
|
migrateDirectLocalStorageToNextcloudBrowserStorage()
|
||||||
cleanOutdatedBrowserStorageKeys()
|
cleanOutdatedBrowserStorageKeys()
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
// Fallback for Safari
|
||||||
|
migrateDirectLocalStorageToNextcloudBrowserStorage()
|
||||||
|
cleanOutdatedBrowserStorageKeys()
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user