From c6bfbaebe759caa679f23674fed2ba5c9aee5217 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 25 Jun 2021 15:40:59 +0200 Subject: Fix error when cookies are disabled --- client/src/assets/player/peertube-player-local-storage.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'client/src/assets/player') diff --git a/client/src/assets/player/peertube-player-local-storage.ts b/client/src/assets/player/peertube-player-local-storage.ts index 80aceb239..d4cbda3a9 100644 --- a/client/src/assets/player/peertube-player-local-storage.ts +++ b/client/src/assets/player/peertube-player-local-storage.ts @@ -69,9 +69,10 @@ function getStoredLastSubtitle () { return getLocalStorage('last-subtitle') } -function saveVideoWatchHistory(videoUUID: string, duration: number) { +function saveVideoWatchHistory (videoUUID: string, duration: number) { return setLocalStorage(`video-watch-history`, JSON.stringify({ ...getStoredVideoWatchHistory(), + [videoUUID]: { duration, date: `${(new Date()).toISOString()}` @@ -79,11 +80,14 @@ function saveVideoWatchHistory(videoUUID: string, duration: number) { })) } -function getStoredVideoWatchHistory(videoUUID?: string) { +function getStoredVideoWatchHistory (videoUUID?: string) { let data try { - data = JSON.parse(getLocalStorage('video-watch-history')) + const value = getLocalStorage('video-watch-history') + if (!value) return {} + + data = JSON.parse(value) } catch (error) { console.error('Cannot parse video watch history from local storage: ', error) } @@ -95,8 +99,9 @@ function getStoredVideoWatchHistory(videoUUID?: string) { return data } -function cleanupVideoWatch() { +function cleanupVideoWatch () { const data = getStoredVideoWatchHistory() + if (!data) return const newData = Object.keys(data).reduce((acc, videoUUID) => { const date = Date.parse(data[videoUUID].date) -- cgit v1.2.3