wip
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
import { isEmbedPage } from '@/scripts/embed-page.js';
|
||||
|
||||
export type Keys =
|
||||
'v' |
|
||||
@@ -45,25 +44,18 @@ export type Keys =
|
||||
// セッション毎に廃棄されるLocalStorage代替(embedなどで使用)
|
||||
const safeSessionStorage = new Map<Keys, string>();
|
||||
|
||||
const embedPage = isEmbedPage();
|
||||
|
||||
export const miLocalStorage = {
|
||||
getItem: (key: Keys): string | null => {
|
||||
if (embedPage) {
|
||||
return safeSessionStorage.get(key) ?? null;
|
||||
}
|
||||
return window.localStorage.getItem(key);
|
||||
},
|
||||
setItem: (key: Keys, value: string): void => {
|
||||
if (embedPage) {
|
||||
safeSessionStorage.set(key, value);
|
||||
if (false) {
|
||||
} else {
|
||||
window.localStorage.setItem(key, value);
|
||||
}
|
||||
},
|
||||
removeItem: (key: Keys): void => {
|
||||
if (embedPage) {
|
||||
safeSessionStorage.delete(key);
|
||||
if (false) {
|
||||
} else {
|
||||
window.localStorage.removeItem(key);
|
||||
}
|
||||
@@ -79,26 +71,3 @@ export const miLocalStorage = {
|
||||
miLocalStorage.setItem(key, JSON.stringify(value));
|
||||
},
|
||||
};
|
||||
|
||||
if (embedPage) {
|
||||
/**
|
||||
* EmbedページではlocalStorageを使用できないようにしているが、
|
||||
* 動作に必要な値はsafeSessionStorageに移動する
|
||||
*/
|
||||
const keysToDuplicate: Keys[] = [
|
||||
'v',
|
||||
'instance',
|
||||
'instanceCachedAt',
|
||||
'lang',
|
||||
'locale',
|
||||
'localeVersion',
|
||||
];
|
||||
|
||||
keysToDuplicate.forEach(key => {
|
||||
const value = window.localStorage.getItem(key);
|
||||
if (value && !miLocalStorage.getItem(key)) {
|
||||
miLocalStorage.setItem(key, value);
|
||||
}
|
||||
});
|
||||
if (_DEV_) console.warn('Using safeSessionStorage as localStorage alternative');
|
||||
}
|
||||
|
Reference in New Issue
Block a user