@times-components/user-state 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.4.4](https://github.com/newsuk/times-components/compare/@times-components/user-state@0.4.3...@times-components/user-state@0.4.4) (2022-10-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **TDP-2612:** UserState refactor ([#3169](https://github.com/newsuk/times-components/issues/3169)) ([a0ba83a](https://github.com/newsuk/times-components/commit/a0ba83a3f4c8d2b0dcc2a6dbf3f126b8870de83a))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [0.4.3](https://github.com/newsuk/times-components/compare/@times-components/user-state@0.4.2...@times-components/user-state@0.4.3) (2022-10-18)
7
18
 
8
19
 
package/dist/matchers.js CHANGED
@@ -6,66 +6,66 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.showJoinTheConversationDialog = exports.showCommentingModule = exports.showTokenisedEmailShare = exports.showArticleSaveButton = exports.showTopicTags = exports.showArticleExtras = exports.showSaveAndShareBar = void 0;
7
7
 
8
8
  /* User states */
9
- var isMeteredUser = function isMeteredUser(userState) {
10
- return userState.isMetered || userState.isLightPackUser;
9
+ var hasAccessLoggedInOrSharedUser = function hasAccessLoggedInOrSharedUser(userState) {
10
+ return userState.hasAccess && (userState.isLoggedIn || userState.isShared);
11
11
  };
12
12
 
13
- var isLightPackExpired = function isLightPackExpired(userState) {
14
- return userState.isLightPackUser && userState.viewsRemaining === 0;
13
+ var hasAccessLoggedInUser = function hasAccessLoggedInUser(userState) {
14
+ return userState.hasAccess && userState.isLoggedIn;
15
15
  };
16
16
 
17
- var isMeteredExpiredUser = function isMeteredExpiredUser(userState) {
18
- return userState.isMeteredExpired || isLightPackExpired(userState);
17
+ var isMeteredUser = function isMeteredUser(userState) {
18
+ return userState.isMetered || userState.isLightPackUser;
19
19
  };
20
20
 
21
- var isLoggedInWithAccess = function isLoggedInWithAccess(userState) {
22
- return userState.isLoggedIn && !isMeteredExpiredUser(userState);
21
+ var hasAccessLoggedInNonMeteredUser = function hasAccessLoggedInNonMeteredUser(userState) {
22
+ return hasAccessLoggedInUser(userState) && !isMeteredUser(userState);
23
23
  };
24
24
 
25
- var isSubscriber = function isSubscriber(userState) {
26
- return userState.isLoggedIn && !isMeteredUser(userState);
25
+ var hasAccessLoggedInMeteredUser = function hasAccessLoggedInMeteredUser(userState) {
26
+ return hasAccessLoggedInUser(userState) && isMeteredUser(userState);
27
27
  };
28
28
  /* Entitlements */
29
29
 
30
30
 
31
31
  var showSaveAndShareBar = function showSaveAndShareBar(userState) {
32
- return userState.isLoggedIn || userState.isShared;
32
+ return hasAccessLoggedInOrSharedUser(userState);
33
33
  };
34
34
 
35
35
  exports.showSaveAndShareBar = showSaveAndShareBar;
36
36
 
37
37
  var showArticleExtras = function showArticleExtras(userState) {
38
- return isLoggedInWithAccess(userState) || userState.isShared;
38
+ return hasAccessLoggedInOrSharedUser(userState);
39
39
  };
40
40
 
41
41
  exports.showArticleExtras = showArticleExtras;
42
42
 
43
43
  var showTopicTags = function showTopicTags(userState) {
44
- return userState.isLoggedIn || userState.isShared;
44
+ return hasAccessLoggedInOrSharedUser(userState);
45
45
  };
46
46
 
47
47
  exports.showTopicTags = showTopicTags;
48
48
 
49
49
  var showArticleSaveButton = function showArticleSaveButton(userState) {
50
- return userState.isLoggedIn;
50
+ return hasAccessLoggedInUser(userState);
51
51
  };
52
52
 
53
53
  exports.showArticleSaveButton = showArticleSaveButton;
54
54
 
55
55
  var showTokenisedEmailShare = function showTokenisedEmailShare(userState) {
56
- return isSubscriber(userState);
56
+ return hasAccessLoggedInNonMeteredUser(userState);
57
57
  };
58
58
 
59
59
  exports.showTokenisedEmailShare = showTokenisedEmailShare;
60
60
 
61
61
  var showCommentingModule = function showCommentingModule(userState) {
62
- return isSubscriber(userState);
62
+ return hasAccessLoggedInNonMeteredUser(userState);
63
63
  };
64
64
 
65
65
  exports.showCommentingModule = showCommentingModule;
66
66
 
67
67
  var showJoinTheConversationDialog = function showJoinTheConversationDialog(userState) {
68
- return userState.isLoggedIn && isMeteredUser(userState);
68
+ return hasAccessLoggedInMeteredUser(userState);
69
69
  };
70
70
 
71
71
  exports.showJoinTheConversationDialog = showJoinTheConversationDialog;
@@ -27,7 +27,7 @@ function mockUserState() {
27
27
  }, MockUserState);
28
28
 
29
29
  MockUserState.mockReset = function () {
30
- MockUserState.mockStates = [RealUserState.showSaveAndShareBar, RealUserState.showArticleExtras, RealUserState.showArticleSaveButton, RealUserState.showCommentingModule];
30
+ MockUserState.mockStates = [RealUserState.showSaveAndShareBar, RealUserState.showArticleExtras, RealUserState.showTopicTags, RealUserState.showArticleSaveButton, RealUserState.showTokenisedEmailShare, RealUserState.showCommentingModule];
31
31
  };
32
32
 
33
33
  MockUserState.mockReset();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@times-components/user-state",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "Selectively render react components based on current user state",
5
5
  "main": "dist/user-state",
6
6
  "dev": "src/user-state",
@@ -32,8 +32,8 @@
32
32
  "homepage": "https://github.com/newsuk/times-components#readme",
33
33
  "dependencies": {
34
34
  "@storybook/addon-knobs": "5.3.18",
35
- "@times-components/context": "1.10.2",
36
- "@times-components/utils": "6.15.2",
35
+ "@times-components/context": "1.10.3",
36
+ "@times-components/utils": "6.15.3",
37
37
  "prop-types": "15.7.2"
38
38
  },
39
39
  "devDependencies": {
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "0d8c91264a62f72c627c89b0953e66f4128c20ed"
66
+ "gitHead": "58b5291488bfda9ca99aa22348d6ecbc9ef50bf9"
67
67
  }
package/rnw.js CHANGED
@@ -1 +1 @@
1
- module.exports=function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=7)}([function(e,r){e.exports=require("react")},function(e,r){e.exports=require("@storybook/addon-knobs/react")},function(e,r){e.exports=require("prop-types")},function(e,r){e.exports=require("@times-components/context/rnw")},function(e,r){e.exports=require("@times-components/utils/rnw")},function(e,r){function t(e){var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}t.keys=function(){return[]},t.resolve=t,e.exports=t,t.id=5},function(e,r){e.exports=require("@times-components/user-state/rnw")},function(e,r,t){"use strict";t.r(r);var n=t(0),o=t.n(n),i=(t(2),t(3)),u=t.n(i),c=t(4);function s(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?s(Object(t),!0).forEach((function(r){f(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function f(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var l=function(e){var r=e.children,t=e.serverRender,n=void 0===t||t;return o.a.createElement(u.a.Consumer,null,(function(e){var t=e.user;return o.a.createElement(c.ServerClientRender,{client:function(){var e=window.nuk,n=(void 0===e?{}:e).user||{};return r({user:a(a({},t),n)})},server:n?function(){return r({user:t})}:null})}))},d=function(e){return e.isMetered||e.isLightPackUser},b=function(e){return e.isLoggedIn&&!d(e)};var p,g=function(){jest.mock("@times-components/user-state",(function(){var e=t(5).requireActual("@times-components/user-state").default;function r(e){var t=e.state,n=e.children,o=void 0===n?null:n,i=e.fallback,u=void 0===i?null:i;return r.mockStates.find((function(e){return e===t}))?o:u}return Object.keys(e).reduce((function(r,t){return r[t]=e[t],r}),r),r.mockReset=function(){r.mockStates=[e.showSaveAndShareBar,e.showArticleExtras,e.showArticleSaveButton,e.showCommentingModule]},r.mockReset(),r}));var e=t(6);return beforeEach((function(){e.mockReset()})),e},v="Registered Access",O="Registered Access (Expired)",m={SUBSCRIBER:"Subscriber",RA:v,RA_EXPIRED:O,GUEST:"Guest"},y=t(1);function w(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function S(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?w(Object(t),!0).forEach((function(r){h(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):w(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function h(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var j=(h(p={},"Subscriber",["isLoggedIn"]),h(p,v,["isLoggedIn","isMetered"]),h(p,O,["isLoggedIn","isMetered","isMeteredExpired"]),h(p,"Guest",[]),p),P=["Subscriber",v,O,"Guest"];var k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Subscriber";window.nuk=window.nuk||{},Object.defineProperty(window.nuk,"user",{enumerable:!0,configurable:!0,get:function(){var r=Object(y.select)("Current User State",P,e,"User State"),t=Object(y.boolean)("Is Shared",!1,"User State"),n=j[r].reduce((function(e,r){return S(S({},e),{},h({},r,!0))}),{});return S({isLoggedIn:!1,isMetered:!1,isMeteredExpired:!1,isShared:t},n)}})};function E(e){var r=e.state,t=e.children,n=e.fallback,i=e.serverRender;return o.a.createElement(l,{serverRender:i},(function(e){var o=e.user;return r(o)?t:n}))}t.d(r,"mockUserState",(function(){return g})),t.d(r,"USER_STATES",(function(){return m})),t.d(r,"addUserStateKnobs",(function(){return k})),E.showSaveAndShareBar=function(e){return e.isLoggedIn||e.isShared},E.showArticleExtras=function(e){return function(e){return e.isLoggedIn&&!function(e){return e.isMeteredExpired||function(e){return e.isLightPackUser&&0===e.viewsRemaining}(e)}(e)}(e)||e.isShared},E.showTopicTags=function(e){return e.isLoggedIn||e.isShared},E.showArticleSaveButton=function(e){return e.isLoggedIn},E.showTokenisedEmailShare=function(e){return b(e)},E.showCommentingModule=function(e){return b(e)},E.showJoinTheConversationDialog=function(e){return e.isLoggedIn&&d(e)},E.defaultProps={children:null,serverRender:!0,fallback:null};r.default=E}]);
1
+ module.exports=function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=7)}([function(e,r){e.exports=require("react")},function(e,r){e.exports=require("@storybook/addon-knobs/react")},function(e,r){e.exports=require("prop-types")},function(e,r){e.exports=require("@times-components/context/rnw")},function(e,r){e.exports=require("@times-components/utils/rnw")},function(e,r){function t(e){var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}t.keys=function(){return[]},t.resolve=t,e.exports=t,t.id=5},function(e,r){e.exports=require("@times-components/user-state/rnw")},function(e,r,t){"use strict";t.r(r);var n=t(0),o=t.n(n),u=(t(2),t(3)),i=t.n(u),c=t(4);function s(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?s(Object(t),!0).forEach((function(r){f(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function f(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var l=function(e){var r=e.children,t=e.serverRender,n=void 0===t||t;return o.a.createElement(i.a.Consumer,null,(function(e){var t=e.user;return o.a.createElement(c.ServerClientRender,{client:function(){var e=window.nuk,n=(void 0===e?{}:e).user||{};return r({user:a(a({},t),n)})},server:n?function(){return r({user:t})}:null})}))},d=function(e){return e.hasAccess&&(e.isLoggedIn||e.isShared)},b=function(e){return e.hasAccess&&e.isLoggedIn},p=function(e){return e.isMetered||e.isLightPackUser},v=function(e){return b(e)&&!p(e)};var O,g=function(){jest.mock("@times-components/user-state",(function(){var e=t(5).requireActual("@times-components/user-state").default;function r(e){var t=e.state,n=e.children,o=void 0===n?null:n,u=e.fallback,i=void 0===u?null:u;return r.mockStates.find((function(e){return e===t}))?o:i}return Object.keys(e).reduce((function(r,t){return r[t]=e[t],r}),r),r.mockReset=function(){r.mockStates=[e.showSaveAndShareBar,e.showArticleExtras,e.showTopicTags,e.showArticleSaveButton,e.showTokenisedEmailShare,e.showCommentingModule]},r.mockReset(),r}));var e=t(6);return beforeEach((function(){e.mockReset()})),e},m="Registered Access",w="Registered Access (Expired)",y={SUBSCRIBER:"Subscriber",RA:m,RA_EXPIRED:w,GUEST:"Guest"},h=t(1);function S(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function j(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?S(Object(t),!0).forEach((function(r){P(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):S(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function P(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var k=(P(O={},"Subscriber",["isLoggedIn"]),P(O,m,["isLoggedIn","isMetered"]),P(O,w,["isLoggedIn","isMetered","isMeteredExpired"]),P(O,"Guest",[]),O),E=["Subscriber",m,w,"Guest"];var x=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Subscriber";window.nuk=window.nuk||{},Object.defineProperty(window.nuk,"user",{enumerable:!0,configurable:!0,get:function(){var r=Object(h.select)("Current User State",E,e,"User State"),t=Object(h.boolean)("Is Shared",!1,"User State"),n=k[r].reduce((function(e,r){return j(j({},e),{},P({},r,!0))}),{});return j({isLoggedIn:!1,isMetered:!1,isMeteredExpired:!1,isShared:t},n)}})};function R(e){var r=e.state,t=e.children,n=e.fallback,u=e.serverRender;return o.a.createElement(l,{serverRender:u},(function(e){var o=e.user;return r(o)?t:n}))}t.d(r,"mockUserState",(function(){return g})),t.d(r,"USER_STATES",(function(){return y})),t.d(r,"addUserStateKnobs",(function(){return x})),R.showSaveAndShareBar=function(e){return d(e)},R.showArticleExtras=function(e){return d(e)},R.showTopicTags=function(e){return d(e)},R.showArticleSaveButton=function(e){return b(e)},R.showTokenisedEmailShare=function(e){return v(e)},R.showCommentingModule=function(e){return v(e)},R.showJoinTheConversationDialog=function(e){return function(e){return b(e)&&p(e)}(e)},R.defaultProps={children:null,serverRender:!0,fallback:null};r.default=R}]);