@mjhls/mjh-framework 1.0.933 → 1.0.935-segment-test

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.
Files changed (34) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/ArticleProgramLandingPage.js +1 -1
  3. package/dist/cjs/ExternalResources.js +1 -1
  4. package/dist/cjs/HorizontalArticleListing.js +1 -1
  5. package/dist/cjs/IssueLanding.js +1 -1
  6. package/dist/cjs/{MediaSeriesCard-ebf0b083.js → MediaSeriesCard-659279e0.js} +1 -1
  7. package/dist/cjs/MediaSeriesLanding.js +2 -2
  8. package/dist/cjs/MediaSeriesLandingPaginated.js +2 -2
  9. package/dist/cjs/PartnerDetailListing.js +1 -1
  10. package/dist/cjs/PartnerDetailListingPaginated.js +1 -1
  11. package/dist/cjs/TaxonomyDescription.js +1 -1
  12. package/dist/cjs/VideoProgramLandingPage.js +1 -1
  13. package/dist/cjs/View.js +369 -31
  14. package/dist/cjs/getQuery.js +2 -1
  15. package/dist/cjs/getSerializers.js +1 -1
  16. package/dist/cjs/{index-e6bae72c.js → index-c991e29a.js} +1 -0
  17. package/dist/cjs/index.js +1 -1
  18. package/dist/esm/ArticleProgramLandingPage.js +1 -1
  19. package/dist/esm/ExternalResources.js +1 -1
  20. package/dist/esm/HorizontalArticleListing.js +1 -1
  21. package/dist/esm/IssueLanding.js +1 -1
  22. package/dist/esm/{MediaSeriesCard-5b06f89b.js → MediaSeriesCard-06c6251a.js} +1 -1
  23. package/dist/esm/MediaSeriesLanding.js +2 -2
  24. package/dist/esm/MediaSeriesLandingPaginated.js +2 -2
  25. package/dist/esm/PartnerDetailListing.js +1 -1
  26. package/dist/esm/PartnerDetailListingPaginated.js +1 -1
  27. package/dist/esm/TaxonomyDescription.js +1 -1
  28. package/dist/esm/VideoProgramLandingPage.js +1 -1
  29. package/dist/esm/View.js +371 -33
  30. package/dist/esm/getQuery.js +2 -1
  31. package/dist/esm/getSerializers.js +1 -1
  32. package/dist/esm/{index-2eb00bbf.js → index-6dc67bdb.js} +1 -0
  33. package/dist/esm/index.js +1 -1
  34. package/package.json +1 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # mjh-framework v. 1.0.933
1
+ # mjh-framework v. 1.0.935
2
2
 
3
3
  [![NPM](https://img.shields.io/npm/v/mjh-framework.svg)](https://www.npmjs.com/package/mjh-framework) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
4
4
 
@@ -5,7 +5,7 @@ var slicedToArray = require('./slicedToArray-067dd3bc.js');
5
5
  var _extends = require('./extends-7c86182f.js');
6
6
  var React = require('react');
7
7
  var BlockContent = require('./BlockContent-9ebd251f.js');
8
- var getSerializers = require('./index-e6bae72c.js');
8
+ var getSerializers = require('./index-c991e29a.js');
9
9
  var ArticleSeriesListing = require('./ArticleSeriesListing.js');
10
10
  require('./_commonjsHelpers-06173234.js');
11
11
  require('./core.get-iterator-method-5643aa10.js');
@@ -4,7 +4,7 @@ var _extends = require('./extends-7c86182f.js');
4
4
  var slicedToArray = require('./slicedToArray-067dd3bc.js');
5
5
  var React = require('react');
6
6
  var BlockContent = require('./BlockContent-9ebd251f.js');
7
- var getSerializers = require('./index-e6bae72c.js');
7
+ var getSerializers = require('./index-c991e29a.js');
8
8
  var index = require('./index-f86bb269.js');
9
9
  var Router = require('next/router');
10
10
  var Button = require('react-bootstrap/Button');
@@ -5,7 +5,7 @@ var React = require('react');
5
5
  var ArticleCarousel = require('./ArticleCarousel.js');
6
6
  var index_esm = require('./index.esm-d81454e7.js');
7
7
  var BlockContent = require('./BlockContent-9ebd251f.js');
8
- var getSerializers = require('./index-e6bae72c.js');
8
+ var getSerializers = require('./index-c991e29a.js');
9
9
  require('./_commonjsHelpers-06173234.js');
10
10
  require('./core.get-iterator-method-5643aa10.js');
11
11
  require('./_object-pie-083f2dd6.js');
@@ -5,7 +5,7 @@ var React = require('react');
5
5
  var QueueDeckExpanded = require('./QueueDeckExpanded.js');
6
6
  var Breadcrumbs = require('./Breadcrumbs.js');
7
7
  var BlockContent = require('./BlockContent-9ebd251f.js');
8
- var getSerializers = require('./index-e6bae72c.js');
8
+ var getSerializers = require('./index-c991e29a.js');
9
9
  require('./_commonjsHelpers-06173234.js');
10
10
  require('./core.get-iterator-method-5643aa10.js');
11
11
  require('./_object-pie-083f2dd6.js');
@@ -11,7 +11,7 @@ var urlFor = require('./urlFor.js');
11
11
  var moment = require('./moment-aca40de1.js');
12
12
  var styleInject_es = require('./style-inject.es-dcee06b6.js');
13
13
  var BlockContent = require('./BlockContent-9ebd251f.js');
14
- var getSerializers = require('./index-e6bae72c.js');
14
+ var getSerializers = require('./index-c991e29a.js');
15
15
 
16
16
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
17
 
@@ -5,13 +5,13 @@ var _typeof = require('./typeof-567e31ff.js');
5
5
  var _extends = require('./extends-7c86182f.js');
6
6
  var slicedToArray = require('./slicedToArray-067dd3bc.js');
7
7
  var React = require('react');
8
- var MediaSeriesCard = require('./MediaSeriesCard-ebf0b083.js');
8
+ var MediaSeriesCard = require('./MediaSeriesCard-659279e0.js');
9
9
  require('./index-50be6759.js');
10
10
  require('react-dom');
11
11
  var Link = require('next/link');
12
12
  var MasterDeck = require('./MasterDeck.js');
13
13
  var BlockContent = require('./BlockContent-9ebd251f.js');
14
- var getSerializers = require('./index-e6bae72c.js');
14
+ var getSerializers = require('./index-c991e29a.js');
15
15
  require('./_commonjsHelpers-06173234.js');
16
16
  require('./core.get-iterator-method-5643aa10.js');
17
17
  require('./web.dom.iterable-d98303e0.js');
@@ -5,13 +5,13 @@ var _typeof = require('./typeof-567e31ff.js');
5
5
  var _extends = require('./extends-7c86182f.js');
6
6
  var slicedToArray = require('./slicedToArray-067dd3bc.js');
7
7
  var React = require('react');
8
- var MediaSeriesCard = require('./MediaSeriesCard-ebf0b083.js');
8
+ var MediaSeriesCard = require('./MediaSeriesCard-659279e0.js');
9
9
  require('./index-50be6759.js');
10
10
  require('react-dom');
11
11
  var Link = require('next/link');
12
12
  var BlockContent = require('./BlockContent-9ebd251f.js');
13
13
  var MasterDeckPaginated = require('./MasterDeckPaginated.js');
14
- var getSerializers = require('./index-e6bae72c.js');
14
+ var getSerializers = require('./index-c991e29a.js');
15
15
  require('./_commonjsHelpers-06173234.js');
16
16
  require('./core.get-iterator-method-5643aa10.js');
17
17
  require('./web.dom.iterable-d98303e0.js');
@@ -13,7 +13,7 @@ var QueueDeckExpanded = require('./QueueDeckExpanded.js');
13
13
  var Breadcrumbs = require('./Breadcrumbs.js');
14
14
  var Feature = require('./Feature.js');
15
15
  var urlFor = require('./urlFor.js');
16
- var getSerializers = require('./index-e6bae72c.js');
16
+ var getSerializers = require('./index-c991e29a.js');
17
17
  var BlockContent = require('./BlockContent-9ebd251f.js');
18
18
  require('./_commonjsHelpers-06173234.js');
19
19
  require('./core.get-iterator-method-5643aa10.js');
@@ -13,7 +13,7 @@ var QueueDeckExpandedPaginated = require('./QueueDeckExpandedPaginated.js');
13
13
  var Breadcrumbs = require('./Breadcrumbs.js');
14
14
  var Feature = require('./Feature.js');
15
15
  var urlFor = require('./urlFor.js');
16
- var getSerializers = require('./index-e6bae72c.js');
16
+ var getSerializers = require('./index-c991e29a.js');
17
17
  var BlockContent = require('./BlockContent-9ebd251f.js');
18
18
  require('./_commonjsHelpers-06173234.js');
19
19
  require('./core.get-iterator-method-5643aa10.js');
@@ -6,7 +6,7 @@ var React = require('react');
6
6
  var Router = require('next/router');
7
7
  var Head = require('next/head');
8
8
  var BlockContent = require('./BlockContent-9ebd251f.js');
9
- var getSerializers = require('./index-e6bae72c.js');
9
+ var getSerializers = require('./index-c991e29a.js');
10
10
  require('./_commonjsHelpers-06173234.js');
11
11
  require('./core.get-iterator-method-5643aa10.js');
12
12
  require('./web.dom.iterable-d98303e0.js');
@@ -7,7 +7,7 @@ var BlockContent = require('./BlockContent-9ebd251f.js');
7
7
  var Col = require('react-bootstrap/Col');
8
8
  var Form = require('react-bootstrap/Form');
9
9
  var Button = require('react-bootstrap/Button');
10
- var getSerializers = require('./index-e6bae72c.js');
10
+ var getSerializers = require('./index-c991e29a.js');
11
11
  var VideoSeriesListing = require('./VideoSeriesListing.js');
12
12
  require('./_commonjsHelpers-06173234.js');
13
13
  require('./core.get-iterator-method-5643aa10.js');
package/dist/cjs/View.js CHANGED
@@ -17,7 +17,7 @@ var FormControl = require('react-bootstrap/FormControl');
17
17
  var Button = require('react-bootstrap/Button');
18
18
  var visibilitySensor = require('./visibility-sensor-eb2c5b69.js');
19
19
  var SocialShare = require('./SocialShare.js');
20
- var getSerializers = require('./index-e6bae72c.js');
20
+ var getSerializers = require('./index-c991e29a.js');
21
21
  var AdSlot = require('./AdSlot.js');
22
22
  var SeriesSlider = require('./SeriesSlider-ba0c5d1a.js');
23
23
  var getTargeting = require('./getTargeting-3c5754ac.js');
@@ -351,9 +351,9 @@ var ISI = function ISI(props) {
351
351
  );
352
352
  };
353
353
 
354
- var css = ".RelatedArticles-module_mediaContainer__10h9k {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n margin: 0 -1rem;\n}\n.RelatedArticles-module_mediaCard__3wQbn {\n margin: 0 1rem 1rem;\n width: calc(33% - 1rem);\n display: column;\n flex-direction: row;\n margin-bottom: 0.75rem;\n padding-bottom: 0.75rem;\n border-bottom: none;\n}\n.RelatedArticles-module_mediaCard__3wQbn:last-child {\n border-bottom: none;\n}\n.RelatedArticles-module_cardTitle__3P-Ib {\n font-weight: bold;\n color: #252525;\n margin-bottom: 0.25rem;\n font-size: 15px;\n}\n.RelatedArticles-module_authorListing__1EFg4 span.RelatedArticles-module_text-muted__3b0zX {\n color: #000;\n font-weight: bold;\n}\n.RelatedArticles-module_cardDate__1wOR5 {\n color: var(--dark);\n display: block;\n background: #fff !important;\n margin-bottom: 0;\n}\n.RelatedArticles-module_imgWrapper__5Jx_4 {\n display: block;\n text-align: center;\n margin-bottom: 0.5rem;\n}\n.RelatedArticles-module_imgWrapper__5Jx_4 img {\n height: 135px;\n width: 100%;\n object-fit: cover;\n object-position: center;\n}\n@media screen and (max-width: 1064px) {\n}\n@media screen and (max-width: 968px) {\n .RelatedArticles-module_mediaContainer__10h9k {\n flex-wrap: wrap;\n }\n .RelatedArticles-module_imgWrapper__5Jx_4 {\n display: none;\n }\n .RelatedArticles-module_mediaCard__3wQbn {\n width: 100%;\n margin-bottom: 0.5rem;\n padding: 0;\n }\n .RelatedArticles-module_cardTitle__3P-Ib {\n font-size: 0.75rem;\n margin-bottom: 0;\n }\n}\n";
355
- var styles = { "mediaContainer": "RelatedArticles-module_mediaContainer__10h9k", "mediaCard": "RelatedArticles-module_mediaCard__3wQbn", "cardTitle": "RelatedArticles-module_cardTitle__3P-Ib", "authorListing": "RelatedArticles-module_authorListing__1EFg4", "text-muted": "RelatedArticles-module_text-muted__3b0zX", "cardDate": "RelatedArticles-module_cardDate__1wOR5", "imgWrapper": "RelatedArticles-module_imgWrapper__5Jx_4" };
356
- styleInject_es.styleInject(css);
354
+ var css$1 = ".RelatedArticles-module_mediaContainer__10h9k {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n margin: 0 -1rem;\n}\n.RelatedArticles-module_mediaCard__3wQbn {\n margin: 0 1rem 1rem;\n width: calc(33% - 1rem);\n display: column;\n flex-direction: row;\n margin-bottom: 0.75rem;\n padding-bottom: 0.75rem;\n border-bottom: none;\n}\n.RelatedArticles-module_mediaCard__3wQbn:last-child {\n border-bottom: none;\n}\n.RelatedArticles-module_cardTitle__3P-Ib {\n font-weight: bold;\n color: #252525;\n margin-bottom: 0.25rem;\n font-size: 15px;\n}\n.RelatedArticles-module_authorListing__1EFg4 span.RelatedArticles-module_text-muted__3b0zX {\n color: #000;\n font-weight: bold;\n}\n.RelatedArticles-module_cardDate__1wOR5 {\n color: var(--dark);\n display: block;\n background: #fff !important;\n margin-bottom: 0;\n}\n.RelatedArticles-module_imgWrapper__5Jx_4 {\n display: block;\n text-align: center;\n margin-bottom: 0.5rem;\n}\n.RelatedArticles-module_imgWrapper__5Jx_4 img {\n height: 135px;\n width: 100%;\n object-fit: cover;\n object-position: center;\n}\n@media screen and (max-width: 1064px) {\n}\n@media screen and (max-width: 968px) {\n .RelatedArticles-module_mediaContainer__10h9k {\n flex-wrap: wrap;\n }\n .RelatedArticles-module_imgWrapper__5Jx_4 {\n display: none;\n }\n .RelatedArticles-module_mediaCard__3wQbn {\n width: 100%;\n margin-bottom: 0.5rem;\n padding: 0;\n }\n .RelatedArticles-module_cardTitle__3P-Ib {\n font-size: 0.75rem;\n margin-bottom: 0;\n }\n}\n";
355
+ var styles$1 = { "mediaContainer": "RelatedArticles-module_mediaContainer__10h9k", "mediaCard": "RelatedArticles-module_mediaCard__3wQbn", "cardTitle": "RelatedArticles-module_cardTitle__3P-Ib", "authorListing": "RelatedArticles-module_authorListing__1EFg4", "text-muted": "RelatedArticles-module_text-muted__3b0zX", "cardDate": "RelatedArticles-module_cardDate__1wOR5", "imgWrapper": "RelatedArticles-module_imgWrapper__5Jx_4" };
356
+ styleInject_es.styleInject(css$1);
357
357
 
358
358
  var RelatedArticle = function RelatedArticle(_ref) {
359
359
  var articles = _ref.articles,
@@ -367,15 +367,15 @@ var RelatedArticle = function RelatedArticle(_ref) {
367
367
  }
368
368
  return React__default['default'].createElement(
369
369
  'div',
370
- { className: styles.mediaContainer },
370
+ { className: styles$1.mediaContainer },
371
371
  articles.map(function (article, index) {
372
372
  if (article && article.url && article.url.current) {
373
373
  return React__default['default'].createElement(
374
374
  'div',
375
- { id: 'related-card', key: index, className: styles.mediaCard },
375
+ { id: 'related-card', key: index, className: styles$1.mediaCard },
376
376
  React__default['default'].createElement(
377
377
  'a',
378
- { className: styles.imgWrapper, href: '/view/' + (article.url ? article.url.current : '') },
378
+ { className: styles$1.imgWrapper, href: '/view/' + (article.url ? article.url.current : '') },
379
379
  article.thumbnail ? React__default['default'].createElement('img', {
380
380
  style: { objectFit: 'cover', objectPosition: 'center' },
381
381
  src: article.thumbnail && urlFor({ client: client, source: article.thumbnail.asset, imageWidth: 250 }),
@@ -388,13 +388,13 @@ var RelatedArticle = function RelatedArticle(_ref) {
388
388
  ),
389
389
  React__default['default'].createElement(
390
390
  'div',
391
- { className: styles.mediaBody },
391
+ { className: styles$1.mediaBody },
392
392
  React__default['default'].createElement(
393
393
  'a',
394
394
  { href: '/view/' + (article.url ? article.url.current : '') },
395
395
  React__default['default'].createElement(
396
396
  'div',
397
- { className: styles.cardTitle },
397
+ { className: styles$1.cardTitle },
398
398
  article.title
399
399
  )
400
400
  )
@@ -450,7 +450,336 @@ var getSocialShareDisableFlag = function getSocialShareDisableFlag(article) {
450
450
  return showSocialShare;
451
451
  };
452
452
 
453
- var Article = React.forwardRef(function (props, ref) {
453
+ var css = ".RecommendedArticles-module_recommendTitle__2kUji {\n border-bottom: 2px solid var(--secondary-blue);\n font-size: 1.5rem;\n font-weight: bold;\n color: #0d335a;\n padding: 0.5rem;\n}\n.RecommendedArticles-module_recommendContainer__sZukI {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n margin: 0 -0.5rem;\n}\n.RecommendedArticles-module_recommendTop__1_yqw {\n margin: 0.5rem;\n width: 100%;\n flex-basis: 100%;\n display: flex;\n\n}\n.RecommendedArticles-module_recommendTopImg__1b9gu {\n min-width: 55%;\n width: 55%;\n height: 100%;\n}\n.RecommendedArticles-module_recommendTopImg__1b9gu img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.RecommendedArticles-module_recommendTopBody__-13FI {\n margin-left: 1rem;\n line-height: 1.3;\n color: #121212;\n display: flex;\n flex-direction: column;\n}\n.RecommendedArticles-module_topTitle__2EafN {\n font-size: 25px;\n font-weight: bold;\n margin-bottom: 0.5rem;\n}\n.RecommendedArticles-module_topBody__2_VNi {\n font-size: 19px;\n margin-bottom: 0.5rem;\n}\n.RecommendedArticles-module_topLink__2RnXu {\n font-size: 19px;\n color: rgb(43, 43, 151);\n text-decoration: underline;\n margin-top: auto;\n}\n.RecommendedArticles-module_smContainer__4byBO {\n width: calc(25% - 1rem);\n margin: 0 0.5rem;\n}\n.RecommendedArticles-module_smImage__TYZGY img {\n width: 100%;\n}\n.RecommendedArticles-module_title__3q1ud {\n margin-top: 1rem;\n line-height: 1.2;\n color: #121212;\n}\n.RecommendedArticles-module_category__2jRto {\n text-transform: uppercase;\n font-size: 16px;\n letter-spacing: 2px;\n margin: 0.25rem 0;\n}\n\n/* media query */\n\n@media screen and (max-width: 1399px) {\n .RecommendedArticles-module_topTitle__2EafN {\n font-size: 21px;\n }\n .RecommendedArticles-module_topBody__2_VNi {\n font-size: 15px;\n }\n}\n@media screen and (max-width: 1191px) {\n .RecommendedArticles-module_topTitle__2EafN {\n font-size: 23px;\n }\n .RecommendedArticles-module_topBody__2_VNi,\n .RecommendedArticles-module_topLink__2RnXu {\n font-size: 17px;\n }\n}\n@media screen and (max-width: 968px) {\n .RecommendedArticles-module_topTitle__2EafN {\n font-size: 18px;\n }\n .RecommendedArticles-module_topBody__2_VNi,\n .RecommendedArticles-module_topLink__2RnXu {\n font-size: 15px;\n }\n}\n@media screen and (max-width: 768px) {\n .RecommendedArticles-module_recommendTop__1_yqw {\n flex-direction: column;\n }\n .RecommendedArticles-module_recommendTopImg__1b9gu,\n .RecommendedArticles-module_recommendTopBody__-13FI {\n width: 100%;\n margin: 0;\n }\n .RecommendedArticles-module_recommendTopBody__-13FI {\n margin-bottom: 1rem;\n }\n .RecommendedArticles-module_smContainer__4byBO {\n width: calc(50% - 1rem);\n }\n}";
454
+ var styles = { "recommendTitle": "RecommendedArticles-module_recommendTitle__2kUji", "recommendContainer": "RecommendedArticles-module_recommendContainer__sZukI", "recommendTop": "RecommendedArticles-module_recommendTop__1_yqw", "recommendTopImg": "RecommendedArticles-module_recommendTopImg__1b9gu", "recommendTopBody": "RecommendedArticles-module_recommendTopBody__-13FI", "topTitle": "RecommendedArticles-module_topTitle__2EafN", "topBody": "RecommendedArticles-module_topBody__2_VNi", "topLink": "RecommendedArticles-module_topLink__2RnXu", "smContainer": "RecommendedArticles-module_smContainer__4byBO", "smImage": "RecommendedArticles-module_smImage__TYZGY", "title": "RecommendedArticles-module_title__3q1ud", "category": "RecommendedArticles-module_category__2jRto" };
455
+ styleInject_es.styleInject(css);
456
+
457
+ var _this$2 = undefined;
458
+
459
+ var Recommended = function Recommended(props) {
460
+ var article = props.article,
461
+ client = props.client,
462
+ _props$index = props.index,
463
+ index = _props$index === undefined ? 0 : _props$index,
464
+ cpModificationRequired = props.cpModificationRequired;
465
+
466
+ var _useState = React.useState(false),
467
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
468
+ segmentLoaded = _useState2[0],
469
+ setSegmentLoaded = _useState2[1];
470
+
471
+ var _useState3 = React.useState([]),
472
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
473
+ articles = _useState4[0],
474
+ setArticles = _useState4[1];
475
+
476
+ var _useState5 = React.useState(false),
477
+ _useState6 = slicedToArray._slicedToArray(_useState5, 2),
478
+ loaded = _useState6[0],
479
+ setLoaded = _useState6[1];
480
+
481
+ var starting = index * 5;
482
+ var contentMapping = {
483
+ videos: 'video',
484
+ articles: 'article',
485
+ podcasts: 'podcast'
486
+ };
487
+
488
+ var mainCategories = article.content_placement.filter(function (cp) {
489
+ return cp.usedForRecommendations === true;
490
+ }).map(function (cp) {
491
+ return cp.name;
492
+ }).sort();
493
+
494
+ React.useEffect(function () {
495
+ try {
496
+ if (!segmentLoaded) {
497
+ return;
498
+ }
499
+ if (mainCategories.length > 0) {
500
+ //console.log(mainCategories)
501
+ analytics.track('Article Category Viewed', {
502
+ categories: stringify._JSON$stringify(mainCategories)
503
+ });
504
+ }
505
+ var anonymousId = analytics.user().anonymousId();
506
+ // get users traits
507
+ var getSegmentProfile = function () {
508
+ var _ref = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee() {
509
+ var response, data, favoriteCategories, articlesQuery, videosQuery, podcastQuery, params, _ref2, _ref3, _articles, videos, podcasts;
510
+
511
+ return asyncToGenerator.regenerator.wrap(function _callee$(_context) {
512
+ while (1) {
513
+ switch (_context.prev = _context.next) {
514
+ case 0:
515
+ _context.next = 2;
516
+ return fetch('/api/getSegmentProfile', {
517
+ method: 'POST',
518
+ body: stringify._JSON$stringify({ anonymousId: anonymousId })
519
+ });
520
+
521
+ case 2:
522
+ response = _context.sent;
523
+ _context.next = 5;
524
+ return response.json();
525
+
526
+ case 5:
527
+ data = _context.sent;
528
+
529
+ if (!(data && data.traits && data.traits.favorite_article_category)) {
530
+ _context.next = 20;
531
+ break;
532
+ }
533
+
534
+ //console.log('%csegment user profile', 'font-size:1.5rem;color:#000000;padding:1rem;background-color:yellow;', data.traits)
535
+ favoriteCategories = JSON.parse(data.traits.favorite_article_category);
536
+ // grab 3 articles from sanity different from the one currently being read
537
+
538
+ articlesQuery = '*[_type == \'article\'\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible\n && references(*[_type == \'contentCategory\' && name == \'Articles\']._id)\n && references(*[_type == \'taxonomy\' ' + favoriteCategories.map(function (cat) {
539
+ return ' && name == \'' + cat + '\' ';
540
+ }) + ']._id)\n && defined(published)\n && _id != $id\n && dateTime(published) <= dateTime(now())] | order(published desc) [' + starting + '...' + (starting + 5) + '] {\n ...,\n title,\n thumbnail,\n url,\n contentCategory->,\n published,\n }';
541
+ videosQuery = '*[_type == \'article\'\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible\n && references(*[_type == \'contentCategory\' && name == \'Videos\']._id)\n && references(*[_type == \'taxonomy\' ' + favoriteCategories.map(function (cat) {
542
+ return ' && name == \'' + cat + '\' ';
543
+ }) + ']._id)\n && defined(published)\n && _id != $id\n && dateTime(published) <= dateTime(now())] | order(published desc) [' + starting + '...' + (starting + 1) + '] {\n ...,\n title,\n thumbnail,\n url,\n contentCategory->,\n published,\n }';
544
+ podcastQuery = '*[_type == \'article\'\n && !(_id in path("drafts.**"))\n && defined(title)\n && defined(url)\n && is_visible\n && references(*[_type == \'contentCategory\' && name == \'Podcasts\']._id)\n && references(*[_type == \'taxonomy\' ' + favoriteCategories.map(function (cat) {
545
+ return ' && name == \'' + cat + '\' ';
546
+ }) + ']._id)\n && defined(published)\n && _id != $id\n && dateTime(published) <= dateTime(now())] | order(published desc) [' + starting + '...' + (starting + 2) + '] {\n ...,\n title,\n thumbnail,\n url,\n contentCategory->,\n published,\n }';
547
+ params = {
548
+ id: article._id
549
+ };
550
+ _context.next = 14;
551
+ return asyncToGenerator._Promise.all([client.fetch(articlesQuery, params), client.fetch(videosQuery, params), client.fetch(podcastQuery, params)]);
552
+
553
+ case 14:
554
+ _ref2 = _context.sent;
555
+ _ref3 = slicedToArray._slicedToArray(_ref2, 3);
556
+ _articles = _ref3[0];
557
+ videos = _ref3[1];
558
+ podcasts = _ref3[2];
559
+
560
+ if (_articles) {
561
+ if (videos[0] && _articles[2]) {
562
+ _articles[2] = videos[0];
563
+ }
564
+ if (videos[1] && _articles[4]) {
565
+ _articles[4] = videos[1];
566
+ }
567
+ if (podcasts[0] && _articles[3]) {
568
+ _articles[3] = podcasts[0];
569
+ }
570
+ setArticles(_articles);
571
+ }
572
+
573
+ case 20:
574
+ case 'end':
575
+ return _context.stop();
576
+ }
577
+ }
578
+ }, _callee, _this$2);
579
+ }));
580
+
581
+ return function getSegmentProfile() {
582
+ return _ref.apply(this, arguments);
583
+ };
584
+ }();
585
+
586
+ getSegmentProfile();
587
+ } catch (err) {
588
+ console.log(err);
589
+ }
590
+ }, [segmentLoaded]);
591
+
592
+ React.useEffect(function () {
593
+ if (articles && articles.length > 0) {
594
+ setLoaded(true);
595
+ }
596
+ }, [articles]);
597
+
598
+ React.useEffect(function () {
599
+ try {
600
+ analytics.ready(function () {
601
+ setSegmentLoaded(function () {
602
+ return true;
603
+ });
604
+ });
605
+ } catch (err) {
606
+ console.log(err);
607
+ }
608
+ }, []);
609
+
610
+ return React__default['default'].createElement(
611
+ 'div',
612
+ { id: 'recommended' },
613
+ loaded ? React__default['default'].createElement(
614
+ React__default['default'].Fragment,
615
+ null,
616
+ React__default['default'].createElement(
617
+ 'h4',
618
+ { className: styles.recommendTitle },
619
+ 'Recommended For You'
620
+ ),
621
+ React__default['default'].createElement(
622
+ 'div',
623
+ { className: styles.recommendContainer, id: 'recommendedContent' },
624
+ articles.map(function (article, index) {
625
+ if (index === 0) {
626
+ return React__default['default'].createElement(
627
+ 'div',
628
+ { key: article._id + ('-' + index), className: styles.recommendTop },
629
+ React__default['default'].createElement(
630
+ 'div',
631
+ { className: styles.recommendTopImg },
632
+ React__default['default'].createElement(
633
+ 'a',
634
+ { href: '/view/' + article.url.current },
635
+ React__default['default'].createElement('img', { src: urlFor({ source: article.thumbnail, client: client, imageHeight: 306, imageWidth: 544 }) })
636
+ )
637
+ ),
638
+ React__default['default'].createElement(
639
+ 'div',
640
+ { className: styles.recommendTopBody },
641
+ React__default['default'].createElement(
642
+ 'div',
643
+ { className: styles.topTitle },
644
+ article.title
645
+ ),
646
+ React__default['default'].createElement(
647
+ 'p',
648
+ { className: styles.topBody },
649
+ article.summary
650
+ ),
651
+ React__default['default'].createElement(
652
+ 'a',
653
+ { href: '/view/' + article.url.current, className: styles.topLink },
654
+ '>> ',
655
+ 'Read Article'
656
+ )
657
+ )
658
+ );
659
+ } else {
660
+ return React__default['default'].createElement(
661
+ 'div',
662
+ { key: article._id + ('-' + index), className: styles.smContainer },
663
+ React__default['default'].createElement(
664
+ 'div',
665
+ { className: styles.category },
666
+ contentMapping[article.contentCategory.name.toLowerCase()] ? contentMapping[article.contentCategory.name.toLowerCase()] : article.contentCategory.name
667
+ ),
668
+ React__default['default'].createElement(
669
+ 'a',
670
+ { href: '/view/' + article.url.current },
671
+ React__default['default'].createElement(
672
+ 'div',
673
+ { className: styles.smImage },
674
+ React__default['default'].createElement('img', { src: urlFor({ source: article.thumbnail, client: client, imageHeight: 270, imageWidth: 480 }) })
675
+ ),
676
+ React__default['default'].createElement(
677
+ 'div',
678
+ { className: styles.title },
679
+ article.title
680
+ )
681
+ )
682
+ );
683
+ }
684
+ })
685
+ )
686
+ ) : React__default['default'].createElement(
687
+ 'section',
688
+ { id: 'related-content-section', className: 'my-1' },
689
+ (article.relatedArticle || RelevantTopics()) && React__default['default'].createElement(
690
+ 'p',
691
+ { className: 'mb-0' },
692
+ React__default['default'].createElement(
693
+ 'b',
694
+ null,
695
+ 'Related Content:'
696
+ )
697
+ ),
698
+ React__default['default'].createElement(RelevantTopics, { article: article, cpModificationRequired: cpModificationRequired, Settings: props.Settings }),
699
+ React__default['default'].createElement(
700
+ 'div',
701
+ { className: 'pt-2' },
702
+ React__default['default'].createElement(RelatedArticle, {
703
+ articles: article.relatedArticle,
704
+ client: client,
705
+ fallbackImage: props.Settings.logo,
706
+ showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage
707
+ })
708
+ )
709
+ )
710
+ );
711
+ };
712
+
713
+ var RelevantTopics = function RelevantTopics(props) {
714
+ var article = props.article,
715
+ cpModificationRequired = props.cpModificationRequired;
716
+ var content_placement = article.content_placement,
717
+ documentGroupMapping = article.documentGroupMapping,
718
+ issueGroup = article.issueGroup;
719
+
720
+ if (content_placement && content_placement.length > 0 || documentGroupMapping && documentGroupMapping.length > 0) {
721
+ var relatedLinks = [];
722
+ if (documentGroupMapping && documentGroupMapping.length > 0) {
723
+ documentGroupMapping.forEach(function (documentGroup) {
724
+ if (documentGroup.isShow === false || documentGroup.excludeRelatedContents) {
725
+ return null;
726
+ }
727
+ if (documentGroup.parent) {
728
+ relatedLinks = [].concat(toConsumableArray._toConsumableArray(relatedLinks), [{
729
+ label: documentGroup.name,
730
+ href: cpModificationRequired ? getDocumentGroupUrl(documentGroup) : documentGroup.parent.identifier && documentGroup.parent.identifier.current && !documentGroup.path.includes('/') ? '/' + documentGroup.parent.identifier.current + '/' + documentGroup.path : '/' + documentGroup.path
731
+ }]);
732
+ }
733
+ });
734
+ }
735
+ if (content_placement && content_placement.length > 0) {
736
+ content_placement.filter(function (item) {
737
+ return item.path !== 'news';
738
+ }).forEach(function (cp) {
739
+ if (cp.excludeRelatedContents) {
740
+ return null;
741
+ }
742
+ var cp_url = cpModificationRequired ? getTargeting.getContentPlacementUrl(cp) : cp.path;
743
+ var href = '/' + cp_url;
744
+ relatedLinks = [].concat(toConsumableArray._toConsumableArray(relatedLinks), [{ label: cp.name, href: href }]);
745
+ });
746
+ }
747
+ if (issueGroup && issueGroup.name && issueGroup.identifier && issueGroup.identifier.current && issueGroup.parent && issueGroup.parent.identifier && issueGroup.parent.identifier.current) {
748
+ var _props$Settings$issue = props.Settings.issueMapping,
749
+ issueMapping = _props$Settings$issue === undefined ? '/publications' : _props$Settings$issue;
750
+
751
+ relatedLinks = [].concat(toConsumableArray._toConsumableArray(relatedLinks), [{ label: issueGroup.name, href: issueMapping + '/' + issueGroup.parent.identifier.current + '/' + issueGroup.identifier.current }]);
752
+ }
753
+ if (relatedLinks && relatedLinks.length > 0) {
754
+ return React__default['default'].createElement(
755
+ 'div',
756
+ null,
757
+ relatedLinks.map(function (relatedLink, index) {
758
+ if (relatedLink && relatedLink.href && relatedLink.label) {
759
+ return React__default['default'].createElement(
760
+ 'span',
761
+ { key: relatedLink.label, className: 'related-link' },
762
+ React__default['default'].createElement(
763
+ 'a',
764
+ { className: 'related-links', style: { color: 'blue' }, href: relatedLink.href },
765
+ relatedLink.label
766
+ ),
767
+ React__default['default'].createElement(
768
+ 'style',
769
+ { jsx: 'true' },
770
+ '\n .related-link:not(:first-child):before {\n content: \' | \';\n }\n '
771
+ )
772
+ );
773
+ }
774
+ })
775
+ );
776
+ }
777
+ return null;
778
+ }
779
+ return null;
780
+ };
781
+
782
+ var Article = React__default['default'].memo(React.forwardRef(function (props, ref) {
454
783
  var onVote = function () {
455
784
  var _ref = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee(nodeKey, selectedChoice) {
456
785
  var response, result;
@@ -563,7 +892,9 @@ var Article = React.forwardRef(function (props, ref) {
563
892
  disqusConfig = props.disqusConfig,
564
893
  showDisqus = props.showDisqus,
565
894
  _props$downloadCitati = props.downloadCitation,
566
- downloadCitation = _props$downloadCitati === undefined ? false : _props$downloadCitati;
895
+ downloadCitation = _props$downloadCitati === undefined ? false : _props$downloadCitati,
896
+ _props$useSegmentReco = props.useSegmentRecommendedArticles,
897
+ useSegmentRecommendedArticles = _props$useSegmentReco === undefined ? false : _props$useSegmentReco;
567
898
  var sliderData = props.sliderData;
568
899
 
569
900
 
@@ -796,27 +1127,31 @@ var Article = React.forwardRef(function (props, ref) {
796
1127
 
797
1128
  var RelatedContent = function RelatedContent() {
798
1129
  return React__default['default'].createElement(
799
- 'section',
800
- { id: 'related-content-section', className: 'my-1' },
801
- (article.relatedArticle || RelevantTopics()) && React__default['default'].createElement(
802
- 'p',
803
- { className: 'mb-0' },
1130
+ 'div',
1131
+ null,
1132
+ useSegmentRecommendedArticles ? React__default['default'].createElement(Recommended, { client: client, article: article, index: props.index, Settings: props.Settings, showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage, cpModificationRequired: cpModificationRequired }) : React__default['default'].createElement(
1133
+ 'section',
1134
+ { id: 'related-content-section', className: 'my-1' },
1135
+ (article.relatedArticle || RelevantTopics()) && React__default['default'].createElement(
1136
+ 'p',
1137
+ { className: 'mb-0' },
1138
+ React__default['default'].createElement(
1139
+ 'b',
1140
+ null,
1141
+ 'Related Content:'
1142
+ )
1143
+ ),
1144
+ React__default['default'].createElement(RelevantTopics, null),
804
1145
  React__default['default'].createElement(
805
- 'b',
806
- null,
807
- 'Related Content:'
1146
+ 'div',
1147
+ { className: 'pt-2' },
1148
+ React__default['default'].createElement(RelatedArticle, {
1149
+ articles: article.relatedArticle,
1150
+ client: client,
1151
+ fallbackImage: props.Settings.logo,
1152
+ showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage
1153
+ })
808
1154
  )
809
- ),
810
- React__default['default'].createElement(RelevantTopics, null),
811
- React__default['default'].createElement(
812
- 'div',
813
- { className: 'pt-2' },
814
- React__default['default'].createElement(RelatedArticle, {
815
- articles: article.relatedArticle,
816
- client: client,
817
- fallbackImage: props.Settings.logo,
818
- showRelatedArticleFallbackImage: props.showRelatedArticleFallbackImage
819
- })
820
1155
  )
821
1156
  );
822
1157
  };
@@ -1427,6 +1762,8 @@ var Article = React.forwardRef(function (props, ref) {
1427
1762
  } else {
1428
1763
  return detail();
1429
1764
  }
1765
+ }), function (prevProps, nextProps) {
1766
+ return prevProps.article === nextProps.article;
1430
1767
  });
1431
1768
 
1432
1769
  var _this$1 = undefined;
@@ -1711,7 +2048,8 @@ var ArticleQueue = function ArticleQueue(props) {
1711
2048
  active: active === article._id
1712
2049
  // Passing queueData to check for single article
1713
2050
  , queueData: queueData,
1714
- showRelatedArticles: showRelatedArticles
2051
+ showRelatedArticles: showRelatedArticles,
2052
+ index: index
1715
2053
  }))
1716
2054
  );
1717
2055
  })