From 6189b699fbc2d428d6baf09473356ed4568ea2a6 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 20 May 2020 10:37:46 +0200 Subject: [PATCH] Fix broken client when cookies are disabled --- .../app/shared/misc/peertube-web-storage.ts | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/client/src/app/shared/misc/peertube-web-storage.ts b/client/src/app/shared/misc/peertube-web-storage.ts index fff209678..6a152dd98 100644 --- a/client/src/app/shared/misc/peertube-web-storage.ts +++ b/client/src/app/shared/misc/peertube-web-storage.ts @@ -47,26 +47,32 @@ try { peertubeLocalStorage = localStorage peertubeSessionStorage = sessionStorage } catch (err) { - const instance = new MemoryStorage() + const instanceLocalStorage = new MemoryStorage() + const instanceSessionStorage = new MemoryStorage() - peertubeLocalStorage = sessionStorage = new Proxy(instance, { - set: function (obj, prop: string | number, value) { - if (MemoryStorage.prototype.hasOwnProperty(prop)) { - instance[prop] = value - } else { - instance.setItem(prop, value) + function proxify (instance: MemoryStorage) { + return new Proxy(instance, { + set: function (obj, prop: string | number, value) { + if (MemoryStorage.prototype.hasOwnProperty(prop)) { + instance[prop] = value + } else { + instance.setItem(prop, value) + } + return true + }, + get: function (target, name: string | number) { + if (MemoryStorage.prototype.hasOwnProperty(name)) { + return instance[name] + } + if (valuesMap.has(name)) { + return instance.getItem(name) + } } - return true - }, - get: function (target, name: string | number) { - if (MemoryStorage.prototype.hasOwnProperty(name)) { - return instance[name] - } - if (valuesMap.has(name)) { - return instance.getItem(name) - } - } - }) + }) + } + + peertubeLocalStorage = proxify(instanceLocalStorage) + peertubeSessionStorage = proxify(instanceSessionStorage) } export { -- 2.41.0