@times-components/user-state 0.4.2 → 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,28 @@
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
+
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)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **TDP-2612:** UserState refactor ([#3167](https://github.com/newsuk/times-components/issues/3167)) ([acb908b](https://github.com/newsuk/times-components/commit/acb908ba9827284f9d91b02c1246f4578716c559))
23
+
24
+
25
+
26
+
27
+
6
28
  ## [0.4.2](https://github.com/newsuk/times-components/compare/@times-components/user-state@0.4.1...@times-components/user-state@0.4.2) (2022-10-14)
7
29
 
8
30
  **Note:** Version bump only for package @times-components/user-state
package/README.md CHANGED
@@ -37,17 +37,6 @@ The `state` property is simply a matcher function that gets passed the current u
37
37
  state and returns true/false to decide whether to return the children or
38
38
  the fallback.
39
39
 
40
- `UserState` also provides a number of preset matchers which you can use.
41
-
42
- - `loggedIn`: Is the user logged in at all (subscriber, RA, RA Expired)
43
- - `meteredExpired`: Is the user RA Expired
44
- - `metered`: Is the user RA or RA Expired
45
- - `shared`: Is the user viewing with a shareToken
46
- - `nonExpiredUser`: Is the user logged in with access (subscriber, RA)
47
- - `fullArticle`: Does the user have access to the full article (subscriber, RA, share token)
48
- - `subscriber`: Is the user a subscriber
49
- - `loggedInOrShared`: Is the user logged in or on a share token (subscriber, RA, RA Expired, share token)
50
-
51
40
  ```js
52
41
  // In the test file
53
42
  import { mockUserState } from "@times-components/user-state";
package/dist/matchers.js CHANGED
@@ -3,58 +3,69 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isLoggedInOrShared = exports.shouldShowFullArticle = exports.isNonMeteredExpiredUser = exports.isSubscriber = exports.isMetered = exports.isShared = exports.isMeteredExpired = exports.hasAccess = exports.isLoggedIn = void 0;
6
+ exports.showJoinTheConversationDialog = exports.showCommentingModule = exports.showTokenisedEmailShare = exports.showArticleSaveButton = exports.showTopicTags = exports.showArticleExtras = exports.showSaveAndShareBar = void 0;
7
7
 
8
- var isLoggedIn = function isLoggedIn(userState) {
9
- return userState.isLoggedIn;
8
+ /* User states */
9
+ var hasAccessLoggedInOrSharedUser = function hasAccessLoggedInOrSharedUser(userState) {
10
+ return userState.hasAccess && (userState.isLoggedIn || userState.isShared);
10
11
  };
11
12
 
12
- exports.isLoggedIn = isLoggedIn;
13
+ var hasAccessLoggedInUser = function hasAccessLoggedInUser(userState) {
14
+ return userState.hasAccess && userState.isLoggedIn;
15
+ };
16
+
17
+ var isMeteredUser = function isMeteredUser(userState) {
18
+ return userState.isMetered || userState.isLightPackUser;
19
+ };
20
+
21
+ var hasAccessLoggedInNonMeteredUser = function hasAccessLoggedInNonMeteredUser(userState) {
22
+ return hasAccessLoggedInUser(userState) && !isMeteredUser(userState);
23
+ };
13
24
 
14
- var hasAccess = function hasAccess(userState) {
15
- return userState.hasAccess;
25
+ var hasAccessLoggedInMeteredUser = function hasAccessLoggedInMeteredUser(userState) {
26
+ return hasAccessLoggedInUser(userState) && isMeteredUser(userState);
16
27
  };
28
+ /* Entitlements */
17
29
 
18
- exports.hasAccess = hasAccess;
19
30
 
20
- var isMeteredExpired = function isMeteredExpired(userState) {
21
- return isLoggedIn(userState) && userState.isMeteredExpired;
31
+ var showSaveAndShareBar = function showSaveAndShareBar(userState) {
32
+ return hasAccessLoggedInOrSharedUser(userState);
22
33
  };
23
34
 
24
- exports.isMeteredExpired = isMeteredExpired;
35
+ exports.showSaveAndShareBar = showSaveAndShareBar;
25
36
 
26
- var isShared = function isShared(userState) {
27
- return userState.isShared;
37
+ var showArticleExtras = function showArticleExtras(userState) {
38
+ return hasAccessLoggedInOrSharedUser(userState);
28
39
  };
29
40
 
30
- exports.isShared = isShared;
41
+ exports.showArticleExtras = showArticleExtras;
31
42
 
32
- var isMetered = function isMetered(userState) {
33
- return isLoggedIn(userState) && userState.isMetered;
43
+ var showTopicTags = function showTopicTags(userState) {
44
+ return hasAccessLoggedInOrSharedUser(userState);
34
45
  };
35
46
 
36
- exports.isMetered = isMetered;
47
+ exports.showTopicTags = showTopicTags;
37
48
 
38
- var isSubscriber = function isSubscriber(userState) {
39
- return isLoggedIn(userState) && !userState.isMetered && !userState.isMeteredExpired;
49
+ var showArticleSaveButton = function showArticleSaveButton(userState) {
50
+ return hasAccessLoggedInUser(userState);
40
51
  };
41
52
 
42
- exports.isSubscriber = isSubscriber;
53
+ exports.showArticleSaveButton = showArticleSaveButton;
43
54
 
44
- var isNonMeteredExpiredUser = function isNonMeteredExpiredUser(user) {
45
- return isLoggedIn(user) && !isMeteredExpired(user);
55
+ var showTokenisedEmailShare = function showTokenisedEmailShare(userState) {
56
+ return hasAccessLoggedInNonMeteredUser(userState);
46
57
  };
47
58
 
48
- exports.isNonMeteredExpiredUser = isNonMeteredExpiredUser;
59
+ exports.showTokenisedEmailShare = showTokenisedEmailShare;
49
60
 
50
- var shouldShowFullArticle = function shouldShowFullArticle(user) {
51
- return isShared(user) || isNonMeteredExpiredUser(user) || hasAccess(user);
61
+ var showCommentingModule = function showCommentingModule(userState) {
62
+ return hasAccessLoggedInNonMeteredUser(userState);
52
63
  };
53
64
 
54
- exports.shouldShowFullArticle = shouldShowFullArticle;
65
+ exports.showCommentingModule = showCommentingModule;
55
66
 
56
- var isLoggedInOrShared = function isLoggedInOrShared(user) {
57
- return isShared(user) || isLoggedIn(user);
67
+ var showJoinTheConversationDialog = function showJoinTheConversationDialog(userState) {
68
+ return hasAccessLoggedInMeteredUser(userState);
58
69
  };
59
70
 
60
- exports.isLoggedInOrShared = isLoggedInOrShared;
71
+ exports.showJoinTheConversationDialog = showJoinTheConversationDialog;
@@ -27,7 +27,7 @@ function mockUserState() {
27
27
  }, MockUserState);
28
28
 
29
29
  MockUserState.mockReset = function () {
30
- MockUserState.mockStates = [RealUserState.fullArticle, RealUserState.loggedIn, RealUserState.loggedInOrShared, RealUserState.subscriber];
30
+ MockUserState.mockStates = [RealUserState.showSaveAndShareBar, RealUserState.showArticleExtras, RealUserState.showTopicTags, RealUserState.showArticleSaveButton, RealUserState.showTokenisedEmailShare, RealUserState.showCommentingModule];
31
31
  };
32
32
 
33
33
  MockUserState.mockReset();
@@ -63,15 +63,13 @@ function UserState(_ref) {
63
63
  });
64
64
  }
65
65
 
66
- UserState.loggedIn = _matchers.isLoggedIn;
67
- UserState.meteredExpired = _matchers.isMeteredExpired;
68
- UserState.metered = _matchers.isMetered;
69
- UserState.shared = _matchers.isShared;
70
- UserState.nonMeteredExpiredUser = _matchers.isNonMeteredExpiredUser;
71
- UserState.fullArticle = _matchers.shouldShowFullArticle;
72
- UserState.subscriber = _matchers.isSubscriber;
73
- UserState.loggedInOrShared = _matchers.isLoggedInOrShared;
74
- UserState.hasAccess = _matchers.hasAccess;
66
+ UserState.showSaveAndShareBar = _matchers.showSaveAndShareBar;
67
+ UserState.showArticleExtras = _matchers.showArticleExtras;
68
+ UserState.showTopicTags = _matchers.showTopicTags;
69
+ UserState.showArticleSaveButton = _matchers.showArticleSaveButton;
70
+ UserState.showTokenisedEmailShare = _matchers.showTokenisedEmailShare;
71
+ UserState.showCommentingModule = _matchers.showCommentingModule;
72
+ UserState.showJoinTheConversationDialog = _matchers.showJoinTheConversationDialog;
75
73
  UserState.propTypes = {
76
74
  state: _propTypes["default"].func.isRequired,
77
75
  children: _propTypes["default"].node,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@times-components/user-state",
3
- "version": "0.4.2",
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,15 +32,15 @@
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.1",
36
- "@times-components/utils": "6.15.1",
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": {
40
40
  "@babel/core": "7.4.4",
41
41
  "@times-components/eslint-config-thetimes": "0.8.18",
42
42
  "@times-components/jest-configurator-web": "0.8.0",
43
- "@times-components/jest-serializer": "3.4.1",
43
+ "@times-components/jest-serializer": "3.4.2",
44
44
  "@times-components/webpack-configurator": "2.1.0",
45
45
  "babel-jest": "24.8.0",
46
46
  "babel-loader": "8.0.5",
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "1da4d8169d316fe83739814ab4ba16ce195709c9"
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),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 f(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){a(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 a(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:f(f({},t),n)})},server:n?function(){return r({user:t})}:null})}))},d=function(e){return e.isLoggedIn},b=function(e){return e.hasAccess},p=function(e){return d(e)&&e.isMeteredExpired},O=function(e){return e.isShared},v=function(e){return d(e)&&!p(e)};var g,y=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.fullArticle,e.loggedIn,e.loggedInOrShared,e.subscriber]},r.mockReset(),r}));var e=t(6);return beforeEach((function(){e.mockReset()})),e},m="Registered Access",j="Registered Access (Expired)",S={SUBSCRIBER:"Subscriber",RA:m,RA_EXPIRED:j,GUEST:"Guest"},w=t(1);function P(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 h(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?P(Object(t),!0).forEach((function(r){E(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):P(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function E(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var x=(E(g={},"Subscriber",["isLoggedIn"]),E(g,m,["isLoggedIn","isMetered"]),E(g,j,["isLoggedIn","isMetered","isMeteredExpired"]),E(g,"Guest",[]),g),k=["Subscriber",m,j,"Guest"];var R=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(w.select)("Current User State",k,e,"User State"),t=Object(w.boolean)("Is Shared",!1,"User State"),n=x[r].reduce((function(e,r){return h(h({},e),{},E({},r,!0))}),{});return h({isLoggedIn:!1,isMetered:!1,isMeteredExpired:!1,isShared:t},n)}})};function M(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 y})),t.d(r,"USER_STATES",(function(){return S})),t.d(r,"addUserStateKnobs",(function(){return R})),M.loggedIn=d,M.meteredExpired=p,M.metered=function(e){return d(e)&&e.isMetered},M.shared=O,M.nonMeteredExpiredUser=v,M.fullArticle=function(e){return O(e)||v(e)||b(e)},M.subscriber=function(e){return d(e)&&!e.isMetered&&!e.isMeteredExpired},M.loggedInOrShared=function(e){return O(e)||d(e)},M.hasAccess=b,M.defaultProps={children:null,serverRender:!0,fallback:null};r.default=M}]);
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}]);