Fix ios player playback/subtitles menu
[oweals/peertube.git] / client / src / assets / player / peertube-player-local-storage.ts
1 function getStoredVolume () {
2   const value = getLocalStorage('volume')
3   if (value !== null && value !== undefined) {
4     const valueNumber = parseFloat(value)
5     if (isNaN(valueNumber)) return undefined
6
7     return valueNumber
8   }
9
10   return undefined
11 }
12
13 function getStoredMute () {
14   const value = getLocalStorage('mute')
15   if (value !== null && value !== undefined) return value === 'true'
16
17   return undefined
18 }
19
20 function getStoredTheater () {
21   const value = getLocalStorage('theater-enabled')
22   if (value !== null && value !== undefined) return value === 'true'
23
24   return undefined
25 }
26
27 function saveVolumeInStore (value: number) {
28   return setLocalStorage('volume', value.toString())
29 }
30
31 function saveMuteInStore (value: boolean) {
32   return setLocalStorage('mute', value.toString())
33 }
34
35 function saveTheaterInStore (enabled: boolean) {
36   return setLocalStorage('theater-enabled', enabled.toString())
37 }
38
39 function saveAverageBandwidth (value: number) {
40   return setLocalStorage('average-bandwidth', value.toString())
41 }
42
43 function getAverageBandwidthInStore () {
44   const value = getLocalStorage('average-bandwidth')
45   if (value !== null && value !== undefined) {
46     const valueNumber = parseInt(value, 10)
47     if (isNaN(valueNumber)) return undefined
48
49     return valueNumber
50   }
51
52   return undefined
53 }
54
55 // ---------------------------------------------------------------------------
56
57 export {
58   getStoredVolume,
59   getStoredMute,
60   getStoredTheater,
61   saveVolumeInStore,
62   saveMuteInStore,
63   saveTheaterInStore,
64   saveAverageBandwidth,
65   getAverageBandwidthInStore
66 }
67
68 // ---------------------------------------------------------------------------
69
70 const KEY_PREFIX = 'peertube-videojs-'
71
72 function getLocalStorage (key: string) {
73   try {
74     return localStorage.getItem(KEY_PREFIX + key)
75   } catch {
76     return undefined
77   }
78 }
79
80 function setLocalStorage (key: string, value: string) {
81   try {
82     localStorage.setItem(KEY_PREFIX + key, value)
83   } catch { /* empty */
84   }
85 }