@financial-times/n-myft-ui 30.4.4 → 30.4.5
Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,6 @@
|
|
10
10
|
"hasInstallScript": true,
|
11
11
|
"license": "ISC",
|
12
12
|
"dependencies": {
|
13
|
-
"@financial-times/o-tracking": "^4.5.0",
|
14
13
|
"date-fns": "2.16.1",
|
15
14
|
"fetchres": "^1.7.2",
|
16
15
|
"form-serialize": "^0.7.2",
|
@@ -3379,22 +3378,6 @@
|
|
3379
3378
|
"@financial-times/o-visual-effects": "^4.0.1"
|
3380
3379
|
}
|
3381
3380
|
},
|
3382
|
-
"node_modules/@financial-times/o-tracking": {
|
3383
|
-
"version": "4.5.0",
|
3384
|
-
"resolved": "https://registry.npmjs.org/@financial-times/o-tracking/-/o-tracking-4.5.0.tgz",
|
3385
|
-
"integrity": "sha512-gPnAmMPqlYWf8xXNJkAYKQMpEWvHpjxajB4YnadbGhOGl2Zy8y5LJJqyzsfpqoBh51P7VDIc7yBF+A7fgaymYw==",
|
3386
|
-
"dependencies": {
|
3387
|
-
"ftdomdelegate": "^5"
|
3388
|
-
},
|
3389
|
-
"engines": {
|
3390
|
-
"npm": "^7 || ^8"
|
3391
|
-
}
|
3392
|
-
},
|
3393
|
-
"node_modules/@financial-times/o-tracking/node_modules/ftdomdelegate": {
|
3394
|
-
"version": "5.0.0",
|
3395
|
-
"resolved": "https://registry.npmjs.org/ftdomdelegate/-/ftdomdelegate-5.0.0.tgz",
|
3396
|
-
"integrity": "sha512-P9UmLMIq/ibxxFVBHlE2EIoHcFNDpamn3urRCwVWMnj3o9nAgLtqe64WVuqcGtkN4wujrBYeyxKCuN1/WO+bQw=="
|
3397
|
-
},
|
3398
3381
|
"node_modules/@financial-times/o-typography": {
|
3399
3382
|
"version": "7.5.0",
|
3400
3383
|
"resolved": "https://registry.npmjs.org/@financial-times/o-typography/-/o-typography-7.5.0.tgz",
|
@@ -31403,21 +31386,6 @@
|
|
31403
31386
|
"ftdomdelegate": "^4.0.6"
|
31404
31387
|
}
|
31405
31388
|
},
|
31406
|
-
"@financial-times/o-tracking": {
|
31407
|
-
"version": "4.5.0",
|
31408
|
-
"resolved": "https://registry.npmjs.org/@financial-times/o-tracking/-/o-tracking-4.5.0.tgz",
|
31409
|
-
"integrity": "sha512-gPnAmMPqlYWf8xXNJkAYKQMpEWvHpjxajB4YnadbGhOGl2Zy8y5LJJqyzsfpqoBh51P7VDIc7yBF+A7fgaymYw==",
|
31410
|
-
"requires": {
|
31411
|
-
"ftdomdelegate": "^5"
|
31412
|
-
},
|
31413
|
-
"dependencies": {
|
31414
|
-
"ftdomdelegate": {
|
31415
|
-
"version": "5.0.0",
|
31416
|
-
"resolved": "https://registry.npmjs.org/ftdomdelegate/-/ftdomdelegate-5.0.0.tgz",
|
31417
|
-
"integrity": "sha512-P9UmLMIq/ibxxFVBHlE2EIoHcFNDpamn3urRCwVWMnj3o9nAgLtqe64WVuqcGtkN4wujrBYeyxKCuN1/WO+bQw=="
|
31418
|
-
}
|
31419
|
-
}
|
31420
|
-
},
|
31421
31389
|
"@financial-times/o-typography": {
|
31422
31390
|
"version": "7.5.0",
|
31423
31391
|
"resolved": "https://registry.npmjs.org/@financial-times/o-typography/-/o-typography-7.5.0.tgz",
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import myFtClient from 'next-myft-client';
|
2
2
|
import getToken from '../../../myft/ui/lib/get-csrf-token';
|
3
|
-
import oTracking from '@financial-times/o-tracking';
|
4
3
|
|
5
4
|
const csrfToken = getToken();
|
6
5
|
|
@@ -46,25 +45,34 @@ const positionModal = ({ event, preferencesModal } = {}) => {
|
|
46
45
|
}
|
47
46
|
};
|
48
47
|
|
49
|
-
const
|
48
|
+
const tracking = (conceptId) => {
|
49
|
+
const trackingData = {
|
50
|
+
category: 'component',
|
51
|
+
action: 'view',
|
52
|
+
concept_id: conceptId,
|
53
|
+
component: {
|
54
|
+
type: 'component',
|
55
|
+
name: 'pop-up-box',
|
56
|
+
id: '72de123e-5082-11ee-be56-0242ac120002',
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
const trackingEvent = new CustomEvent('oTracking.event', {
|
61
|
+
detail: trackingData,
|
62
|
+
bubbles: true
|
63
|
+
});
|
64
|
+
|
65
|
+
document.body.dispatchEvent(trackingEvent);
|
66
|
+
};
|
67
|
+
|
68
|
+
const preferenceModalShowAndHide = ({ event, preferencesModal, conceptId }) => {
|
50
69
|
preferencesModal.classList.toggle('n-myft-ui__preferences-modal--show');
|
51
70
|
|
52
71
|
if (preferencesModal.classList.contains('n-myft-ui__preferences-modal--show')) {
|
53
72
|
positionModal({ event, preferencesModal });
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
getContextData: () => {
|
58
|
-
return {
|
59
|
-
component: {
|
60
|
-
type: 'component',
|
61
|
-
name: 'pop-up-box',
|
62
|
-
id: '72de123e-5082-11ee-be56-0242ac120002',
|
63
|
-
},
|
64
|
-
};
|
65
|
-
},
|
66
|
-
};
|
67
|
-
oTracking.view.init(opts);
|
73
|
+
|
74
|
+
tracking(conceptId);
|
75
|
+
|
68
76
|
} else {
|
69
77
|
// Remove existing errors when hiding the modal
|
70
78
|
renderError({
|
@@ -79,7 +87,6 @@ const removeTopic = async ({ event, conceptId, preferencesModal }) => {
|
|
79
87
|
|
80
88
|
try {
|
81
89
|
await myFtClient.remove('user', null, 'followed', 'concept', conceptId, { token: csrfToken });
|
82
|
-
|
83
90
|
preferenceModalShowAndHide({ preferencesModal });
|
84
91
|
|
85
92
|
} catch (error) {
|
@@ -91,8 +98,7 @@ const removeTopic = async ({ event, conceptId, preferencesModal }) => {
|
|
91
98
|
|
92
99
|
const getAlertsPreferenceText = (addedTextBuffer) => {
|
93
100
|
const alertsEnabledText = `Your delivery channels: ${addedTextBuffer.join(', ')}.`;
|
94
|
-
|
95
|
-
return Array.isArray(addedTextBuffer) && addedTextBuffer.length > 0 ? alertsEnabledText : alertsDisabledText;
|
101
|
+
return Array.isArray(addedTextBuffer) && addedTextBuffer.length > 0 ? alertsEnabledText : '';
|
96
102
|
};
|
97
103
|
|
98
104
|
const getAlertsPreferences = async ({ event, preferencesModal }) => {
|
@@ -213,7 +219,7 @@ export default () => {
|
|
213
219
|
|
214
220
|
instantAlertsCheckbox.addEventListener('change', event => toggleInstantAlertsPreference({ event, conceptId, preferencesModal }));
|
215
221
|
|
216
|
-
document.addEventListener('myft.preference-modal.show-hide.toggle', event => preferenceModalShowAndHide({ event, preferencesModal }));
|
222
|
+
document.addEventListener('myft.preference-modal.show-hide.toggle', event => preferenceModalShowAndHide({ event, preferencesModal, conceptId }));
|
217
223
|
|
218
224
|
document.addEventListener('myft.user.preferred.preference.load', (event) => getAlertsPreferences({ event, preferencesModal }));
|
219
225
|
|
@@ -26,7 +26,6 @@ export default function InstantAlertsPreferencesModal({ flags, conceptId, visibl
|
|
26
26
|
className={`n-myft-ui__preferences-modal ${visible ? 'n-myft-ui__preferences-modal--show' : ''}`}
|
27
27
|
data-component-id="myft-preferences-modal"
|
28
28
|
data-concept-id={conceptId}
|
29
|
-
data-o-tracking-view="true"
|
30
29
|
>
|
31
30
|
<div className="n-myft-ui__preferences-modal__content">
|
32
31
|
<span className="o-forms-input o-forms-input--checkbox">
|
@@ -37,6 +36,7 @@ export default function InstantAlertsPreferencesModal({ flags, conceptId, visibl
|
|
37
36
|
name="receive-instant-alerts"
|
38
37
|
value="receive-instant-alerts"
|
39
38
|
data-component-id="myft-preferences-modal-checkbox"
|
39
|
+
data-trackable-context-concept_id={conceptId}
|
40
40
|
/>
|
41
41
|
<span className="o-forms-input__label n-myft-ui__preferences-modal__checkbox__message">
|
42
42
|
Get instant alerts for this topic
|
@@ -45,9 +45,9 @@ export default function InstantAlertsPreferencesModal({ flags, conceptId, visibl
|
|
45
45
|
</span>
|
46
46
|
|
47
47
|
<p data-component-id="myft-preferences-modal-list" className="n-myft-ui__preferences-modal__text"></p>
|
48
|
-
<a className="n-myft-ui__preferences-modal__text" href="/myft/alerts" data-trackable="pop-up-box|contact-preference">Manage your
|
48
|
+
<a className="n-myft-ui__preferences-modal__text" href="/myft/alerts" data-trackable="pop-up-box|contact-preference" data-trackable-context-concept_id={conceptId}>Manage your delivery channels here</a>
|
49
49
|
<span className="n-myft-ui__preferences-modal-error" data-component-id="myft-preference-modal-error"></span>
|
50
|
-
<button className="n-myft-ui__preferences-modal__remove-button" data-component-id="myft-preference-modal-remove" data-trackable="pop-up-box|remove-from-myFT">Remove from myFT</button>
|
50
|
+
<button className="n-myft-ui__preferences-modal__remove-button" data-component-id="myft-preference-modal-remove" data-trackable="pop-up-box|remove-from-myFT" data-trackable-context-concept_id={conceptId}>Remove from myFT</button>
|
51
51
|
</div>
|
52
52
|
</div>
|
53
53
|
);
|
@@ -41,8 +41,7 @@ function InstantAlertsPreferencesModal(_ref) {
|
|
41
41
|
{
|
42
42
|
className: 'n-myft-ui__preferences-modal ' + (visible ? 'n-myft-ui__preferences-modal--show' : ''),
|
43
43
|
'data-component-id': 'myft-preferences-modal',
|
44
|
-
'data-concept-id': conceptId
|
45
|
-
'data-o-tracking-view': 'true'
|
44
|
+
'data-concept-id': conceptId
|
46
45
|
},
|
47
46
|
_react2.default.createElement(
|
48
47
|
'div',
|
@@ -58,7 +57,8 @@ function InstantAlertsPreferencesModal(_ref) {
|
|
58
57
|
type: 'checkbox',
|
59
58
|
name: 'receive-instant-alerts',
|
60
59
|
value: 'receive-instant-alerts',
|
61
|
-
'data-component-id': 'myft-preferences-modal-checkbox'
|
60
|
+
'data-component-id': 'myft-preferences-modal-checkbox',
|
61
|
+
'data-trackable-context-concept_id': conceptId
|
62
62
|
}),
|
63
63
|
_react2.default.createElement(
|
64
64
|
'span',
|
@@ -70,13 +70,13 @@ function InstantAlertsPreferencesModal(_ref) {
|
|
70
70
|
_react2.default.createElement('p', { 'data-component-id': 'myft-preferences-modal-list', className: 'n-myft-ui__preferences-modal__text' }),
|
71
71
|
_react2.default.createElement(
|
72
72
|
'a',
|
73
|
-
{ className: 'n-myft-ui__preferences-modal__text', href: '/myft/alerts', 'data-trackable': 'pop-up-box|contact-preference' },
|
74
|
-
'Manage your
|
73
|
+
{ className: 'n-myft-ui__preferences-modal__text', href: '/myft/alerts', 'data-trackable': 'pop-up-box|contact-preference', 'data-trackable-context-concept_id': conceptId },
|
74
|
+
'Manage your delivery channels here'
|
75
75
|
),
|
76
76
|
_react2.default.createElement('span', { className: 'n-myft-ui__preferences-modal-error', 'data-component-id': 'myft-preference-modal-error' }),
|
77
77
|
_react2.default.createElement(
|
78
78
|
'button',
|
79
|
-
{ className: 'n-myft-ui__preferences-modal__remove-button', 'data-component-id': 'myft-preference-modal-remove', 'data-trackable': 'pop-up-box|remove-from-myFT' },
|
79
|
+
{ className: 'n-myft-ui__preferences-modal__remove-button', 'data-component-id': 'myft-preference-modal-remove', 'data-trackable': 'pop-up-box|remove-from-myFT', 'data-trackable-context-concept_id': conceptId },
|
80
80
|
'Remove from myFT'
|
81
81
|
)
|
82
82
|
)
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@financial-times/n-myft-ui",
|
3
|
-
"version": "30.4.
|
3
|
+
"version": "30.4.5",
|
4
4
|
"description": "Client side component for interaction with myft",
|
5
5
|
"main": "server.js",
|
6
6
|
"scripts": {
|
@@ -104,7 +104,6 @@
|
|
104
104
|
"react": "^16.14.0"
|
105
105
|
},
|
106
106
|
"dependencies": {
|
107
|
-
"@financial-times/o-tracking": "^4.5.0",
|
108
107
|
"date-fns": "2.16.1",
|
109
108
|
"fetchres": "^1.7.2",
|
110
109
|
"form-serialize": "^0.7.2",
|