247ee757d1
## Issue We previously automatically reload when there is a chunk error. This works fine if it's the case of new code was pushed recently while the user was active. But if the failure was caused by other things like network problems or the file IS actually missing, we end up in an infinite loop of refreshes. ## New approach Tell the user to reload instead of automatically doing it.
79 lines
3.4 KiB
JavaScript
79 lines
3.4 KiB
JavaScript
import { hot } from 'react-hot-loader/root';
|
|
import { connect } from 'react-redux';
|
|
import { selectUploadCount } from 'lbryinc';
|
|
import { selectGetSyncErrorMessage, selectSyncFatalError } from 'redux/selectors/sync';
|
|
import { doFetchAccessToken, doUserSetReferrer } from 'redux/actions/user';
|
|
import { selectUser, selectAccessToken, selectUserVerifiedEmail } from 'redux/selectors/user';
|
|
import { selectUnclaimedRewards } from 'redux/selectors/rewards';
|
|
import { doFetchChannelListMine, doFetchCollectionListMine, doResolveUris } from 'redux/actions/claims';
|
|
import { selectMyChannelUrls } from 'redux/selectors/claims';
|
|
import * as SETTINGS from 'constants/settings';
|
|
import { selectSubscriptions } from 'redux/selectors/subscriptions';
|
|
import {
|
|
makeSelectClientSetting,
|
|
selectLanguage,
|
|
selectLoadedLanguages,
|
|
selectThemePath,
|
|
selectHomepageCode,
|
|
} from 'redux/selectors/settings';
|
|
import {
|
|
selectIsUpgradeAvailable,
|
|
selectAutoUpdateDownloaded,
|
|
selectModal,
|
|
selectActiveChannelClaim,
|
|
selectIsReloadRequired,
|
|
} from 'redux/selectors/app';
|
|
import { doGetWalletSyncPreference, doSetLanguage, doSetHomepage } from 'redux/actions/settings';
|
|
import { doSyncLoop } from 'redux/actions/sync';
|
|
import {
|
|
doDownloadUpgradeRequested,
|
|
doSignIn,
|
|
doGetAndPopulatePreferences,
|
|
doSetActiveChannel,
|
|
doSetIncognito,
|
|
} from 'redux/actions/app';
|
|
import { doFetchModBlockedList, doFetchCommentModAmIList } from 'redux/actions/comments';
|
|
import App from './view';
|
|
|
|
const select = (state) => ({
|
|
user: selectUser(state),
|
|
accessToken: selectAccessToken(state),
|
|
theme: selectThemePath(state),
|
|
language: selectLanguage(state),
|
|
homepageCode: selectHomepageCode(state),
|
|
syncEnabled: makeSelectClientSetting(SETTINGS.ENABLE_SYNC)(state),
|
|
languages: selectLoadedLanguages(state),
|
|
autoUpdateDownloaded: selectAutoUpdateDownloaded(state),
|
|
isUpgradeAvailable: selectIsUpgradeAvailable(state),
|
|
isReloadRequired: selectIsReloadRequired(state),
|
|
syncError: selectGetSyncErrorMessage(state),
|
|
uploadCount: selectUploadCount(state),
|
|
rewards: selectUnclaimedRewards(state),
|
|
isAuthenticated: selectUserVerifiedEmail(state),
|
|
currentModal: selectModal(state),
|
|
syncFatalError: selectSyncFatalError(state),
|
|
activeChannelClaim: selectActiveChannelClaim(state),
|
|
myChannelUrls: selectMyChannelUrls(state),
|
|
subscriptions: selectSubscriptions(state),
|
|
});
|
|
|
|
const perform = (dispatch) => ({
|
|
fetchAccessToken: () => dispatch(doFetchAccessToken()),
|
|
fetchChannelListMine: () => dispatch(doFetchChannelListMine()),
|
|
fetchCollectionListMine: () => dispatch(doFetchCollectionListMine()),
|
|
setLanguage: (language) => dispatch(doSetLanguage(language)),
|
|
doSetHomepage: (value) => dispatch(doSetHomepage(value)),
|
|
signIn: () => dispatch(doSignIn()),
|
|
requestDownloadUpgrade: () => dispatch(doDownloadUpgradeRequested()),
|
|
updatePreferences: () => dispatch(doGetAndPopulatePreferences()),
|
|
getWalletSyncPref: () => dispatch(doGetWalletSyncPreference()),
|
|
syncLoop: (noInterval) => dispatch(doSyncLoop(noInterval)),
|
|
setReferrer: (referrer, doClaim) => dispatch(doUserSetReferrer(referrer, doClaim)),
|
|
setActiveChannelIfNotSet: () => dispatch(doSetActiveChannel()),
|
|
setIncognito: () => dispatch(doSetIncognito()),
|
|
fetchModBlockedList: () => dispatch(doFetchModBlockedList()),
|
|
resolveUris: (uris) => dispatch(doResolveUris(uris)),
|
|
fetchModAmIList: () => dispatch(doFetchCommentModAmIList()),
|
|
});
|
|
|
|
export default hot(connect(select, perform)(App));
|