Fix webtorrent disabled by default
[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 getStoredWebTorrentEnabled (): boolean {
14   const value = getLocalStorage('webtorrent_enabled')
15   if (value !== null && value !== undefined) return value === 'true'
16
17   // By default webtorrent is enabled
18   return true
19 }
20
21 function getStoredMute () {
22   const value = getLocalStorage('mute')
23   if (value !== null && value !== undefined) return value === 'true'
24
25   return undefined
26 }
27
28 function getStoredTheater () {
29   const value = getLocalStorage('theater-enabled')
30   if (value !== null && value !== undefined) return value === 'true'
31
32   return undefined
33 }
34
35 function saveVolumeInStore (value: number) {
36   return setLocalStorage('volume', value.toString())
37 }
38
39 function saveMuteInStore (value: boolean) {
40   return setLocalStorage('mute', value.toString())
41 }
42
43 function saveTheaterInStore (enabled: boolean) {
44   return setLocalStorage('theater-enabled', enabled.toString())
45 }
46
47 function saveAverageBandwidth (value: number) {
48   return setLocalStorage('average-bandwidth', value.toString())
49 }
50
51 function getAverageBandwidthInStore () {
52   const value = getLocalStorage('average-bandwidth')
53   if (value !== null && value !== undefined) {
54     const valueNumber = parseInt(value, 10)
55     if (isNaN(valueNumber)) return undefined
56
57     return valueNumber
58   }
59
60   return undefined
61 }
62
63 // ---------------------------------------------------------------------------
64
65 export {
66   getStoredVolume,
67   getStoredWebTorrentEnabled,
68   getStoredMute,
69   getStoredTheater,
70   saveVolumeInStore,
71   saveMuteInStore,
72   saveTheaterInStore,
73   saveAverageBandwidth,
74   getAverageBandwidthInStore
75 }
76
77 // ---------------------------------------------------------------------------
78
79 const KEY_PREFIX = 'peertube-videojs-'
80
81 function getLocalStorage (key: string) {
82   try {
83     return localStorage.getItem(KEY_PREFIX + key)
84   } catch {
85     return undefined
86   }
87 }
88
89 function setLocalStorage (key: string, value: string) {
90   try {
91     localStorage.setItem(KEY_PREFIX + key, value)
92   } catch { /* empty */
93   }
94 }