function getStoredVolume () { const value = getLocalStorage('volume') if (value !== null && value !== undefined) { const valueNumber = parseFloat(value) if (isNaN(valueNumber)) return undefined return valueNumber } return undefined } function getStoredWebTorrentEnabled (): boolean { const value = getLocalStorage('webtorrent_enabled') if (value !== null && value !== undefined) return value === 'true' return false } function getStoredMute () { const value = getLocalStorage('mute') if (value !== null && value !== undefined) return value === 'true' return undefined } function getStoredTheater () { const value = getLocalStorage('theater-enabled') if (value !== null && value !== undefined) return value === 'true' return undefined } function saveVolumeInStore (value: number) { return setLocalStorage('volume', value.toString()) } function saveMuteInStore (value: boolean) { return setLocalStorage('mute', value.toString()) } function saveTheaterInStore (enabled: boolean) { return setLocalStorage('theater-enabled', enabled.toString()) } function saveAverageBandwidth (value: number) { return setLocalStorage('average-bandwidth', value.toString()) } function getAverageBandwidthInStore () { const value = getLocalStorage('average-bandwidth') if (value !== null && value !== undefined) { const valueNumber = parseInt(value, 10) if (isNaN(valueNumber)) return undefined return valueNumber } return undefined } // --------------------------------------------------------------------------- export { getStoredVolume, getStoredWebTorrentEnabled, getStoredMute, getStoredTheater, saveVolumeInStore, saveMuteInStore, saveTheaterInStore, saveAverageBandwidth, getAverageBandwidthInStore } // --------------------------------------------------------------------------- const KEY_PREFIX = 'peertube-videojs-' function getLocalStorage (key: string) { try { return localStorage.getItem(KEY_PREFIX + key) } catch { return undefined } } function setLocalStorage (key: string, value: string) { try { localStorage.setItem(KEY_PREFIX + key, value) } catch { /* empty */ } }