diff --git a/dist/bundle.es.js b/dist/bundle.es.js index 04b5f52..271eb13 100644 --- a/dist/bundle.es.js +++ b/dist/bundle.es.js @@ -52,7 +52,8 @@ const USER_YOUTUBE_IMPORT_FAILURE = 'USER_YOUTUBE_IMPORT_FAILURE'; const USER_YOUTUBE_IMPORT_SUCCESS = 'USER_YOUTUBE_IMPORT_SUCCESS'; const USER_SET_REFERRER_STARTED = 'USER_SET_REFERRER_STARTED'; const USER_SET_REFERRER_SUCCESS = 'USER_SET_REFERRER_SUCCESS'; -const USER_SET_REFERRER_FAILURE = 'USER_SET_REFERRER_FAILURE'; // Claims +const USER_SET_REFERRER_FAILURE = 'USER_SET_REFERRER_FAILURE'; +const USER_SET_REFERRER_RESET = 'USER_SET_REFERRER_RESET'; // Claims const FETCH_FEATURED_CONTENT_STARTED = 'FETCH_FEATURED_CONTENT_STARTED'; const FETCH_FEATURED_CONTENT_COMPLETED = 'FETCH_FEATURED_CONTENT_COMPLETED'; @@ -182,6 +183,7 @@ var action_types = /*#__PURE__*/Object.freeze({ USER_SET_REFERRER_STARTED: USER_SET_REFERRER_STARTED, USER_SET_REFERRER_SUCCESS: USER_SET_REFERRER_SUCCESS, USER_SET_REFERRER_FAILURE: USER_SET_REFERRER_FAILURE, + USER_SET_REFERRER_RESET: USER_SET_REFERRER_RESET, FETCH_FEATURED_CONTENT_STARTED: FETCH_FEATURED_CONTENT_STARTED, FETCH_FEATURED_CONTENT_COMPLETED: FETCH_FEATURED_CONTENT_COMPLETED, FETCH_TRENDING_CONTENT_STARTED: FETCH_TRENDING_CONTENT_STARTED, @@ -1623,16 +1625,25 @@ function doUserInviteNew(email) { }); }; } +function doUserSetReferrerReset() { + return dispatch => { + dispatch({ + type: USER_SET_REFERRER_RESET + }); + }; +} function doUserSetReferrer(referrer, shouldClaim) { return async (dispatch, getState) => { dispatch({ type: USER_SET_REFERRER_STARTED }); let claim; - let referrerCode = referrer; - const isClaim = lbryRedux.parseURI(referrer).claimId; + let referrerCode; + const { + isChannel + } = lbryRedux.parseURI(referrer); - if (isClaim) { + if (isChannel) { const uri = `lbry://${referrer}`; claim = lbryRedux.makeSelectClaimForUri(uri)(getState()); @@ -1652,7 +1663,11 @@ function doUserSetReferrer(referrer, shouldClaim) { } } - referrerCode = claim && claim.permanent_url.replace('lbry://', ''); + referrerCode = claim && claim.permanent_url && claim.permanent_url.replace('lbry://', ''); + } + + if (!referrerCode) { + referrerCode = referrer; } try { @@ -3200,6 +3215,11 @@ reducers$2[USER_SET_REFERRER_FAILURE] = (state, action) => Object.assign({}, sta referrerSetError: action.data.error.message }); +reducers$2[USER_SET_REFERRER_RESET] = state => Object.assign({}, state, { + referrerSetIsPending: false, + referrerSetError: defaultState$3.referrerSetError +}); + function userReducer(state = defaultState$3, action) { const handler = reducers$2[action.type]; if (handler) return handler(state, action); @@ -3634,6 +3654,7 @@ exports.doUserPhoneVerify = doUserPhoneVerify; exports.doUserPhoneVerifyFailure = doUserPhoneVerifyFailure; exports.doUserResendVerificationEmail = doUserResendVerificationEmail; exports.doUserSetReferrer = doUserSetReferrer; +exports.doUserSetReferrerReset = doUserSetReferrerReset; exports.filteredReducer = filteredReducer; exports.homepageReducer = homepageReducer; exports.lbrytvReducer = lbrytvReducer; diff --git a/dist/bundle.js b/dist/bundle.js index 3d3c0ac..c540121 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -209,6 +209,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doUserSetReferrer", function() { return redux_actions_user__WEBPACK_IMPORTED_MODULE_11__["doUserSetReferrer"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doUserSetReferrerReset", function() { return redux_actions_user__WEBPACK_IMPORTED_MODULE_11__["doUserSetReferrerReset"]; }); + /* harmony import */ var redux_actions_cost_info__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(30); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "doFetchCostInfoForUri", function() { return redux_actions_cost_info__WEBPACK_IMPORTED_MODULE_12__["doFetchCostInfoForUri"]; }); @@ -582,6 +584,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "USER_SET_REFERRER_STARTED", function() { return USER_SET_REFERRER_STARTED; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "USER_SET_REFERRER_SUCCESS", function() { return USER_SET_REFERRER_SUCCESS; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "USER_SET_REFERRER_FAILURE", function() { return USER_SET_REFERRER_FAILURE; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "USER_SET_REFERRER_RESET", function() { return USER_SET_REFERRER_RESET; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FETCH_FEATURED_CONTENT_STARTED", function() { return FETCH_FEATURED_CONTENT_STARTED; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FETCH_FEATURED_CONTENT_COMPLETED", function() { return FETCH_FEATURED_CONTENT_COMPLETED; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FETCH_TRENDING_CONTENT_STARTED", function() { return FETCH_TRENDING_CONTENT_STARTED; }); @@ -701,7 +704,8 @@ var USER_YOUTUBE_IMPORT_FAILURE = 'USER_YOUTUBE_IMPORT_FAILURE'; var USER_YOUTUBE_IMPORT_SUCCESS = 'USER_YOUTUBE_IMPORT_SUCCESS'; var USER_SET_REFERRER_STARTED = 'USER_SET_REFERRER_STARTED'; var USER_SET_REFERRER_SUCCESS = 'USER_SET_REFERRER_SUCCESS'; -var USER_SET_REFERRER_FAILURE = 'USER_SET_REFERRER_FAILURE'; // Claims +var USER_SET_REFERRER_FAILURE = 'USER_SET_REFERRER_FAILURE'; +var USER_SET_REFERRER_RESET = 'USER_SET_REFERRER_RESET'; // Claims var FETCH_FEATURED_CONTENT_STARTED = 'FETCH_FEATURED_CONTENT_STARTED'; var FETCH_FEATURED_CONTENT_COMPLETED = 'FETCH_FEATURED_CONTENT_COMPLETED'; @@ -4838,6 +4842,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doFetchAccessToken", function() { return doFetchAccessToken; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doUserIdentityVerify", function() { return doUserIdentityVerify; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doUserInviteNew", function() { return doUserInviteNew; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doUserSetReferrerReset", function() { return doUserSetReferrerReset; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doUserSetReferrer", function() { return doUserSetReferrer; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doClaimYoutubeChannels", function() { return doClaimYoutubeChannels; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doCheckYoutubeTransfer", function() { return doCheckYoutubeTransfer; }); @@ -5256,6 +5261,13 @@ function doUserInviteNew(email) { }); }; } +function doUserSetReferrerReset() { + return function (dispatch) { + dispatch({ + type: constants_action_types__WEBPACK_IMPORTED_MODULE_1__["USER_SET_REFERRER_RESET"] + }); + }; +} function doUserSetReferrer(referrer, shouldClaim) { return ( /*#__PURE__*/ @@ -5263,7 +5275,8 @@ function doUserSetReferrer(referrer, shouldClaim) { var _ref3 = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee(dispatch, getState) { - var claim, referrerCode, isClaim, uri, response; + var claim, referrerCode, _parseURI, isChannel, uri, response; + return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { @@ -5271,11 +5284,10 @@ function doUserSetReferrer(referrer, shouldClaim) { dispatch({ type: constants_action_types__WEBPACK_IMPORTED_MODULE_1__["USER_SET_REFERRER_STARTED"] }); - referrerCode = referrer; - isClaim = Object(lbry_redux__WEBPACK_IMPORTED_MODULE_0__["parseURI"])(referrer).claimId; + _parseURI = Object(lbry_redux__WEBPACK_IMPORTED_MODULE_0__["parseURI"])(referrer), isChannel = _parseURI.isChannel; - if (!isClaim) { - _context.next = 18; + if (!isChannel) { + _context.next = 17; break; } @@ -5283,25 +5295,25 @@ function doUserSetReferrer(referrer, shouldClaim) { claim = Object(lbry_redux__WEBPACK_IMPORTED_MODULE_0__["makeSelectClaimForUri"])(uri)(getState()); if (claim) { - _context.next = 17; + _context.next = 16; break; } - _context.prev = 7; - _context.next = 10; + _context.prev = 6; + _context.next = 9; return lbry_redux__WEBPACK_IMPORTED_MODULE_0__["Lbry"].resolve({ urls: [uri] }); - case 10: + case 9: response = _context.sent; claim = response && response[uri]; - _context.next = 17; + _context.next = 16; break; - case 14: - _context.prev = 14; - _context.t0 = _context["catch"](7); + case 13: + _context.prev = 13; + _context.t0 = _context["catch"](6); dispatch({ type: constants_action_types__WEBPACK_IMPORTED_MODULE_1__["USER_SET_REFERRER_FAILURE"], data: { @@ -5309,10 +5321,14 @@ function doUserSetReferrer(referrer, shouldClaim) { } }); - case 17: - referrerCode = claim && claim.permanent_url.replace('lbry://', ''); + case 16: + referrerCode = claim && claim.permanent_url && claim.permanent_url.replace('lbry://', ''); + + case 17: + if (!referrerCode) { + referrerCode = referrer; + } - case 18: _context.prev = 18; _context.next = 21; return lbryio__WEBPACK_IMPORTED_MODULE_5__["default"].call('user', 'referral', { @@ -5349,7 +5365,7 @@ function doUserSetReferrer(referrer, shouldClaim) { return _context.stop(); } } - }, _callee, null, [[7, 14], [18, 25]]); + }, _callee, null, [[6, 13], [18, 25]]); })); return function (_x, _x2) { @@ -7098,6 +7114,13 @@ reducers[constants_action_types__WEBPACK_IMPORTED_MODULE_0__["USER_SET_REFERRER_ }); }; +reducers[constants_action_types__WEBPACK_IMPORTED_MODULE_0__["USER_SET_REFERRER_RESET"]] = function (state) { + return Object.assign({}, state, { + referrerSetIsPending: false, + referrerSetError: defaultState.referrerSetError + }); +}; + function userReducer() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState; var action = arguments.length > 1 ? arguments[1] : undefined; diff --git a/src/constants/action_types.js b/src/constants/action_types.js index d2615ed..d02405a 100644 --- a/src/constants/action_types.js +++ b/src/constants/action_types.js @@ -43,6 +43,7 @@ export const USER_YOUTUBE_IMPORT_SUCCESS = 'USER_YOUTUBE_IMPORT_SUCCESS'; export const USER_SET_REFERRER_STARTED = 'USER_SET_REFERRER_STARTED'; export const USER_SET_REFERRER_SUCCESS = 'USER_SET_REFERRER_SUCCESS'; export const USER_SET_REFERRER_FAILURE = 'USER_SET_REFERRER_FAILURE'; +export const USER_SET_REFERRER_RESET = 'USER_SET_REFERRER_RESET'; // Claims export const FETCH_FEATURED_CONTENT_STARTED = 'FETCH_FEATURED_CONTENT_STARTED'; diff --git a/src/index.js b/src/index.js index e0e2f4b..4b65f57 100644 --- a/src/index.js +++ b/src/index.js @@ -65,6 +65,7 @@ export { doClaimYoutubeChannels, doCheckYoutubeTransfer, doUserSetReferrer, + doUserSetReferrerReset, } from 'redux/actions/user'; export { doFetchCostInfoForUri } from 'redux/actions/cost_info'; export { doBlackListedOutpointsSubscribe } from 'redux/actions/blacklist'; diff --git a/src/redux/actions/user.js b/src/redux/actions/user.js index 74080bb..54afc30 100644 --- a/src/redux/actions/user.js +++ b/src/redux/actions/user.js @@ -398,16 +398,24 @@ export function doUserInviteNew(email) { }; } +export function doUserSetReferrerReset() { + return dispatch => { + dispatch({ + type: ACTIONS.USER_SET_REFERRER_RESET, + }); + }; +} export function doUserSetReferrer(referrer, shouldClaim) { return async (dispatch, getState) => { dispatch({ type: ACTIONS.USER_SET_REFERRER_STARTED, }); let claim; - let referrerCode = referrer; + let referrerCode; - const isClaim = parseURI(referrer).claimId; - if (isClaim) { + const { isChannel } = parseURI(referrer); + + if (isChannel) { const uri = `lbry://${referrer}`; claim = makeSelectClaimForUri(uri)(getState()); if (!claim) { @@ -421,8 +429,13 @@ export function doUserSetReferrer(referrer, shouldClaim) { }); } } - referrerCode = claim && claim.permanent_url.replace('lbry://', ''); + referrerCode = claim && claim.permanent_url && claim.permanent_url.replace('lbry://', ''); } + + if (!referrerCode) { + referrerCode = referrer; + } + try { await Lbryio.call('user', 'referral', { referrer: referrerCode }, 'post'); dispatch({ diff --git a/src/redux/reducers/user.js b/src/redux/reducers/user.js index b82f490..4e4c16c 100644 --- a/src/redux/reducers/user.js +++ b/src/redux/reducers/user.js @@ -290,6 +290,12 @@ reducers[ACTIONS.USER_SET_REFERRER_FAILURE] = (state, action) => referrerSetError: action.data.error.message, }); +reducers[ACTIONS.USER_SET_REFERRER_RESET] = state => + Object.assign({}, state, { + referrerSetIsPending: false, + referrerSetError: defaultState.referrerSetError, + }); + export function userReducer(state = defaultState, action) { const handler = reducers[action.type]; if (handler) return handler(state, action);