@mjhls/mjh-framework 1.0.324 → 1.0.325

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/dist/cjs/index.js CHANGED
@@ -10,8 +10,8 @@ require('./web.dom.iterable-8b02d65e.js');
10
10
  var debounce = require('./debounce-528ad412.js');
11
11
  var main = require('./main-987c23c6.js');
12
12
  var toConsumableArray = require('./toConsumableArray-34b5e9a7.js');
13
- var _extends$2 = require('./extends-e94dbea5.js');
14
- var inherits$2 = require('./inherits-37d5840f.js');
13
+ var _extends$2 = require('./extends-4c2285ff.js');
14
+ var inherits$2 = require('./inherits-7548e3e8.js');
15
15
  var React = require('react');
16
16
  var React__default = _interopDefault(React);
17
17
  var PropTypes = _interopDefault(require('prop-types'));
@@ -33,11 +33,11 @@ require('./promise-3b44b2a3.js');
33
33
  require('./ADInfeed-b042a194.js');
34
34
  var DeckContent = require('./DeckContent.js');
35
35
  var get$1 = require('./get-3b23d857.js');
36
- var GridContent = require('./GridContent-139bbe70.js');
36
+ var GridContent = require('./GridContent-9f212ec5.js');
37
37
  var DeckQueue = require('./DeckQueue.js');
38
38
  require('react-bootstrap/Media');
39
39
  var ThumbnailCard = require('./ThumbnailCard.js');
40
- var TaxonomyCard = require('./TaxonomyCard-d8eed035.js');
40
+ var TaxonomyCard = require('./TaxonomyCard-e36602e8.js');
41
41
  require('./react-social-icons-cd0d9d3b.js');
42
42
  var smoothscroll = require('./smoothscroll-95231a70.js');
43
43
  var GroupDeck = require('./GroupDeck.js');
@@ -16189,16 +16189,18 @@ var InscreenSensor = function (_React$Component) {
16189
16189
  }(React__default.Component);
16190
16190
 
