commit
4c00df007b
7 changed files with 175 additions and 9 deletions
60
dist/bundle.es.js
vendored
60
dist/bundle.es.js
vendored
|
@ -72,11 +72,14 @@ const FETCH_FILTERED_CONTENT_FAILED = 'FETCH_FILTERED_CONTENT_FAILED';
|
|||
const FILTERED_CONTENT_SUBSCRIBE = 'FILTERED_CONTENT_SUBSCRIBE'; // Cost Info
|
||||
|
||||
const FETCH_COST_INFO_STARTED = 'FETCH_COST_INFO_STARTED';
|
||||
const FETCH_COST_INFO_COMPLETED = 'FETCH_COST_INFO_COMPLETED'; // File Stats
|
||||
const FETCH_COST_INFO_COMPLETED = 'FETCH_COST_INFO_COMPLETED'; // Stats
|
||||
|
||||
const FETCH_VIEW_COUNT_STARTED = 'FETCH_VIEW_COUNT_STARTED';
|
||||
const FETCH_VIEW_COUNT_FAILED = 'FETCH_VIEW_COUNT_FAILED';
|
||||
const FETCH_VIEW_COUNT_COMPLETED = 'FETCH_VIEW_COUNT_COMPLETED'; // Cross-device Sync
|
||||
const FETCH_VIEW_COUNT_COMPLETED = 'FETCH_VIEW_COUNT_COMPLETED';
|
||||
const FETCH_SUB_COUNT_STARTED = 'FETCH_SUB_COUNT_STARTED';
|
||||
const FETCH_SUB_COUNT_FAILED = 'FETCH_SUB_COUNT_FAILED';
|
||||
const FETCH_SUB_COUNT_COMPLETED = 'FETCH_SUB_COUNT_COMPLETED'; // Cross-device Sync
|
||||
|
||||
const GET_SYNC_STARTED = 'GET_SYNC_STARTED';
|
||||
const GET_SYNC_COMPLETED = 'GET_SYNC_COMPLETED';
|
||||
|
@ -151,6 +154,9 @@ var action_types = /*#__PURE__*/Object.freeze({
|
|||
FETCH_VIEW_COUNT_STARTED: FETCH_VIEW_COUNT_STARTED,
|
||||
FETCH_VIEW_COUNT_FAILED: FETCH_VIEW_COUNT_FAILED,
|
||||
FETCH_VIEW_COUNT_COMPLETED: FETCH_VIEW_COUNT_COMPLETED,
|
||||
FETCH_SUB_COUNT_STARTED: FETCH_SUB_COUNT_STARTED,
|
||||
FETCH_SUB_COUNT_FAILED: FETCH_SUB_COUNT_FAILED,
|
||||
FETCH_SUB_COUNT_COMPLETED: FETCH_SUB_COUNT_COMPLETED,
|
||||
GET_SYNC_STARTED: GET_SYNC_STARTED,
|
||||
GET_SYNC_COMPLETED: GET_SYNC_COMPLETED,
|
||||
SET_SYNC_STARTED: SET_SYNC_STARTED,
|
||||
|
@ -2166,6 +2172,28 @@ const doFetchViewCount = claimId => dispatch => {
|
|||
});
|
||||
});
|
||||
};
|
||||
const doFetchSubCount = claimId => dispatch => {
|
||||
dispatch({
|
||||
type: FETCH_SUB_COUNT_STARTED
|
||||
});
|
||||
return Lbryio.call('subscription', 'sub_count', {
|
||||
claim_id: claimId
|
||||
}).then(result => {
|
||||
const subCount = result[0];
|
||||
dispatch({
|
||||
type: FETCH_SUB_COUNT_COMPLETED,
|
||||
data: {
|
||||
claimId,
|
||||
subCount
|
||||
}
|
||||
});
|
||||
}).catch(error => {
|
||||
dispatch({
|
||||
type: FETCH_SUB_COUNT_FAILED,
|
||||
data: error
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
function doSetSync(oldHash, newHash, data) {
|
||||
return dispatch => {
|
||||
|
@ -2864,7 +2892,10 @@ const homepageReducer = handleActions({
|
|||
const defaultState$8 = {
|
||||
fetchingViewCount: false,
|
||||
viewCountError: undefined,
|
||||
viewCountById: {}
|
||||
viewCountById: {},
|
||||
fetchingSubCount: false,
|
||||
subCountError: undefined,
|
||||
subCountById: {}
|
||||
};
|
||||
const statsReducer = handleActions({
|
||||
[FETCH_VIEW_COUNT_STARTED]: state => ({ ...state,
|
||||
|
@ -2885,6 +2916,25 @@ const statsReducer = handleActions({
|
|||
fetchingViewCount: false,
|
||||
viewCountById
|
||||
};
|
||||
},
|
||||
[FETCH_SUB_COUNT_STARTED]: state => ({ ...state,
|
||||
fetchingSubCount: true
|
||||
}),
|
||||
[FETCH_SUB_COUNT_FAILED]: (state, action) => ({ ...state,
|
||||
subCountError: action.data
|
||||
}),
|
||||
[FETCH_SUB_COUNT_COMPLETED]: (state, action) => {
|
||||
const {
|
||||
claimId,
|
||||
subCount
|
||||
} = action.data;
|
||||
const subCountById = { ...state.subCountById,
|
||||
[claimId]: subCount
|
||||
};
|
||||
return { ...state,
|
||||
fetchingSubCount: false,
|
||||
subCountById
|
||||
};
|
||||
}
|
||||
}, defaultState$8);
|
||||
|
||||
|
@ -2979,7 +3029,9 @@ const selectFetchingTrendingUris = reselect.createSelector(selectState$7, state
|
|||
const selectState$8 = state => state.stats || {};
|
||||
|
||||
const selectViewCount = reselect.createSelector(selectState$8, state => state.viewCountById);
|
||||
const selectSubCount = reselect.createSelector(selectState$8, state => state.subCountById);
|
||||
const makeSelectViewCountForUri = uri => reselect.createSelector(lbryRedux.makeSelectClaimForUri(uri), selectViewCount, (claim, viewCountById) => viewCountById[claim.claim_id] || 0);
|
||||
const makeSelectSubCountForUri = uri => reselect.createSelector(lbryRedux.makeSelectClaimForUri(uri), selectSubCount, (claim, subCountById) => subCountById[claim.claim_id] || 0);
|
||||
|
||||
const selectState$9 = state => state.sync || {};
|
||||
|
||||
|
@ -3020,6 +3072,7 @@ exports.doFetchInviteStatus = doFetchInviteStatus;
|
|||
exports.doFetchMySubscriptions = doFetchMySubscriptions;
|
||||
exports.doFetchRecommendedSubscriptions = doFetchRecommendedSubscriptions;
|
||||
exports.doFetchRewardedContent = doFetchRewardedContent;
|
||||
exports.doFetchSubCount = doFetchSubCount;
|
||||
exports.doFetchTrendingUris = doFetchTrendingUris;
|
||||
exports.doFetchViewCount = doFetchViewCount;
|
||||
exports.doFilteredOutpointsSubscribe = doFilteredOutpointsSubscribe;
|
||||
|
@ -3058,6 +3111,7 @@ exports.makeSelectIsRewardClaimPending = makeSelectIsRewardClaimPending;
|
|||
exports.makeSelectIsSubscribed = makeSelectIsSubscribed;
|
||||
exports.makeSelectRewardAmountByType = makeSelectRewardAmountByType;
|
||||
exports.makeSelectRewardByType = makeSelectRewardByType;
|
||||
exports.makeSelectSubCountForUri = makeSelectSubCountForUri;
|
||||
exports.makeSelectUnreadByChannel = makeSelectUnreadByChannel;
|
||||
exports.makeSelectViewCountForUri = makeSelectViewCountForUri;
|
||||
exports.rewards = rewards;
|
||||
|
|
73
dist/bundle.js
vendored
73
dist/bundle.js
vendored
|
@ -215,6 +215,8 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony import */ var redux_actions_stats__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(26);
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doFetchViewCount", function() { return redux_actions_stats__WEBPACK_IMPORTED_MODULE_13__["doFetchViewCount"]; });
|
||||
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doFetchSubCount", function() { return redux_actions_stats__WEBPACK_IMPORTED_MODULE_13__["doFetchSubCount"]; });
|
||||
|
||||
/* harmony import */ var redux_actions_sync__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(27);
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doCheckSync", function() { return redux_actions_sync__WEBPACK_IMPORTED_MODULE_14__["doCheckSync"]; });
|
||||
|
||||
|
@ -416,6 +418,8 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony import */ var redux_selectors_stats__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(42);
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "makeSelectViewCountForUri", function() { return redux_selectors_stats__WEBPACK_IMPORTED_MODULE_32__["makeSelectViewCountForUri"]; });
|
||||
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "makeSelectSubCountForUri", function() { return redux_selectors_stats__WEBPACK_IMPORTED_MODULE_32__["makeSelectSubCountForUri"]; });
|
||||
|
||||
/* harmony import */ var redux_selectors_sync__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(43);
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectHasSyncedWallet", function() { return redux_selectors_sync__WEBPACK_IMPORTED_MODULE_33__["selectHasSyncedWallet"]; });
|
||||
|
||||
|
@ -547,6 +551,9 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FETCH_VIEW_COUNT_STARTED", function() { return FETCH_VIEW_COUNT_STARTED; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FETCH_VIEW_COUNT_FAILED", function() { return FETCH_VIEW_COUNT_FAILED; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FETCH_VIEW_COUNT_COMPLETED", function() { return FETCH_VIEW_COUNT_COMPLETED; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FETCH_SUB_COUNT_STARTED", function() { return FETCH_SUB_COUNT_STARTED; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FETCH_SUB_COUNT_FAILED", function() { return FETCH_SUB_COUNT_FAILED; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FETCH_SUB_COUNT_COMPLETED", function() { return FETCH_SUB_COUNT_COMPLETED; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GET_SYNC_STARTED", function() { return GET_SYNC_STARTED; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GET_SYNC_COMPLETED", function() { return GET_SYNC_COMPLETED; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SET_SYNC_STARTED", function() { return SET_SYNC_STARTED; });
|
||||
|
@ -620,11 +627,14 @@ var FETCH_FILTERED_CONTENT_FAILED = 'FETCH_FILTERED_CONTENT_FAILED';
|
|||
var FILTERED_CONTENT_SUBSCRIBE = 'FILTERED_CONTENT_SUBSCRIBE'; // Cost Info
|
||||
|
||||
var FETCH_COST_INFO_STARTED = 'FETCH_COST_INFO_STARTED';
|
||||
var FETCH_COST_INFO_COMPLETED = 'FETCH_COST_INFO_COMPLETED'; // File Stats
|
||||
var FETCH_COST_INFO_COMPLETED = 'FETCH_COST_INFO_COMPLETED'; // Stats
|
||||
|
||||
var FETCH_VIEW_COUNT_STARTED = 'FETCH_VIEW_COUNT_STARTED';
|
||||
var FETCH_VIEW_COUNT_FAILED = 'FETCH_VIEW_COUNT_FAILED';
|
||||
var FETCH_VIEW_COUNT_COMPLETED = 'FETCH_VIEW_COUNT_COMPLETED'; // Cross-device Sync
|
||||
var FETCH_VIEW_COUNT_COMPLETED = 'FETCH_VIEW_COUNT_COMPLETED';
|
||||
var FETCH_SUB_COUNT_STARTED = 'FETCH_SUB_COUNT_STARTED';
|
||||
var FETCH_SUB_COUNT_FAILED = 'FETCH_SUB_COUNT_FAILED';
|
||||
var FETCH_SUB_COUNT_COMPLETED = 'FETCH_SUB_COUNT_COMPLETED'; // Cross-device Sync
|
||||
|
||||
var GET_SYNC_STARTED = 'GET_SYNC_STARTED';
|
||||
var GET_SYNC_COMPLETED = 'GET_SYNC_COMPLETED';
|
||||
|
@ -3664,6 +3674,7 @@ function doFetchTrendingUris() {
|
|||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doFetchViewCount", function() { return doFetchViewCount; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doFetchSubCount", function() { return doFetchSubCount; });
|
||||
/* harmony import */ var lbryio__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
||||
/* harmony import */ var constants_action_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
|
||||
|
||||
|
@ -3692,6 +3703,30 @@ var doFetchViewCount = function doFetchViewCount(claimId) {
|
|||
});
|
||||
};
|
||||
};
|
||||
var doFetchSubCount = function doFetchSubCount(claimId) {
|
||||
return function (dispatch) {
|
||||
dispatch({
|
||||
type: constants_action_types__WEBPACK_IMPORTED_MODULE_1__["FETCH_SUB_COUNT_STARTED"]
|
||||
});
|
||||
return lbryio__WEBPACK_IMPORTED_MODULE_0__["default"].call('subscription', 'sub_count', {
|
||||
claim_id: claimId
|
||||
}).then(function (result) {
|
||||
var subCount = result[0];
|
||||
dispatch({
|
||||
type: constants_action_types__WEBPACK_IMPORTED_MODULE_1__["FETCH_SUB_COUNT_COMPLETED"],
|
||||
data: {
|
||||
claimId: claimId,
|
||||
subCount: subCount
|
||||
}
|
||||
});
|
||||
})["catch"](function (error) {
|
||||
dispatch({
|
||||
type: constants_action_types__WEBPACK_IMPORTED_MODULE_1__["FETCH_SUB_COUNT_FAILED"],
|
||||
data: error
|
||||
});
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 27 */
|
||||
|
@ -4574,7 +4609,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|||
var defaultState = {
|
||||
fetchingViewCount: false,
|
||||
viewCountError: undefined,
|
||||
viewCountById: {}
|
||||
viewCountById: {},
|
||||
fetchingSubCount: false,
|
||||
subCountError: undefined,
|
||||
subCountById: {}
|
||||
};
|
||||
var statsReducer = Object(util_redux_utils__WEBPACK_IMPORTED_MODULE_0__["handleActions"])((_handleActions = {}, _defineProperty(_handleActions, constants_action_types__WEBPACK_IMPORTED_MODULE_1__["FETCH_VIEW_COUNT_STARTED"], function (state) {
|
||||
return _objectSpread({}, state, {
|
||||
|
@ -4595,6 +4633,25 @@ var statsReducer = Object(util_redux_utils__WEBPACK_IMPORTED_MODULE_0__["handleA
|
|||
fetchingViewCount: false,
|
||||
viewCountById: viewCountById
|
||||
});
|
||||
}), _defineProperty(_handleActions, constants_action_types__WEBPACK_IMPORTED_MODULE_1__["FETCH_SUB_COUNT_STARTED"], function (state) {
|
||||
return _objectSpread({}, state, {
|
||||
fetchingSubCount: true
|
||||
});
|
||||
}), _defineProperty(_handleActions, constants_action_types__WEBPACK_IMPORTED_MODULE_1__["FETCH_SUB_COUNT_FAILED"], function (state, action) {
|
||||
return _objectSpread({}, state, {
|
||||
subCountError: action.data
|
||||
});
|
||||
}), _defineProperty(_handleActions, constants_action_types__WEBPACK_IMPORTED_MODULE_1__["FETCH_SUB_COUNT_COMPLETED"], function (state, action) {
|
||||
var _action$data2 = action.data,
|
||||
claimId = _action$data2.claimId,
|
||||
subCount = _action$data2.subCount;
|
||||
|
||||
var subCountById = _objectSpread({}, state.subCountById, _defineProperty({}, claimId, subCount));
|
||||
|
||||
return _objectSpread({}, state, {
|
||||
fetchingSubCount: false,
|
||||
subCountById: subCountById
|
||||
});
|
||||
}), _handleActions), defaultState);
|
||||
|
||||
/***/ }),
|
||||
|
@ -4819,7 +4876,9 @@ var selectFetchingTrendingUris = Object(reselect__WEBPACK_IMPORTED_MODULE_0__["c
|
|||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "selectViewCount", function() { return selectViewCount; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "selectSubCount", function() { return selectSubCount; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeSelectViewCountForUri", function() { return makeSelectViewCountForUri; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeSelectSubCountForUri", function() { return makeSelectSubCountForUri; });
|
||||
/* harmony import */ var reselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
|
||||
/* harmony import */ var reselect__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(reselect__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony import */ var lbry_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
|
||||
|
@ -4834,11 +4893,19 @@ var selectState = function selectState(state) {
|
|||
var selectViewCount = Object(reselect__WEBPACK_IMPORTED_MODULE_0__["createSelector"])(selectState, function (state) {
|
||||
return state.viewCountById;
|
||||
});
|
||||
var selectSubCount = Object(reselect__WEBPACK_IMPORTED_MODULE_0__["createSelector"])(selectState, function (state) {
|
||||
return state.subCountById;
|
||||
});
|
||||
var makeSelectViewCountForUri = function makeSelectViewCountForUri(uri) {
|
||||
return Object(reselect__WEBPACK_IMPORTED_MODULE_0__["createSelector"])(Object(lbry_redux__WEBPACK_IMPORTED_MODULE_1__["makeSelectClaimForUri"])(uri), selectViewCount, function (claim, viewCountById) {
|
||||
return viewCountById[claim.claim_id] || 0;
|
||||
});
|
||||
};
|
||||
var makeSelectSubCountForUri = function makeSelectSubCountForUri(uri) {
|
||||
return Object(reselect__WEBPACK_IMPORTED_MODULE_0__["createSelector"])(Object(lbry_redux__WEBPACK_IMPORTED_MODULE_1__["makeSelectClaimForUri"])(uri), selectSubCount, function (claim, subCountById) {
|
||||
return subCountById[claim.claim_id] || 0;
|
||||
});
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 43 */
|
||||
|
|
|
@ -71,10 +71,13 @@ export const FILTERED_CONTENT_SUBSCRIBE = 'FILTERED_CONTENT_SUBSCRIBE';
|
|||
export const FETCH_COST_INFO_STARTED = 'FETCH_COST_INFO_STARTED';
|
||||
export const FETCH_COST_INFO_COMPLETED = 'FETCH_COST_INFO_COMPLETED';
|
||||
|
||||
// File Stats
|
||||
// Stats
|
||||
export const FETCH_VIEW_COUNT_STARTED = 'FETCH_VIEW_COUNT_STARTED';
|
||||
export const FETCH_VIEW_COUNT_FAILED = 'FETCH_VIEW_COUNT_FAILED';
|
||||
export const FETCH_VIEW_COUNT_COMPLETED = 'FETCH_VIEW_COUNT_COMPLETED';
|
||||
export const FETCH_SUB_COUNT_STARTED = 'FETCH_SUB_COUNT_STARTED';
|
||||
export const FETCH_SUB_COUNT_FAILED = 'FETCH_SUB_COUNT_FAILED';
|
||||
export const FETCH_SUB_COUNT_COMPLETED = 'FETCH_SUB_COUNT_COMPLETED';
|
||||
|
||||
// Cross-device Sync
|
||||
export const GET_SYNC_STARTED = 'GET_SYNC_STARTED';
|
||||
|
|
|
@ -63,7 +63,7 @@ export { doFetchCostInfoForUri } from 'redux/actions/cost_info';
|
|||
export { doBlackListedOutpointsSubscribe } from 'redux/actions/blacklist';
|
||||
export { doFilteredOutpointsSubscribe } from 'redux/actions/filtered';
|
||||
export { doFetchFeaturedUris, doFetchTrendingUris } from 'redux/actions/homepage';
|
||||
export { doFetchViewCount } from 'redux/actions/stats';
|
||||
export { doFetchViewCount, doFetchSubCount } from 'redux/actions/stats';
|
||||
export {
|
||||
doCheckSync,
|
||||
doGetSync,
|
||||
|
@ -170,7 +170,7 @@ export {
|
|||
selectTrendingUris,
|
||||
selectFetchingTrendingUris,
|
||||
} from 'redux/selectors/homepage';
|
||||
export { makeSelectViewCountForUri } from 'redux/selectors/stats';
|
||||
export { makeSelectViewCountForUri, makeSelectSubCountForUri } from 'redux/selectors/stats';
|
||||
export {
|
||||
selectHasSyncedWallet,
|
||||
selectSyncData,
|
||||
|
|
|
@ -14,3 +14,19 @@ export const doFetchViewCount = (claimId: string) => dispatch => {
|
|||
dispatch({ type: ACTIONS.FETCH_VIEW_COUNT_FAILED, data: error });
|
||||
});
|
||||
};
|
||||
|
||||
export const doFetchSubCount = (claimId: string) => dispatch => {
|
||||
dispatch({ type: ACTIONS.FETCH_SUB_COUNT_STARTED });
|
||||
|
||||
return Lbryio.call('subscription', 'sub_count', { claim_id: claimId })
|
||||
.then((result: Array<number>) => {
|
||||
const subCount = result[0];
|
||||
dispatch({
|
||||
type: ACTIONS.FETCH_SUB_COUNT_COMPLETED,
|
||||
data: { claimId, subCount },
|
||||
});
|
||||
})
|
||||
.catch(error => {
|
||||
dispatch({ type: ACTIONS.FETCH_SUB_COUNT_FAILED, data: error });
|
||||
});
|
||||
};
|
||||
|
|
|
@ -5,6 +5,9 @@ const defaultState = {
|
|||
fetchingViewCount: false,
|
||||
viewCountError: undefined,
|
||||
viewCountById: {},
|
||||
fetchingSubCount: false,
|
||||
subCountError: undefined,
|
||||
subCountById: {},
|
||||
};
|
||||
|
||||
export const statsReducer = handleActions(
|
||||
|
@ -24,6 +27,21 @@ export const statsReducer = handleActions(
|
|||
viewCountById,
|
||||
};
|
||||
},
|
||||
[ACTIONS.FETCH_SUB_COUNT_STARTED]: state => ({ ...state, fetchingSubCount: true }),
|
||||
[ACTIONS.FETCH_SUB_COUNT_FAILED]: (state, action) => ({
|
||||
...state,
|
||||
subCountError: action.data,
|
||||
}),
|
||||
[ACTIONS.FETCH_SUB_COUNT_COMPLETED]: (state, action) => {
|
||||
const { claimId, subCount } = action.data;
|
||||
|
||||
const subCountById = { ...state.subCountById, [claimId]: subCount };
|
||||
return {
|
||||
...state,
|
||||
fetchingSubCount: false,
|
||||
subCountById,
|
||||
};
|
||||
},
|
||||
},
|
||||
defaultState
|
||||
);
|
||||
|
|
|
@ -3,6 +3,7 @@ import { makeSelectClaimForUri } from 'lbry-redux';
|
|||
|
||||
const selectState = state => state.stats || {};
|
||||
export const selectViewCount = createSelector(selectState, state => state.viewCountById);
|
||||
export const selectSubCount = createSelector(selectState, state => state.subCountById);
|
||||
|
||||
export const makeSelectViewCountForUri = uri =>
|
||||
createSelector(
|
||||
|
@ -10,3 +11,10 @@ export const makeSelectViewCountForUri = uri =>
|
|||
selectViewCount,
|
||||
(claim, viewCountById) => viewCountById[claim.claim_id] || 0
|
||||
);
|
||||
|
||||
export const makeSelectSubCountForUri = uri =>
|
||||
createSelector(
|
||||
makeSelectClaimForUri(uri),
|
||||
selectSubCount,
|
||||
(claim, subCountById) => subCountById[claim.claim_id] || 0
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue