@financial-times/n-myft-ui 28.2.4 → 28.2.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,8 +4,8 @@
4
4
  data-myft-ui="saved"
5
5
  action="/myft/save/{{contentId}}"
6
6
  data-js-action="/__myft/api/core/saved/content/{{contentId}}?method=put"
7
- {{#if @root.flags.manageArticleLists}}data-myft-ui-save-new="manageArticleLists"{{/if}}
8
- {{#if @root.flags.manageArticleLists}}data-myft-ui-save-new-config="{{#if @root.flags.myftListPublicPrivateToggle}}showPublicToggle{{/if}}"{{/if}}>
7
+ {{#if flags.manageArticleLists}}data-myft-ui-save-new="manageArticleLists"{{/if}}
8
+ {{#if flags.manageArticleLists}}data-myft-ui-save-new-config="{{#if flags.myftListPublicPrivateToggle}}showPublicToggle{{/if}}"{{/if}}>
9
9
  {{> n-myft-ui/components/csrf-token/input}}
10
10
  <div
11
11
  class="n-myft-ui__announcement o-normalise-visually-hidden"
@@ -10,6 +10,8 @@ const csrfToken = getToken();
10
10
  let lists = [];
11
11
  let haveLoadedLists = false;
12
12
  let createListOverlay;
13
+ let scrolledOnOpen;
14
+ let listOverlayBottom;
13
15
 
14
16
  export default async function openSaveArticleToListVariant (contentId, options = {}) {
15
17
  const { name, showPublicToggle = false } = options;
@@ -118,6 +120,7 @@ export default async function openSaveArticleToListVariant (contentId, options =
118
120
  }
119
121
 
120
122
  createListOverlay.open();
123
+ scrolledOnOpen = window.scrollY;
121
124
 
122
125
  const scrollHandler = getScrollHandler(createListOverlay.wrapper);
123
126
  const resizeHandler = getResizeHandler(createListOverlay.wrapper);
@@ -130,6 +133,8 @@ export default async function openSaveArticleToListVariant (contentId, options =
130
133
 
131
134
  positionOverlay(data.currentTarget);
132
135
 
136
+ listOverlayBottom = document.querySelector('.myft-ui-create-list-variant').getBoundingClientRect().bottom;
137
+
133
138
  restoreFormHandler();
134
139
 
135
140
  document.querySelector('.article-content').addEventListener('click', outsideClickHandler);
@@ -306,6 +311,7 @@ function ContentElement (hasDescription, onClick) {
306
311
 
307
312
  const contentElement = stringToHTMLElement(content);
308
313
 
314
+ contentElement.querySelector('.myft-ui-create-list-variant-add').addEventListener('click', checkScrollToAdd);
309
315
  contentElement.querySelector('.myft-ui-create-list-variant-add').addEventListener('click', triggerAddToNewListEvent);
310
316
 
311
317
  function removeDescription () {
@@ -590,3 +596,19 @@ function triggerCancelEvent () {
590
596
  bubbles: true
591
597
  }));
592
598
  }
599
+
600
+ //Temporary event to determine whether users need to scroll to add to a list
601
+ function checkScrollToAdd () {
602
+ //if the bottom of the overlay was not showing and scrolling has occurred since it was opened
603
+ if(listOverlayBottom > window.innerHeight && window.scrollY > scrolledOnOpen) {
604
+ document.body.dispatchEvent(new CustomEvent('oTracking.event', {
605
+ detail: {
606
+ category: 'publicToggle',
607
+ action: 'scrollToAdd',
608
+ teamName: 'customer-products-us-growth',
609
+ amplitudeExploratory: true
610
+ },
611
+ bubbles: true
612
+ }));
613
+ }
614
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/n-myft-ui",
3
- "version": "28.2.4",
3
+ "version": "28.2.6",
4
4
  "description": "Client side component for interaction with myft",
5
5
  "main": "server.js",
6
6
  "scripts": {