16191
16191
  var renderAuthor = function renderAuthor(authorName, authorURL, index, length) {
16192
- if (authorName && authorURL) return React__default.createElement(
16193
- Link,
16194
- { href: '/authors/' + authorURL.current, key: index },
16195
- React__default.createElement(
16196
- 'a',
16197
- null,
16198
- authorName,
16199
- length !== index + 1 && React__default.createElement('br', null)
16200
- )
16201
- );else if (authorName) {
16192
+ if (authorName && authorURL) {
16193
+ return React__default.createElement(
16194
+ Link,
16195
+ { href: '/authors/' + authorURL.current, key: index },
16196
+ React__default.createElement(
16197
+ 'a',
16198
+ null,
16199
+ authorName,
16200
+ length !== index + 1 && React__default.createElement('br', null)
16201
+ )
16202
+ );
16203
+ } else if (authorName) {
16202
16204
  return React__default.createElement(
16203
16205
  'span',
16204
16206
  { key: index },
@@ -16222,17 +16224,41 @@ var get_content_placement_url = function get_content_placement_url(cp) {
16222
16224
  return cp_url;
16223
16225
  };
16224
16226
 
16227
+ var getArticleSummary = function getArticleSummary(article) {
16228
+ if (article.summary && article.summary.length > 0) {
16229
+ return article.summary;
16230
+ } else {
16231
+ var _article$body = article.body,
16232
+ body = _article$body === undefined ? [] : _article$body;
16233
+
16234
+ var desc = '';
16235
+ body.some(function (children) {
16236
+ children.children && children.children.some(function (item) {
16237
+ if (item.text && String(item.text).trim().length > 0 && desc === '') {
16238
+ desc = String(item.text);
16239
+ return true;
16240
+ }
16241
+ });
16242
+ if (desc !== '') {
16243
+ return true;
16244
+ }
16245
+ });
16246
+ return desc;
16247
+ }
16248
+ };
16249
+
16225
16250
  var Article = function Article(props) {
16226
16251
  var client = props.client,
16227
16252
  pageview = props.pageview,
16228
16253
  videoAccountIDs = props.videoAccountIDs,
16254
+ drupalLeadSettings = props.drupalLeadSettings,
16229
16255
  _props$article = props.article,
16230
16256
  title = _props$article.title,
16231
16257
  passwordLock = _props$article.passwordLock,
16232
16258
  authorDetails = _props$article.authorDetails,
16259
+ pageNumber = _props$article.pageNumber,
16233
16260
  published = _props$article.published,
16234
16261
  articleBody = _props$article.body,
16235
- summary = _props$article.summary,
16236
16262
  thumbnail = _props$article.thumbnail,
16237
16263
  content_placement = _props$article.content_placement,
16238
16264
  _props$article$url = _props$article.url;
@@ -16249,6 +16275,8 @@ var Article = function Article(props) {
16249
16275
  cpModificationRequired = props.cpModificationRequired;
16250
16276
 
16251
16277
 
16278
+ var summary = getArticleSummary(props.article);
16279
+
16252
16280
  var urlFor = function urlFor(source) {
16253
16281
  return index.imageUrlBuilder(client).image(source);
16254
16282
  };
@@ -16274,70 +16302,119 @@ var Article = function Article(props) {
16274
16302
  return null;
16275
16303
  };
16276
16304
 
16277
- var shareVia = shareOptions.shareVia,
16278
- shareSubject = shareOptions.shareSubject,
16279
- twitterSiteName = shareOptions.twitterSiteName,
16280
- shareImageDefault = shareOptions.shareImageDefault,
16281
- shareSiteTitle = shareOptions.shareSiteTitle;
16282
-
16283
- var shareUrl = shareOptions.shareBaseUrl + props.url;
16284
- var shareTitle = title;
16285
- var shareSummary = summary;
16286
- var shareImage = thumbnail && thumbnail.asset ? urlFor(thumbnail.asset).url() : shareImageDefault;
16287
- var siteName = props.website.title;
16305
+ var renderRelevantTopicsDropdown = function renderRelevantTopicsDropdown() {
16306
+ if (content_placement && content_placement.length > 0) {
16307
+ return React__default.createElement(
16308
+ Dropdown,
16309
+ { style: { marginBottom: '1rem' } },
16310
+ React__default.createElement(
16311
+ Dropdown.Toggle,
16312
+ { variant: 'primary', id: 'partner-dropdown' },
16313
+ 'Relevant Topics'
16314
+ ),
16315
+ React__default.createElement(
16316
+ Dropdown.Menu,
16317
+ null,
16318
+ content_placement.length > 0 ? content_placement.map(function (cp, index) {
16319
+ var cp_url = cpModificationRequired ? get_content_placement_url(cp) : cp.path;
16320
+ var href = '/' + cp_url;
16321
+ return React__default.createElement(
16322
+ Dropdown.Item,
16323
+ { key: index, href: href },
16324
+ cp.name
16325
+ );
16326
+ }) : null
16327
+ )
16328
+ );
16329
+ }
16330
+ return null;
16331
+ };
16288
16332
 
16289
- //Native Ads
16290
- var findIndex = function findIndex(arr) {
16291
- var indexes = [];
16292
- var _iteratorNormalCompletion = true;
16293
- var _didIteratorError = false;
16294
- var _iteratorError = undefined;
16333
+ var renderBlockContent = function renderBlockContent(payload) {
16334
+ var _payload = payload,
16335
+ body = _payload.body;
16295
16336
 
16296
- try {
16297
- for (var _iterator = slicedToArray._getIterator(arr), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
16298
- var ele = _step.value;
16337
+ var findIndex = function findIndex(arr) {
16338
+ var indexes = [];
16339
+ var _iteratorNormalCompletion = true;
16340
+ var _didIteratorError = false;
16341
+ var _iteratorError = undefined;
16299
16342
 
16300
- if (ele['_type'] === 'block' && ele.children.some(function (child) {
16301
- return child.text.trim().length > 0;
16302
- }) && ele['listItem'] != 'bullet' && ele['style'] === 'normal') {
16303
- indexes.push(arr.indexOf(ele));
16304
- }
16305
- }
16306
- } catch (err) {
16307
- _didIteratorError = true;
16308
- _iteratorError = err;
16309
- } finally {
16310
16343
  try {
16311
- if (!_iteratorNormalCompletion && _iterator.return) {
16312
- _iterator.return();
16344
+ for (var _iterator = slicedToArray._getIterator(arr), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
16345
+ var ele = _step.value;
16346
+
16347
+ if (ele['_type'] === 'block' && ele.children.some(function (child) {
16348
+ return child.text.trim().length > 0;
16349
+ }) && ele['listItem'] !== 'bullet' && ele['style'] === 'normal') {
16350
+ indexes.push(arr.indexOf(ele));
16351
+ }
16313
16352
  }
16353
+ } catch (err) {
16354
+ _didIteratorError = true;
16355
+ _iteratorError = err;
16314
16356
  } finally {
16315
- if (_didIteratorError) {
16316
- throw _iteratorError;
16357
+ try {
16358
+ if (!_iteratorNormalCompletion && _iterator.return) {
16359
+ _iterator.return();
16360
+ }
16361
+ } finally {
16362
+ if (_didIteratorError) {
16363
+ throw _iteratorError;
16364
+ }
16317
16365
  }
16318
16366
  }
16319
- }
16320
16367
 
16321
- return indexes;
16368
+ return indexes;
16369
+ };
16370
+ var indexes = findIndex(body);
16371
+ if (indexes.length >= 2 && body.length > 3 && payload.contextualAD) {
16372
+ payload = _extends$2._extends({}, payload, {
16373
+ contextualAD: _extends$2._extends({}, payload.contextualAD, {
16374
+ slotId: (payload.contextualAD.slotId || 'native-ad') + '-' + payload._id
16375
+ })
16376
+ });
16377
+ var selectedIndex = indexes[1] + 1;
16378
+ return React__default.createElement(
16379
+ React__default.Fragment,
16380
+ null,
16381
+ React__default.createElement(TaxonomyCard.BlockContent, _extends$2._extends({
16382
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings),
16383
+ blocks: [].concat(toConsumableArray._toConsumableArray(body.slice(0, selectedIndex))),
16384
+ imageOptions: { w: 320, h: 240, fit: 'max' }
16385
+ }, client.config())),
16386
+ React__default.createElement(
16387
+ 'div',
16388
+ { className: 'contextual-native-ad' },
16389
+ React__default.createElement(AdSlot.DFPAdSlot, _extends$2._extends({}, payload.contextualAD, { refreshFlag: false }))
16390
+ ),
16391
+ React__default.createElement(TaxonomyCard.BlockContent, _extends$2._extends({
16392
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings),
16393
+ blocks: [].concat(toConsumableArray._toConsumableArray(body.slice(selectedIndex))),
16394
+ imageOptions: { w: 320, h: 240, fit: 'max' }
16395
+ }, client.config()))
16396
+ );
16397
+ } else {
16398
+ return React__default.createElement(TaxonomyCard.BlockContent, _extends$2._extends({
16399
+ serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true, drupalLeadSettings),
16400
+ blocks: articleBody,
16401
+ imageOptions: { w: 320, h: 240, fit: 'max' }
16402
+ }, client.config()));
16403
+ }
16322
16404
  };
16323
16405
 
16324
- var insert = function insert(arr, index, newElement) {
16325
- return [].concat(toConsumableArray._toConsumableArray(arr.slice(0, index)), [newElement], toConsumableArray._toConsumableArray(arr.slice(index)));
16326
- };
16327
- var newBody = [];
16328
- if (props.article.contextualAD) {
16329
- var indexes = findIndex(articleBody);
16406
+ var shareVia = shareOptions.shareVia,
16407
+ shareSubject = shareOptions.shareSubject,
16408
+ twitterSiteName = shareOptions.twitterSiteName,
16409
+ shareImageDefault = shareOptions.shareImageDefault,
16410
+ shareBaseUrl = shareOptions.shareBaseUrl,
16411
+ shareSiteTitle = shareOptions.shareSiteTitle;
16330
16412
 
16331
- if (indexes.length >= 2 && articleBody.length > 3) {
16332
- var setIndex = indexes[1];
16333
- newBody = insert(articleBody, setIndex + 1, props.article.contextualAD);
16334
- } else {
16335
- newBody = articleBody;
16336
- }
16337
- } else {
16338
- newBody = articleBody;
16339
- }
16340
- //End Native Ads
16413
+ var shareUrl = shareBaseUrl + props.url;
16414
+ var shareTitle = title;
16415
+ var shareSummary = summary;
16416
+ var shareImage = thumbnail && thumbnail.asset ? urlFor(thumbnail.asset).url() : shareImageDefault;
16417
+ var siteName = props.website.title;
16341
16418
 
16342
16419
  return React__default.createElement(
16343
16420
  React__default.Fragment,
@@ -16362,6 +16439,7 @@ var Article = function Article(props) {
16362
16439
  null,
16363
16440
  shareTitle + ' | ' + props.cache.siteSettingCache.name
16364
16441
  ),
16442
+ passwordLock && React__default.createElement('meta', { name: 'robots', content: 'noindex, nofollow' }),
16365
16443
  React__default.createElement('meta', { property: 'og:url', content: shareUrl }),
16366
16444
  React__default.createElement('meta', { property: 'og:title', content: shareTitle }),
16367
16445
  React__default.createElement('meta', { property: 'og:image', content: shareImage }),
@@ -16373,11 +16451,6 @@ var Article = function Article(props) {
16373
16451
  React__default.createElement('meta', { name: 'twitter:site', content: '@' + shareSiteTitle }),
16374
16452
  React__default.createElement('meta', { name: 'twitter:description', content: shareSummary })
16375
16453
  ),
16376
- React__default.createElement(
16377
- Head,
16378
- null,
16379
- passwordLock && React__default.createElement('meta', { name: 'robots', content: 'noindex, nofollow' })
16380
- ),
16381
16454
  React__default.createElement(
16382
16455
  'h1',
16383
16456
  { className: 'page-title' },
@@ -16410,7 +16483,7 @@ var Article = function Article(props) {
16410
16483
  issue.articleSource && React__default.createElement(
16411
16484
  'p',
16412
16485
  null,
16413
- 'Source: ' + issue.articleSource
16486
+ issue.articleSource
16414
16487
  )
16415
16488
  ),
16416
16489
  React__default.createElement(
@@ -16432,6 +16505,11 @@ var Article = function Article(props) {
16432
16505
  )
16433
16506
  )
16434
16507
  )
16508
+ ),
16509
+ pageNumber && React__default.createElement(
16510
+ 'div',
16511
+ { className: 'article-pageNumber' },
16512
+ 'Page Number: ' + pageNumber
16435
16513
  )
16436
16514
  ),
16437
16515
  React__default.createElement(
@@ -16449,28 +16527,7 @@ var Article = function Article(props) {
16449
16527
  twitterSiteName: twitterSiteName
16450
16528
  })
16451
16529
  ),
16452
- content_placement && content_placement.length > 0 && React__default.createElement(
16453
- Dropdown,
16454
- { style: { marginBottom: '1rem' } },
16455
- React__default.createElement(
16456
- Dropdown.Toggle,
16457
- { variant: 'primary', id: 'partner-dropdown' },
16458
- 'Relevant Topics'
16459
- ),
16460
- React__default.createElement(
16461
- Dropdown.Menu,
16462
- null,
16463
- content_placement.length > 0 ? content_placement.map(function (cp, index) {
16464
- var cp_url = cpModificationRequired ? get_content_placement_url(cp) : cp.path;
16465
- var href = '/' + cp_url;
16466
- return React__default.createElement(
16467
- Dropdown.Item,
16468
- { key: index, href: href },
16469
- cp.name
16470
- );
16471
- }) : null
16472
- )
16473
- ),
16530
+ renderRelevantTopicsDropdown(),
16474
16531
  React__default.createElement(
16475
16532
  'p',
16476
16533
  null,
@@ -16483,7 +16540,7 @@ var Article = function Article(props) {
16483
16540
  React__default.createElement('br', null)
16484
16541
  ),
16485
16542
  main.main_39 && props.article.Ads.map(function (ad, index) {
16486
- if (index == 0) {
16543
+ if (index === 0) {
16487
16544
  return React__default.createElement(
16488
16545
  'div',
16489
16546
  { key: index, id: 'addid-' + index, style: { display: 'flex', flex: '1 0 auto', marginTop: '-1rem', marginBottom: '1rem' } },
@@ -16494,11 +16551,7 @@ var Article = function Article(props) {
16494
16551
  React__default.createElement(
16495
16552
  'div',
16496
16553
  { className: 'block-content' },
16497
- React__default.createElement(TaxonomyCard.BlockContent, _extends$2._extends({
16498
- serializers: getSerializers(client, pageview, videoAccountIDs, function () {}, true),
16499
- blocks: newBody,
16500
- imageOptions: { w: 320, h: 240, fit: 'max' }
16501
- }, client.config())),
16554
+ renderBlockContent(props.article),
16502
16555
  issue && issue.url && React__default.createElement(
16503
16556
  'a',
16504
16557
  { href: issue.url, target: '_blank', title: 'Download issue' },
@@ -16523,64 +16576,18 @@ var Article = function Article(props) {
16523
16576
  React__default.createElement('hr', { className: 'article-seperater' })
16524
16577
  );
16525
16578
  };
16579
+
16526
16580
  var ArticleQueue = function ArticleQueue(props) {
16527
- var website = props.website,
16581
+ var _props$prevUrl = props.prevUrl,
16582
+ prevUrl = _props$prevUrl === undefined ? '/' : _props$prevUrl,
16528
16583
  Ads = props.Ads,
16529
- mainNavCache = props.mainNavCache,
16530
- subNavCache = props.subNavCache,
16531
- isLiveSite = props.isLiveSite,
16532
- _props$sponsoredTaxon = props.sponsoredTaxonomies,
16533
- sponsoredTaxonomies = _props$sponsoredTaxon === undefined ? [] : _props$sponsoredTaxon,
16534
16584
  _props$maxListLength = props.maxListLength,
16535
16585
  maxListLength = _props$maxListLength === undefined ? 10 : _props$maxListLength,
16586
+ _props$sponsoredTaxon = props.sponsoredTaxonomies,
16587
+ sponsoredTaxonomies = _props$sponsoredTaxon === undefined ? [] : _props$sponsoredTaxon,
16536
16588
  _props$cpModification = props.cpModificationRequired,
16537
16589
  cpModificationRequired = _props$cpModification === undefined ? false : _props$cpModification;
16538
16590
 
16539
- var _useState = React.useState(''),
16540
- _useState2 = slicedToArray._slicedToArray(_useState, 2),
16541
- prevUrl = _useState2[0],
16542
- setPrevUrl = _useState2[1];
16543
-
16544
- var _useState3 = React.useState([props.article]),
16545
- _useState4 = slicedToArray._slicedToArray(_useState3, 2),
16546
- queueData = _useState4[0],
16547
- setQueueData = _useState4[1];
16548
-
16549
- var _useState5 = React.useState({}),
16550
- _useState6 = slicedToArray._slicedToArray(_useState5, 2),
16551
- activeArticle = _useState6[0],
16552
- setActiveArticle = _useState6[1];
16553
-
16554
- var preVscroll = 0;
16555
- var isScrollDown = true;
16556
-
16557
- var _activeArticle$title = activeArticle.title,
16558
- _activeArticle$summar = activeArticle.summary,
16559
- summary = _activeArticle$summar === undefined ? '' : _activeArticle$summar;
16560
-
16561
-
16562
- var getFirstLine = function getFirstLine(article) {
16563
- var _article$body = article.body,
16564
- body = _article$body === undefined ? [] : _article$body;
16565
-
16566
- var desc = '';
16567
- body.some(function (children) {
16568
- children.children && children.children.some(function (item) {
16569
- if (item.text && String(item.text).trim().length > 0 && desc == '') {
16570
- desc = String(item.text);
16571
- return true;
16572
- }
16573
- });
16574
- if (desc !== '') {
16575
- return true;
16576
- }
16577
- });
16578
- return desc;
16579
- };
16580
-
16581
- if (summary.length === 0) {
16582
- summary = getFirstLine(activeArticle);
16583
- }
16584
16591
 
16585
16592
  var getTargeting = function getTargeting(article) {
16586
16593
  var _article$internalTag = article.internalTag,
@@ -16643,28 +16650,40 @@ var ArticleQueue = function ArticleQueue(props) {
16643
16650
  return targeting;
16644
16651
  };
16645
16652
 
16646
- var _useState7 = React.useState(getTargeting(activeArticle)),
16647
- _useState8 = slicedToArray._slicedToArray(_useState7, 2),
16648
- targeting = _useState8[0],
16649
- setTargeting = _useState8[1];
16650
-
16651
- var keywords = targeting && targeting.keywords ? targeting.keywords : [];
16652
-
16653
- var config = {
16654
- navComponent: website.navigation,
16655
- navItems: mainNavCache,
16656
- columns: '3',
16657
- leftItems: subNavCache,
16658
- rightItems: [],
16659
- horizontalAD: {},
16660
- isLiveSite: isLiveSite
16653
+ var firstArticle = function firstArticle() {
16654
+ var article = _extends$2._Object$assign({}, props.article);
16655
+ var targeting = getTargeting(props.article);
16656
+ article.Ads = Ads.getRightItems(targeting);
16657
+ return article;
16661
16658
  };
16662
- props.article.Ads = Ads.getRightItems(targeting);
16663
16659
 
16664
- var _useState9 = React.useState(config),
16665
- _useState10 = slicedToArray._slicedToArray(_useState9, 2),
16666
- pageConfig = _useState10[0],
16667
- setPageConfig = _useState10[1];
16660
+ var _useState = React.useState([firstArticle()]),
16661
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
16662
+ queueData = _useState2[0],
16663
+ setQueueData = _useState2[1];
16664
+
16665
+ var refreshAD = function refreshAD(path) {
16666
+ if (!main.main_39) {
16667
+ var activeArticle = queueData.find(function (item) {
16668
+ return item.url.current === path;
16669
+ });
16670
+ var targeting = getTargeting(activeArticle);
16671
+ debounce.lib_3.getGoogletag().then(function (googletag) {
16672
+ if (window.googletag && googletag.pubadsReady) {
16673
+ var slots = googletag.pubads().getSlots();
16674
+ slots.forEach(function (slot) {
16675
+ var pos = slot.getTargeting('pos');
16676
+ slot.clearTargeting();
16677
+ _Object$keys(targeting).forEach(function (key) {
16678
+ slot.setTargeting(key, targeting[key]);
16679
+ });
16680
+ slot.setTargeting('pos', pos);
16681
+ });
16682
+ debounce.lib_3.refresh();
16683
+ }
16684
+ });
16685
+ }
16686
+ };
16668
16687
 
16669
16688
  var checkSponseredArticle = function checkSponseredArticle(article) {
16670
16689
  var _article$taxonomyMapp = article.taxonomyMapping,
@@ -16679,51 +16698,8 @@ var ArticleQueue = function ArticleQueue(props) {
16679
16698
  }
16680
16699
  };
16681
16700
 
16682
- var updateConfig = function updateConfig(article) {
16683
- if (prevUrl && prevUrl.length) {
16684
- var _targeting = getTargeting(article);
16685
- var _config = {
16686
- navComponent: website.navigation,
16687
- navItems: mainNavCache,
16688
- columns: '3',
16689
- leftItems: subNavCache,
16690
- rightItems: checkSponseredArticle(article) ? [] : Ads.getRightItems(_targeting),
16691
- horizontalAD: checkSponseredArticle(article) ? {} : Ads.getHorizontal(_targeting),
16692
- isLiveSite: isLiveSite
16693
- };
16694
- setPageConfig(_config);
16695
- if (!main.main_39) {
16696
- debounce.lib_3.getGoogletag().then(function (googletag) {
16697
- if (window.googletag && googletag.pubadsReady) {
16698
- var slots = googletag.pubads().getSlots();
16699
- slots.forEach(function (slot) {
16700
- var pos = slot.getTargeting('pos');
16701
- slot.clearTargeting();
16702
- _Object$keys(_targeting).forEach(function (key) {
16703
- slot.setTargeting(key, _targeting[key]);
16704
- });
16705
- slot.setTargeting('pos', pos);
16706
- });
16707
- debounce.lib_3.refresh();
16708
- }
16709
- });
16710
- }
16711
- }
16712
- };
16713
-
16714
- React.useEffect(function () {
16715
- setPrevUrl(document && document.referrer ? document.referrer : '/');
16716
- props.article.Ads = Ads.getRightItems(targeting);
16717
- setActiveArticle(props.article);
16718
- }, [setPrevUrl]);
16719
-
16720
- React.useEffect(function () {
16721
- setActiveArticle(props.article);
16722
- }, [prevUrl]);
16723
-
16724
- React.useEffect(function () {
16725
- updateConfig(activeArticle);
16726
- }, [activeArticle]);
16701
+ var preVscroll = 0;
16702
+ var isScrollDown = true;
16727
16703
 
16728
16704
  var scrollDirectionDetect = function scrollDirectionDetect(e) {
16729
16705
  var window = e.currentTarget;
@@ -16741,74 +16717,59 @@ var ArticleQueue = function ArticleQueue(props) {
16741
16717
 
16742
16718
  React.useEffect(function () {
16743
16719
  window.addEventListener('scroll', scrollDirectionDetect);
16720
+ return function () {
16721
+ return window.removeEventListener('scroll', scrollDirectionDetect);
16722
+ };
16744
16723
  });
16745
16724
 
16746
16725
  var loadmore = function loadmore() {
16747
16726
  var query = props.relatedArticleQuery;
16748
16727
  var params = props.params;
16749
- var data = queueData.map(function (item) {
16750
- return item;
16751
- });
16752
- if (data && data.length < maxListLength) {
16753
- params.index = data.length - 1;
16728
+ if (queueData && queueData.length < maxListLength) {
16729
+ params.index = queueData.length - 1;
16754
16730
  props.client.fetch(query, params).then(function (article) {
16755
16731
  if (article && article._id) {
16756
- var _targeting2 = getTargeting(article);
16757
- article.Ads = props.Ads.getRightItems(_targeting2);
16758
- data.push(article);
16759
- setQueueData(data);
16732
+ var targeting = getTargeting(article);
16733
+ article.Ads = Ads.getRightItems(targeting);
16734
+ setQueueData([].concat(toConsumableArray._toConsumableArray(queueData), [article]));
16760
16735
  }
16761
16736
  });
16762
16737
  }
16763
16738
  };
16764
16739
 
16765
- var refreshAdd = function refreshAdd(path) {
16766
- var article = queueData.find(function (item) {
16767
- return item.url.current === path;
16768
- });
16769
- var targeting = getTargeting(article);
16770
- console.log('Forced Ad refresh', targeting);
16771
- article.Ads = Ads.getRightItems(targeting);
16772
- setActiveArticle(article);
16773
- };
16774
-
16775
16740
  var changeUrl = function changeUrl(path, visibility) {
16776
16741
  var newPath = '/view/' + path;
16777
16742
  if (!isScrollDown) {
16778
16743
  if (visibility === 'top') {
16779
- // Router.push('/view/[url]', newPath, { shallow: true })
16744
+ // router.push('/view/[url]', newPath, { shallow: true })
16780
16745
  window.history.pushState({ page: path }, path, newPath);
16781
16746
  if (props.pageview) {
16782
16747
  props.pageview(newPath);
16783
16748
  }
16784
- refreshAdd(path);
16749
+ refreshAD(path);
16785
16750
  }
16786
16751
  } else {
16787
16752
  if (visibility === 'bottom') {
16788
- // Router.push('/view/[url]', newPath, { shallow: true })
16753
+ // router.push('/view/[url]', newPath, { shallow: true })
16789
16754
  window.history.pushState({ page: path }, path, newPath);
16790
16755
  if (props.pageview) {
16791
16756
  props.pageview(newPath);
16792
16757
  }
16793
- refreshAdd(path);
16758
+ refreshAD(path);
16794
16759
  }
16795
16760
  }
16796
16761
  };
16797
16762
 
16798
- if (prevUrl && prevUrl.length) {
16799
- return React__default.createElement(
16800
- visibilitySensor.InfiniteScroll,
16801
- { dataLength: queueData.length, next: loadmore, scrollThreshold: 0.8, hasMore: true },
16802
- queueData.map(function (article, index) {
16803
- if (!checkSponseredArticle(article) && Ads.getNativeContextualAD) {
16804
- article.contextualAD = Ads.getNativeContextualAD(getTargeting(article));
16805
- }
16806
- return React__default.createElement(Article, _extends$2._extends({ key: index }, props, { changeUrl: changeUrl, article: article, cpModificationRequired: cpModificationRequired }));
16807
- })
16808
- );
16809
- } else {
16810
- return null;
16811
- }
16763
+ return React__default.createElement(
16764
+ visibilitySensor.InfiniteScroll,
16765
+ { dataLength: queueData.length, next: loadmore, scrollThreshold: 0.8, hasMore: true },
16766
+ queueData.map(function (article, index) {
16767
+ if (!checkSponseredArticle(article) && Ads.getNativeContextualAD) {
16768
+ article.contextualAD = Ads.getNativeContextualAD(getTargeting(article));
16769
+ }
16770
+ return React__default.createElement(Article, _extends$2._extends({ key: index }, props, { changeUrl: changeUrl, article: article, cpModificationRequired: cpModificationRequired }));
16771
+ })
16772
+ );
16812
16773
  };
16813
16774
 
16814
16775
  var KMTracker = function KMTracker(props) {
@@ -4,7 +4,7 @@ var _commonjsHelpers = require('./_commonjsHelpers-06173234.js');
4
4
  var _toObject = require('./_to-object-329a650b.js');
5
5
  var web_dom_iterable = require('./web.dom.iterable-8b02d65e.js');
6
6
  var debounce = require('./debounce-528ad412.js');
7
- var _extends$2 = require('./extends-e94dbea5.js');
7
+ var _extends$2 = require('./extends-4c2285ff.js');
8
8
 
9
9
  // most Object methods by ES6 should accept primitives
10
10
 
@@ -4,8 +4,8 @@ import './web.dom.iterable-7e9bebf9.js';
4
4
  import { d as debounce_1, l as lib_3 } from './debounce-702eb224.js';
5
5
  import { m as main_39 } from './main-cb86f95d.js';
6
6
  import { _ as _toConsumableArray } from './toConsumableArray-2718dc16.js';
7
- import { _ as _extends } from './extends-dbbe308d.js';
8
- import { a as _inherits, b as _classCallCheck, c as _possibleConstructorReturn, d as _Object$getPrototypeOf, e as _createClass } from './inherits-cb536901.js';
7
+ import { _ as _extends } from './extends-26d3b609.js';
8
+ import { a as _inherits, b as _classCallCheck, c as _possibleConstructorReturn, d as _Object$getPrototypeOf, e as _createClass } from './inherits-4b85034c.js';
9
9
  import React__default from 'react';
10
10
  import 'prop-types';
11
11
  import Container from 'react-bootstrap/Container';