import { createSelector } from 'reselect'; export const selectState = state => state.app || {}; export const selectPlatform = createSelector(selectState, state => state.platform); export const selectUpdateUrl = createSelector(selectPlatform, platform => { switch (platform) { case 'darwin': return 'https://lbry.com/get/lbry.dmg'; case 'linux': return 'https://lbry.com/get/lbry.deb'; case 'win32': return 'https://lbry.com/get/lbry.exe'; default: throw Error('Unknown platform'); } }); export const selectHasClickedComment = createSelector(selectState, state => state.hasClickedComment); export const selectRemoteVersion = createSelector(selectState, state => state.remoteVersion); export const selectIsUpgradeAvailable = createSelector(selectState, state => state.isUpgradeAvailable); export const selectUpgradeFilename = createSelector(selectPlatform, selectRemoteVersion, (platform, version) => { switch (platform) { case 'darwin': return `LBRY_${version}.dmg`; case 'linux': return `LBRY_${version}.deb`; case 'win32': return `LBRY_${version}.exe`; default: throw Error('Unknown platform'); } }); export const selectDownloadProgress = createSelector(selectState, state => state.downloadProgress); export const selectDownloadComplete = createSelector(selectState, state => state.upgradeDownloadCompleted); export const selectIsUpgradeSkipped = createSelector(selectState, state => state.isUpgradeSkipped); export const selectUpgradeDownloadPath = createSelector(selectState, state => state.downloadPath); export const selectUpgradeDownloadItem = createSelector(selectState, state => state.downloadItem); export const selectAutoUpdateDownloaded = createSelector(selectState, state => state.autoUpdateDownloaded); export const selectAutoUpdateDeclined = createSelector(selectState, state => state.autoUpdateDeclined); export const selectDaemonVersionMatched = createSelector(selectState, state => state.daemonVersionMatched); export const selectVolume = createSelector(selectState, state => state.volume); export const selectMute = createSelector(selectState, state => state.muted); export const selectUpgradeTimer = createSelector(selectState, state => state.checkUpgradeTimer); export const selectModal = createSelector(selectState, state => { if (!state.modal) { return null; } return { id: state.modal, modalProps: state.modalProps, }; }); export const selectSearchOptionsExpanded = createSelector(selectState, state => state.searchOptionsExpanded); export const selectWelcomeVersion = createSelector(selectState, state => state.welcomeVersion); export const selectHasNavigated = createSelector(selectState, state => state.hasNavigated); export const selectAllowAnalytics = createSelector(selectState, state => state.allowAnalytics); export const selectScrollStartingPosition = createSelector(selectState, state => state.currentScroll); export const selectIsPasswordSaved = createSelector(selectState, state => state.isPasswordSaved); export const selectSyncIsLocked = createSelector(selectState, state => state.syncLocked);