move channel_list call to happen after fetching subscriptions from db
This commit is contained in:
parent
5fa44d8857
commit
a166485a78
4 changed files with 5 additions and 44 deletions
|
@ -6,7 +6,6 @@ import {
|
||||||
selectIsFetchingSubscriptions,
|
selectIsFetchingSubscriptions,
|
||||||
selectNotifications,
|
selectNotifications,
|
||||||
} from 'redux/selectors/subscriptions';
|
} from 'redux/selectors/subscriptions';
|
||||||
import { doFetchClaimsByChannel } from 'redux/actions/content';
|
|
||||||
import { setSubscriptionNotifications, doFetchMySubscriptions } from 'redux/actions/subscriptions';
|
import { setSubscriptionNotifications, doFetchMySubscriptions } from 'redux/actions/subscriptions';
|
||||||
import SubscriptionsPage from './view';
|
import SubscriptionsPage from './view';
|
||||||
|
|
||||||
|
@ -14,7 +13,6 @@ const select = state => ({
|
||||||
loading:
|
loading:
|
||||||
selectIsFetchingSubscriptions(state) ||
|
selectIsFetchingSubscriptions(state) ||
|
||||||
Boolean(Object.keys(selectSubscriptionsBeingFetched(state)).length),
|
Boolean(Object.keys(selectSubscriptionsBeingFetched(state)).length),
|
||||||
subscriptionsBeingFetched: selectSubscriptionsBeingFetched(state),
|
|
||||||
subscriptions: selectSubscriptions(state),
|
subscriptions: selectSubscriptions(state),
|
||||||
subscriptionClaims: selectSubscriptionClaims(state),
|
subscriptionClaims: selectSubscriptionClaims(state),
|
||||||
notifications: selectNotifications(state),
|
notifications: selectNotifications(state),
|
||||||
|
@ -23,7 +21,6 @@ const select = state => ({
|
||||||
export default connect(
|
export default connect(
|
||||||
select,
|
select,
|
||||||
{
|
{
|
||||||
doFetchClaimsByChannel,
|
|
||||||
setSubscriptionNotifications,
|
setSubscriptionNotifications,
|
||||||
doFetchMySubscriptions,
|
doFetchMySubscriptions,
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,16 +6,13 @@ import * as NOTIFICATION_TYPES from 'constants/notification_types';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
import FileList from 'component/fileList';
|
import FileList from 'component/fileList';
|
||||||
import type { Claim } from 'types/claim';
|
import type { Claim } from 'types/claim';
|
||||||
import isDev from 'electron-is-dev';
|
|
||||||
import HiddenNsfwClaims from 'component/hiddenNsfwClaims';
|
import HiddenNsfwClaims from 'component/hiddenNsfwClaims';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
doFetchClaimsByChannel: (string, number) => void,
|
|
||||||
doFetchMySubscriptions: () => void,
|
doFetchMySubscriptions: () => void,
|
||||||
setSubscriptionNotifications: ({}) => void,
|
setSubscriptionNotifications: ({}) => void,
|
||||||
subscriptions: Array<Subscription>,
|
subscriptions: Array<Subscription>,
|
||||||
subscriptionClaims: Array<{ uri: string, claims: Array<Claim> }>,
|
subscriptionClaims: Array<{ uri: string, claims: Array<Claim> }>,
|
||||||
subscriptionsBeingFetched: {},
|
|
||||||
notifications: {},
|
notifications: {},
|
||||||
loading: boolean,
|
loading: boolean,
|
||||||
};
|
};
|
||||||
|
@ -37,41 +34,6 @@ export default class extends React.PureComponent<Props> {
|
||||||
setSubscriptionNotifications(newNotifications);
|
setSubscriptionNotifications(newNotifications);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate() {
|
|
||||||
const {
|
|
||||||
subscriptions,
|
|
||||||
subscriptionClaims,
|
|
||||||
doFetchClaimsByChannel,
|
|
||||||
subscriptionsBeingFetched,
|
|
||||||
} = this.props;
|
|
||||||
|
|
||||||
const subscriptionClaimMap = {};
|
|
||||||
subscriptionClaims.forEach(claim => {
|
|
||||||
/*
|
|
||||||
This check added 6/20/18 to fix function receiving empty claims unexpectedly.
|
|
||||||
The better fix is ensuring channels aren't added to byId if there are no associated claims
|
|
||||||
We are adding this now with the redesign release to ensure users see the correct subscriptions
|
|
||||||
*/
|
|
||||||
if (claim.claims.length) {
|
|
||||||
subscriptionClaimMap[claim.uri] = 1;
|
|
||||||
} else if (isDev) {
|
|
||||||
// eslint-disable no-console
|
|
||||||
console.error(
|
|
||||||
`Claim for ${
|
|
||||||
claim.uri
|
|
||||||
} was added to byId in redux but there are no loaded fetched claims. This shouldn't happen because a subscription should have claims attached to it.`
|
|
||||||
);
|
|
||||||
// eslint-enable no-console
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
subscriptions.forEach(sub => {
|
|
||||||
if (!subscriptionClaimMap[sub.uri] && !subscriptionsBeingFetched[sub.uri]) {
|
|
||||||
doFetchClaimsByChannel(sub.uri, 1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { subscriptions, subscriptionClaims, loading } = this.props;
|
const { subscriptions, subscriptionClaims, loading } = this.props;
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import type { Subscription } from 'types/subscription';
|
||||||
import { selectSubscriptions } from 'redux/selectors/subscriptions';
|
import { selectSubscriptions } from 'redux/selectors/subscriptions';
|
||||||
import { makeSelectClientSetting } from 'redux/selectors/settings';
|
import { makeSelectClientSetting } from 'redux/selectors/settings';
|
||||||
import { Lbry, buildURI, parseURI } from 'lbry-redux';
|
import { Lbry, buildURI, parseURI } from 'lbry-redux';
|
||||||
import { doPurchaseUri } from 'redux/actions/content';
|
import { doPurchaseUri, doFetchClaimsByChannel } from 'redux/actions/content';
|
||||||
import { doClaimRewardType } from 'redux/actions/rewards';
|
import { doClaimRewardType } from 'redux/actions/rewards';
|
||||||
import Promise from 'bluebird';
|
import Promise from 'bluebird';
|
||||||
import Lbryio from 'lbryio';
|
import Lbryio from 'lbryio';
|
||||||
|
@ -91,6 +91,8 @@ export const doFetchMySubscriptions = () => (dispatch: Dispatch, getState: () =>
|
||||||
type: ACTIONS.FETCH_SUBSCRIPTIONS_SUCCESS,
|
type: ACTIONS.FETCH_SUBSCRIPTIONS_SUCCESS,
|
||||||
data: subscriptions,
|
data: subscriptions,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
subscriptions.forEach(({ uri }) => dispatch(doFetchClaimsByChannel(uri)));
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
dispatch({
|
dispatch({
|
||||||
|
|
|
@ -5651,9 +5651,9 @@ lazy-val@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.3.tgz#bb97b200ef00801d94c317e29dc6ed39e31c5edc"
|
resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.3.tgz#bb97b200ef00801d94c317e29dc6ed39e31c5edc"
|
||||||
|
|
||||||
lbry-redux@lbryio/lbry-redux#ada4880c5d0758c7973aff9d443a87874d98b320:
|
lbry-redux@lbryio/lbry-redux#31f7afa8a37f5741dac01fc1ecdf153f3bed95dc:
|
||||||
version "0.0.1"
|
version "0.0.1"
|
||||||
resolved "https://codeload.github.com/lbryio/lbry-redux/tar.gz/ada4880c5d0758c7973aff9d443a87874d98b320"
|
resolved "https://codeload.github.com/lbryio/lbry-redux/tar.gz/31f7afa8a37f5741dac01fc1ecdf153f3bed95dc"
|
||||||
dependencies:
|
dependencies:
|
||||||
proxy-polyfill "0.1.6"
|
proxy-polyfill "0.1.6"
|
||||||
reselect "^3.0.0"
|
reselect "^3.0.0"
|
||||||
|
|
Loading…
Reference in a new issue