@comicrelief/component-library 7.7.0 → 7.9.0
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/cypress/integration/components/Atoms/MarketingPreferencesDSForm.spec.js +2 -2
- package/dist/components/Organisms/MarketingPreferencesDS/MarketingPreferencesDS.style.js +60 -42
- package/dist/components/Organisms/MarketingPreferencesDS/_AssociatedFields.js +16 -4
- package/dist/components/Organisms/MarketingPreferencesDS/_CheckAnswer.js +5 -15
- package/dist/components/Organisms/MarketingPreferencesDS/_DefaultCopy.js +6 -6
- package/dist/components/Organisms/MarketingPreferencesDS/_MarketingPreferencesDS.js +67 -114
- package/dist/components/Organisms/MarketingPreferencesDS/_MarketingPrefsConfig.js +8 -11
- package/dist/components/Organisms/MarketingPreferencesDS/assets/CR_Tick_black.svg +1 -0
- package/dist/theme/crTheme/colors.js +4 -0
- package/package.json +1 -1
- package/src/components/Organisms/MarketingPreferencesDS/MarketingPreferencesDS.style.js +78 -71
- package/src/components/Organisms/MarketingPreferencesDS/_AssociatedFields.js +16 -4
- package/src/components/Organisms/MarketingPreferencesDS/_CheckAnswer.js +9 -18
- package/src/components/Organisms/MarketingPreferencesDS/_DefaultCopy.js +8 -8
- package/src/components/Organisms/MarketingPreferencesDS/_MarketingPreferencesDS.js +105 -107
- package/src/components/Organisms/MarketingPreferencesDS/_MarketingPrefsConfig.js +8 -11
- package/src/components/Organisms/MarketingPreferencesDS/assets/CR_Tick_black.svg +1 -0
- package/src/theme/crTheme/colors.js +4 -0
- package/dist/components/Organisms/MarketingPreferencesDS/_NoMessage.js +0 -40
- package/src/components/Organisms/MarketingPreferencesDS/_NoMessage.js +0 -27
|
@@ -28,7 +28,7 @@ describe('MarketingPreferencesDSForm component', () => {
|
|
|
28
28
|
cy.get('@default')
|
|
29
29
|
.should('exist')
|
|
30
30
|
.find('h3')
|
|
31
|
-
.contains('
|
|
31
|
+
.contains('Stay up to date with Comic Relief?');
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
it('should render correct Default example options', () => {
|
|
@@ -53,7 +53,7 @@ describe('MarketingPreferencesDSForm component', () => {
|
|
|
53
53
|
cy.get('@customised')
|
|
54
54
|
.should('exist')
|
|
55
55
|
.find('h3')
|
|
56
|
-
.contains('
|
|
56
|
+
.contains('Stay up to date with Comic Relief?');
|
|
57
57
|
});
|
|
58
58
|
|
|
59
59
|
it('should render correct Customised example options', () => {
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.ShowHideInputWrapper = exports.CheckContainer = exports.CheckInput = exports.CheckLabel = exports.FormField = exports.Head = exports.BottomCopyWrapper = exports.TopCopyWrapper = void 0;
|
|
8
|
+
exports.MPTextInput = exports.OuterWrapper = exports.ExtraInfo = exports.ShowHideInputWrapper = exports.CheckContainer = exports.CheckInput = exports.CheckLabel = exports.FormField = exports.Head = exports.BottomCopyWrapper = exports.TopCopyWrapper = void 0;
|
|
9
9
|
|
|
10
10
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
11
11
|
|
|
@@ -13,103 +13,121 @@ var _spacing = _interopRequireDefault(require("../../../theme/shared/spacing"));
|
|
|
13
13
|
|
|
14
14
|
var _size = require("../../../theme/shared/size");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _CR_Tick_black = _interopRequireDefault(require("./assets/CR_Tick_black.svg"));
|
|
17
17
|
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
var _CR_Mail = _interopRequireDefault(require("./assets/CR_Mail.svg"));
|
|
21
|
-
|
|
22
|
-
var _CR_Phone = _interopRequireDefault(require("./assets/CR_Phone.svg"));
|
|
23
|
-
|
|
24
|
-
var _CR_SMS = _interopRequireDefault(require("./assets/CR_SMS.svg"));
|
|
18
|
+
var _TextInput = _interopRequireDefault(require("./_TextInput"));
|
|
25
19
|
|
|
26
20
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
21
|
|
|
28
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
23
|
|
|
24
|
+
var OuterWrapper = _styledComponents.default.div.withConfig({
|
|
25
|
+
displayName: "MarketingPreferencesDSstyle__OuterWrapper",
|
|
26
|
+
componentId: "sc-68n85q-0"
|
|
27
|
+
})(["display:flex;flex-direction:column;", "{flex-direction:row;flex-wrap:wrap;}"], (0, _size.media)('small'));
|
|
28
|
+
|
|
29
|
+
exports.OuterWrapper = OuterWrapper;
|
|
30
|
+
|
|
30
31
|
var TopCopyWrapper = _styledComponents.default.div.withConfig({
|
|
31
32
|
displayName: "MarketingPreferencesDSstyle__TopCopyWrapper",
|
|
32
|
-
componentId: "sc-68n85q-
|
|
33
|
-
})(["margin:", " 0;"], (0, _spacing.default)('l'))
|
|
33
|
+
componentId: "sc-68n85q-1"
|
|
34
|
+
})(["margin:", " 0;display:flex;width:100%;@media ", "{padding:10px;}"], (0, _spacing.default)('l'), function (_ref) {
|
|
35
|
+
var theme = _ref.theme;
|
|
36
|
+
return theme.breakpoint('small');
|
|
37
|
+
});
|
|
34
38
|
|
|
35
39
|
exports.TopCopyWrapper = TopCopyWrapper;
|
|
36
40
|
|
|
37
41
|
var BottomCopyWrapper = _styledComponents.default.div.withConfig({
|
|
38
42
|
displayName: "MarketingPreferencesDSstyle__BottomCopyWrapper",
|
|
39
|
-
componentId: "sc-68n85q-
|
|
43
|
+
componentId: "sc-68n85q-2"
|
|
40
44
|
})(["margin:", " 0;"], (0, _spacing.default)('md'));
|
|
41
45
|
|
|
42
46
|
exports.BottomCopyWrapper = BottomCopyWrapper;
|
|
43
47
|
|
|
44
48
|
var Head = _styledComponents.default.div.withConfig({
|
|
45
49
|
displayName: "MarketingPreferencesDSstyle__Head",
|
|
46
|
-
componentId: "sc-68n85q-
|
|
50
|
+
componentId: "sc-68n85q-3"
|
|
47
51
|
})(["display:flex;justify-content:space-between;flex-direction:column;"]);
|
|
48
52
|
|
|
49
53
|
exports.Head = Head;
|
|
50
54
|
|
|
51
55
|
var FormField = _styledComponents.default.div.withConfig({
|
|
52
56
|
displayName: "MarketingPreferencesDSstyle__FormField",
|
|
53
|
-
componentId: "sc-68n85q-
|
|
54
|
-
})(["", ""], function (
|
|
55
|
-
var theme =
|
|
56
|
-
return (0, _styledComponents.css)(["position:relative;margin-bottom:", ";
|
|
57
|
+
componentId: "sc-68n85q-4"
|
|
58
|
+
})(["", ""], function (_ref2) {
|
|
59
|
+
var theme = _ref2.theme;
|
|
60
|
+
return (0, _styledComponents.css)(["position:relative;margin-bottom:", ";width:100%;display:flex;flex-direction:column;@media ", "{width:50%;padding:10px;}label{position:relative;margin-bottom:", ";width:100%;color:", ";}h3{position:relative;margin-bottom:", ";&:before{position:absolute;top:0;left:0;width:24px;height:24px;content:'';}}"], (0, _spacing.default)('md'), theme.breakpoint('small'), (0, _spacing.default)('md'), theme.color('grey_dark'), (0, _spacing.default)('md'));
|
|
57
61
|
});
|
|
58
62
|
|
|
59
63
|
exports.FormField = FormField;
|
|
60
64
|
|
|
61
65
|
var CheckContainer = _styledComponents.default.div.withConfig({
|
|
62
66
|
displayName: "MarketingPreferencesDSstyle__CheckContainer",
|
|
63
|
-
componentId: "sc-68n85q-
|
|
64
|
-
})(["", ""], function (
|
|
65
|
-
var theme =
|
|
66
|
-
return (0, _styledComponents.css)(["width:100%;display:flex;justify-content:space-between;font-size:", ";font-family:", ";"
|
|
67
|
+
componentId: "sc-68n85q-5"
|
|
68
|
+
})(["", ""], function (_ref3) {
|
|
69
|
+
var theme = _ref3.theme;
|
|
70
|
+
return (0, _styledComponents.css)(["width:100%;display:flex;justify-content:space-between;font-size:", ";font-family:", ";"], theme.fontSize('md'), theme.fontFamilies(theme.font.regular));
|
|
67
71
|
});
|
|
68
72
|
|
|
69
73
|
exports.CheckContainer = CheckContainer;
|
|
70
74
|
|
|
71
75
|
var CheckLabel = _styledComponents.default.label.withConfig({
|
|
72
76
|
displayName: "MarketingPreferencesDSstyle__CheckLabel",
|
|
73
|
-
componentId: "sc-68n85q-
|
|
74
|
-
})(["", ""], function (
|
|
75
|
-
var theme =
|
|
76
|
-
|
|
77
|
-
return (0, _styledComponents.css)(["display:flex;align-items:center;font-size:", ";padding:10px;@media ", "{font-size:", ";padding:12px 16px;}&:hover,&:focus{border:2px solid ", ";padding:9px;@media ", "{padding:11px 15px;}}", ""], theme.fontSize('xs'), theme.breakpoint('small'), theme.fontSize('s'), theme.color('grey'), theme.breakpoint('small'), userSelection && "\n &[for$=\"".concat(userSelection, "\"] {\n background: ").concat(theme.color('grey_medium'), ";\n padding: 9px;\n border: 2px solid ").concat(theme.color('grey'), ";\n\n @media ").concat(theme.breakpoint('small'), " {\n padding: 11px 15px;\n }\n }\n "));
|
|
77
|
+
componentId: "sc-68n85q-6"
|
|
78
|
+
})(["", ""], function (_ref4) {
|
|
79
|
+
var theme = _ref4.theme;
|
|
80
|
+
return (0, _styledComponents.css)(["display:flex;align-items:center;font-size:", ";@media ", "{font-size:", ";}"], theme.fontSize('xs'), theme.breakpoint('small'), theme.fontSize('s'));
|
|
78
81
|
});
|
|
79
82
|
|
|
80
83
|
exports.CheckLabel = CheckLabel;
|
|
81
84
|
|
|
82
85
|
var CheckInput = _styledComponents.default.input.withConfig({
|
|
83
86
|
displayName: "MarketingPreferencesDSstyle__CheckInput",
|
|
84
|
-
componentId: "sc-68n85q-
|
|
85
|
-
})(["font-size:", ";display:block;box-sizing:border-box;opacity:0;position:absolute;width:100%;height:100%;left:0;top:0;margin:0;border:1px solid ", ";+ span{margin-right:10px;width:30px;height:30px;background-color:", ";border:1px solid ", ";float:left;border-radius:8px;@media ", "{margin-right:15px;}}:checked + span{background:url(", ") no-repeat center;background-color:", ";background-size:contain;}"], function (
|
|
86
|
-
var theme = _ref4.theme;
|
|
87
|
-
return theme.fontSize('sm');
|
|
88
|
-
}, function (_ref5) {
|
|
87
|
+
componentId: "sc-68n85q-7"
|
|
88
|
+
})(["font-size:", ";display:block;box-sizing:border-box;opacity:0;position:absolute;width:100%;height:100%;left:0;top:0;margin:0;border:1px solid ", ";+ span{margin-right:10px;width:30px;height:30px;background-color:", ";border:1px solid ", ";float:left;border-radius:8px;@media ", "{margin-right:15px;}}:checked + span{background:url(", ") no-repeat center;background-color:", ";background-size:contain;}"], function (_ref5) {
|
|
89
89
|
var theme = _ref5.theme;
|
|
90
|
-
return theme.
|
|
90
|
+
return theme.fontSize('sm');
|
|
91
91
|
}, function (_ref6) {
|
|
92
92
|
var theme = _ref6.theme;
|
|
93
|
-
return theme.color('
|
|
93
|
+
return theme.color('grey_for_forms');
|
|
94
94
|
}, function (_ref7) {
|
|
95
95
|
var theme = _ref7.theme;
|
|
96
|
-
return theme.color('
|
|
96
|
+
return theme.color('grey_light');
|
|
97
97
|
}, function (_ref8) {
|
|
98
98
|
var theme = _ref8.theme;
|
|
99
|
-
return theme.
|
|
100
|
-
},
|
|
99
|
+
return theme.color('black');
|
|
100
|
+
}, function (_ref9) {
|
|
101
101
|
var theme = _ref9.theme;
|
|
102
|
-
return theme.
|
|
102
|
+
return theme.breakpoint('small');
|
|
103
|
+
}, _CR_Tick_black.default, function (_ref10) {
|
|
104
|
+
var theme = _ref10.theme;
|
|
105
|
+
return theme.color('grey_light');
|
|
103
106
|
});
|
|
104
107
|
|
|
105
108
|
exports.CheckInput = CheckInput;
|
|
106
109
|
|
|
107
110
|
var ShowHideInputWrapper = _styledComponents.default.div.withConfig({
|
|
108
111
|
displayName: "MarketingPreferencesDSstyle__ShowHideInputWrapper",
|
|
109
|
-
componentId: "sc-68n85q-
|
|
110
|
-
})(["display:", ";
|
|
111
|
-
var show =
|
|
112
|
+
componentId: "sc-68n85q-8"
|
|
113
|
+
})(["display:", ";width:100%;label{width:100%;border:none;padding:0;}"], function (_ref11) {
|
|
114
|
+
var show = _ref11.show;
|
|
112
115
|
return show ? 'block' : 'none';
|
|
113
|
-
}
|
|
116
|
+
});
|
|
114
117
|
|
|
115
|
-
exports.ShowHideInputWrapper = ShowHideInputWrapper;
|
|
118
|
+
exports.ShowHideInputWrapper = ShowHideInputWrapper;
|
|
119
|
+
|
|
120
|
+
var ExtraInfo = _styledComponents.default.span.withConfig({
|
|
121
|
+
displayName: "MarketingPreferencesDSstyle__ExtraInfo",
|
|
122
|
+
componentId: "sc-68n85q-9"
|
|
123
|
+
})(["display:block;width:100%;font-size:1rem;text-transform:inherit;font-weight:normal;line-height:normal;font-family:'Montserrat',Helvetica,Arial,sans-serif;margin-bottom:0.5rem;+ label{margin-top:20px;&[for=\"mp_email\"],&[for=\"mp_mobile\"],&[for=\"mp_phone\"]{> span:first-child{position:absolute;margin:-1px;padding:0;width:1px;height:1px;border:0;overflow:hidden;clip:rect(1px 1px 1px 1px);word-wrap:normal;}}"]);
|
|
124
|
+
|
|
125
|
+
exports.ExtraInfo = ExtraInfo;
|
|
126
|
+
var MPTextInput = (0, _styledComponents.default)(_TextInput.default).withConfig({
|
|
127
|
+
displayName: "MarketingPreferencesDSstyle__MPTextInput",
|
|
128
|
+
componentId: "sc-68n85q-10"
|
|
129
|
+
})(["input{border:1px solid ", ";;", "{max-width:none;}}"], function (_ref12) {
|
|
130
|
+
var theme = _ref12.theme;
|
|
131
|
+
return theme.color('black');
|
|
132
|
+
}, (0, _size.media)('small'));
|
|
133
|
+
exports.MPTextInput = MPTextInput;
|
|
@@ -5,10 +5,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var AssociatedFields = {
|
|
8
|
-
mp_permissionSMS:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
mp_permissionSMS: {
|
|
9
|
+
fieldNames: ['mp_mobile'],
|
|
10
|
+
label: 'Text'
|
|
11
|
+
},
|
|
12
|
+
mp_permissionPhone: {
|
|
13
|
+
fieldNames: ['mp_phone'],
|
|
14
|
+
label: 'Phone'
|
|
15
|
+
},
|
|
16
|
+
mp_permissionEmail: {
|
|
17
|
+
fieldNames: ['mp_email'],
|
|
18
|
+
label: 'Email'
|
|
19
|
+
},
|
|
20
|
+
mp_permissionPost: {
|
|
21
|
+
fieldNames: ['mp_address1', 'mp_address2', 'mp_address3', 'mp_town', 'mp_postcode', 'mp_country'],
|
|
22
|
+
label: 'Post'
|
|
23
|
+
}
|
|
12
24
|
};
|
|
13
25
|
var _default = AssociatedFields;
|
|
14
26
|
exports.default = _default;
|
|
@@ -26,25 +26,25 @@ var CheckAnswer = function CheckAnswer(_ref) {
|
|
|
26
26
|
var newVal;
|
|
27
27
|
|
|
28
28
|
if (e.target.checked) {
|
|
29
|
-
newVal = e.target.value
|
|
29
|
+
newVal = e.target.value;
|
|
30
30
|
} else {
|
|
31
31
|
newVal = ''; // To ensure we're not letting invalid values get passed, reset any associated fields:
|
|
32
32
|
|
|
33
|
-
var theseFields = _AssociatedFields.default[name];
|
|
33
|
+
var theseFields = _AssociatedFields.default[name].fieldNames;
|
|
34
34
|
theseFields.forEach(function (fieldName) {
|
|
35
35
|
setValue(fieldName, '');
|
|
36
36
|
});
|
|
37
37
|
} // Update the checkbox field itself
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
setValue(name,
|
|
40
|
+
setValue(name, newVal);
|
|
41
41
|
/* If the click represents either a 'none selected' or a 'not required' option
|
|
42
42
|
(set in config), reset errors for all fields associated with this checkbox */
|
|
43
43
|
|
|
44
44
|
var reValidate = !mpValidationOptions[name][newVal];
|
|
45
45
|
|
|
46
46
|
if (reValidate) {
|
|
47
|
-
var _theseFields = _AssociatedFields.default[name];
|
|
47
|
+
var _theseFields = _AssociatedFields.default[name].fieldNames;
|
|
48
48
|
|
|
49
49
|
_theseFields.forEach(function (fieldName) {
|
|
50
50
|
clearErrors(fieldName);
|
|
@@ -62,17 +62,7 @@ var CheckAnswer = function CheckAnswer(_ref) {
|
|
|
62
62
|
value: "yes",
|
|
63
63
|
ref: register,
|
|
64
64
|
onChange: onChange
|
|
65
|
-
}), /*#__PURE__*/_react.default.createElement("span", null),
|
|
66
|
-
htmlFor: "".concat(name, "-no"),
|
|
67
|
-
userSelection: userSelection
|
|
68
|
-
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.CheckInput, {
|
|
69
|
-
type: "checkbox",
|
|
70
|
-
id: "".concat(name, "-no"),
|
|
71
|
-
name: name,
|
|
72
|
-
value: "no",
|
|
73
|
-
ref: register,
|
|
74
|
-
onChange: onChange
|
|
75
|
-
}), /*#__PURE__*/_react.default.createElement("span", null), "No, thanks"));
|
|
65
|
+
}), /*#__PURE__*/_react.default.createElement("span", null), _AssociatedFields.default[name].label));
|
|
76
66
|
};
|
|
77
67
|
|
|
78
68
|
CheckAnswer.defaultProps = {
|
|
@@ -20,27 +20,27 @@ var defaultCopyTop = /*#__PURE__*/_react.default.createElement("div", null, /*#_
|
|
|
20
20
|
uppercase: true,
|
|
21
21
|
weight: "400",
|
|
22
22
|
color: "grey_dark"
|
|
23
|
-
}, "
|
|
23
|
+
}, "Stay up to date with Comic Relief?"), /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
24
24
|
tag: "p",
|
|
25
25
|
size: "md",
|
|
26
26
|
color: "grey_dark"
|
|
27
|
-
}, "We\u2019d
|
|
27
|
+
}, "We\u2019d like to send you updates on the work we\u2019re funding and how your support makes a difference in the UK and around the world."), /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
28
28
|
tag: "p",
|
|
29
29
|
size: "md",
|
|
30
30
|
color: "grey_dark"
|
|
31
|
-
}, "Please
|
|
31
|
+
}, "Please tick the relevant boxes below if you would like to hear from us."));
|
|
32
32
|
|
|
33
33
|
exports.defaultCopyTop = defaultCopyTop;
|
|
34
34
|
|
|
35
35
|
var defaultCopyBottom = /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
36
36
|
tag: "p",
|
|
37
37
|
color: "grey_dark"
|
|
38
|
-
}, "
|
|
38
|
+
}, "Update your preferences at any time by visiting our", ' ', /*#__PURE__*/_react.default.createElement(_Link.default, {
|
|
39
39
|
type: "standard",
|
|
40
40
|
href: "https://www.comicrelief.com/update-your-preferences"
|
|
41
|
-
}, "
|
|
41
|
+
}, "preferences centre"), ". Your details will be kept safe, see our", ' ', /*#__PURE__*/_react.default.createElement(_Link.default, {
|
|
42
42
|
type: "standard",
|
|
43
43
|
href: "https://www.comicrelief.com/privacy-policy"
|
|
44
|
-
}, "privacy policy"), ' ', "for more
|
|
44
|
+
}, "privacy policy"), ' ', "for more information.");
|
|
45
45
|
|
|
46
46
|
exports.defaultCopyBottom = defaultCopyBottom;
|
|
@@ -25,21 +25,14 @@ var _reactHookForm = require("react-hook-form");
|
|
|
25
25
|
|
|
26
26
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
27
27
|
|
|
28
|
-
var _Text = _interopRequireDefault(require("../../Atoms/Text/Text"));
|
|
29
|
-
|
|
30
|
-
var _TextInput = _interopRequireDefault(require("./_TextInput"));
|
|
31
|
-
|
|
32
28
|
var _CheckAnswer = _interopRequireDefault(require("./_CheckAnswer"));
|
|
33
29
|
|
|
34
|
-
var _NoMessage = _interopRequireDefault(require("./_NoMessage"));
|
|
35
|
-
|
|
36
30
|
var _DefaultCopy = require("./_DefaultCopy");
|
|
37
31
|
|
|
38
32
|
var _MarketingPreferencesDS = require("./MarketingPreferencesDS.style");
|
|
39
33
|
|
|
40
34
|
var _MarketingPrefsConfig = require("./_MarketingPrefsConfig");
|
|
41
35
|
|
|
42
|
-
/* eslint-disable camelcase */
|
|
43
36
|
var MarketingPreferencesDS = function MarketingPreferencesDS(_ref) {
|
|
44
37
|
var copyTop = _ref.copyTop,
|
|
45
38
|
copyBottom = _ref.copyBottom,
|
|
@@ -52,32 +45,32 @@ var MarketingPreferencesDS = function MarketingPreferencesDS(_ref) {
|
|
|
52
45
|
var emailChoice = (0, _reactHookForm.useWatch)({
|
|
53
46
|
control: control,
|
|
54
47
|
name: 'mp_permissionEmail',
|
|
55
|
-
defaultValue:
|
|
48
|
+
defaultValue: null
|
|
56
49
|
});
|
|
57
50
|
var postChoice = (0, _reactHookForm.useWatch)({
|
|
58
51
|
control: control,
|
|
59
52
|
name: 'mp_permissionPost',
|
|
60
|
-
defaultValue:
|
|
53
|
+
defaultValue: null
|
|
61
54
|
});
|
|
62
55
|
var phoneChoice = (0, _reactHookForm.useWatch)({
|
|
63
56
|
control: control,
|
|
64
57
|
name: 'mp_permissionPhone',
|
|
65
|
-
defaultValue:
|
|
58
|
+
defaultValue: null
|
|
66
59
|
});
|
|
67
60
|
var smsChoice = (0, _reactHookForm.useWatch)({
|
|
68
61
|
control: control,
|
|
69
62
|
name: 'mp_permissionSMS',
|
|
70
|
-
defaultValue:
|
|
63
|
+
defaultValue: null
|
|
71
64
|
});
|
|
72
65
|
var mp_permissionEmail = mpValidationOptions.mp_permissionEmail,
|
|
73
66
|
mp_permissionSMS = mpValidationOptions.mp_permissionSMS,
|
|
74
67
|
mp_permissionPhone = mpValidationOptions.mp_permissionPhone,
|
|
75
68
|
mp_permissionPost = mpValidationOptions.mp_permissionPost; // If the field is not required for each No/Yes choice, remove it from the DOM entirely
|
|
76
69
|
|
|
77
|
-
var disableEmailInput = mp_permissionEmail.yes === false && emailChoice.includes('yes')
|
|
78
|
-
var disableSMSInput = mp_permissionSMS.yes === false && smsChoice.includes('yes')
|
|
79
|
-
var disablePhoneInput = mp_permissionPhone.yes === false && phoneChoice.includes('yes')
|
|
80
|
-
var disablePostInput = mp_permissionPost.yes === false && postChoice.includes('yes')
|
|
70
|
+
var disableEmailInput = mp_permissionEmail.yes === false && emailChoice.includes('yes');
|
|
71
|
+
var disableSMSInput = mp_permissionSMS.yes === false && smsChoice.includes('yes');
|
|
72
|
+
var disablePhoneInput = mp_permissionPhone.yes === false && phoneChoice.includes('yes');
|
|
73
|
+
var disablePostInput = mp_permissionPost.yes === false && postChoice.includes('yes'); // Required to track multiple errors to determine whether to show/hide the fieldset
|
|
81
74
|
|
|
82
75
|
var isAddressErroring = function isAddressErroring() {
|
|
83
76
|
if (_lodash.default.isEmpty(errors)) {
|
|
@@ -90,166 +83,126 @@ var MarketingPreferencesDS = function MarketingPreferencesDS(_ref) {
|
|
|
90
83
|
or if a choice has been made */
|
|
91
84
|
|
|
92
85
|
|
|
93
|
-
var showEmailField = !mp_permissionEmail.hideInput && (emailChoice
|
|
94
|
-
var showSMSField = !mp_permissionSMS.hideInput && (smsChoice
|
|
95
|
-
var showPhoneField = !mp_permissionPhone.hideInput && (phoneChoice
|
|
96
|
-
var showPostFields = !mp_permissionPost.hideInput && (postChoice
|
|
86
|
+
var showEmailField = !mp_permissionEmail.hideInput && (emailChoice || errors.mp_email);
|
|
87
|
+
var showSMSField = !mp_permissionSMS.hideInput && (smsChoice || errors.mp_mobile);
|
|
88
|
+
var showPhoneField = !mp_permissionPhone.hideInput && (phoneChoice || errors.mp_phone);
|
|
89
|
+
var showPostFields = !mp_permissionPost.hideInput && (postChoice || isAddressErroring());
|
|
97
90
|
var customId = id ? "marketing-preferences--".concat(id) : 'marketing-preferences';
|
|
98
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
91
|
+
return /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.OuterWrapper, {
|
|
99
92
|
id: customId
|
|
100
93
|
}, copyTop && /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.TopCopyWrapper, null, copyTop), !mp_permissionEmail.disableOption && /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.FormField, {
|
|
101
94
|
className: "field-email"
|
|
102
|
-
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.Head, null, /*#__PURE__*/_react.default.createElement(
|
|
103
|
-
tag: "h3",
|
|
104
|
-
size: "l",
|
|
105
|
-
family: "Anton",
|
|
106
|
-
uppercase: true,
|
|
107
|
-
weight: "400",
|
|
108
|
-
color: "grey_dark"
|
|
109
|
-
}, "Email Me"), /*#__PURE__*/_react.default.createElement(_CheckAnswer.default, {
|
|
95
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.Head, null, /*#__PURE__*/_react.default.createElement(_CheckAnswer.default, {
|
|
110
96
|
mpValidationOptions: mpValidationOptions,
|
|
111
97
|
name: "mp_permissionEmail",
|
|
112
98
|
id: "mp_permissionEmail",
|
|
113
|
-
userSelection: emailChoice
|
|
99
|
+
userSelection: emailChoice,
|
|
114
100
|
formContext: formContext
|
|
115
101
|
})), /*#__PURE__*/_react.default.createElement(MaybeDisabled, {
|
|
116
102
|
disabled: disableEmailInput
|
|
117
103
|
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ShowHideInputWrapper, {
|
|
118
104
|
show: showEmailField
|
|
119
|
-
},
|
|
120
|
-
askingFor: "an email",
|
|
121
|
-
optInType: "email"
|
|
122
|
-
}), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
|
|
105
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ExtraInfo, null, "Please confirm the email address we will use to", /*#__PURE__*/_react.default.createElement("b", null, " email "), "you:"), /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.MPTextInput, {
|
|
123
106
|
placeholder: "",
|
|
124
107
|
fieldName: "mp_email",
|
|
125
108
|
label: "Please enter your email address" // Dynamically update the field attr based on config for current choice
|
|
126
109
|
,
|
|
127
|
-
optional: !mp_permissionEmail[emailChoice
|
|
110
|
+
optional: !mp_permissionEmail[emailChoice],
|
|
128
111
|
type: "email",
|
|
129
112
|
id: "mp_email",
|
|
130
113
|
formContext: formContext
|
|
131
|
-
})))), !mp_permissionSMS.disableOption && /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.FormField, {
|
|
132
|
-
className: "field-sms"
|
|
133
|
-
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.Head, null, /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
134
|
-
tag: "h3",
|
|
135
|
-
size: "l",
|
|
136
|
-
family: "Anton",
|
|
137
|
-
uppercase: true,
|
|
138
|
-
weight: "400",
|
|
139
|
-
color: "grey_dark"
|
|
140
|
-
}, "Text me"), /*#__PURE__*/_react.default.createElement(_CheckAnswer.default, {
|
|
141
|
-
name: "mp_permissionSMS",
|
|
142
|
-
id: "mp_permissionSMS",
|
|
143
|
-
mpValidationOptions: mpValidationOptions,
|
|
144
|
-
userSelection: smsChoice[0],
|
|
145
|
-
formContext: formContext
|
|
146
|
-
})), /*#__PURE__*/_react.default.createElement(MaybeDisabled, {
|
|
147
|
-
disabled: disableSMSInput
|
|
148
|
-
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ShowHideInputWrapper, {
|
|
149
|
-
show: showSMSField
|
|
150
|
-
}, smsChoice[0] === 'no' && /*#__PURE__*/_react.default.createElement(_NoMessage.default, {
|
|
151
|
-
askingFor: "a mobile number",
|
|
152
|
-
optInType: "SMS"
|
|
153
|
-
}), /*#__PURE__*/_react.default.createElement(_TextInput.default, {
|
|
154
|
-
placeholder: "",
|
|
155
|
-
fieldName: "mp_mobile",
|
|
156
|
-
label: "Please enter your mobile no.",
|
|
157
|
-
optional: !mp_permissionSMS[smsChoice[0]],
|
|
158
|
-
id: "mp_mobile",
|
|
159
|
-
formContext: formContext
|
|
160
|
-
})))), !mp_permissionPhone.disableOption && /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.FormField, {
|
|
161
|
-
className: "field-phone"
|
|
162
|
-
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.Head, null, /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
163
|
-
tag: "h3",
|
|
164
|
-
size: "l",
|
|
165
|
-
family: "Anton",
|
|
166
|
-
uppercase: true,
|
|
167
|
-
weight: "400",
|
|
168
|
-
color: "grey_dark"
|
|
169
|
-
}, "Phone me"), /*#__PURE__*/_react.default.createElement(_CheckAnswer.default, {
|
|
170
|
-
name: "mp_permissionPhone",
|
|
171
|
-
mpValidationOptions: mpValidationOptions,
|
|
172
|
-
id: "mp_permissionPhone",
|
|
173
|
-
userSelection: phoneChoice[0],
|
|
174
|
-
formContext: formContext
|
|
175
|
-
})), /*#__PURE__*/_react.default.createElement(MaybeDisabled, {
|
|
176
|
-
disabled: disablePhoneInput
|
|
177
|
-
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ShowHideInputWrapper, {
|
|
178
|
-
show: showPhoneField
|
|
179
|
-
}, phoneChoice[0] === 'no' ? /*#__PURE__*/_react.default.createElement(_NoMessage.default, {
|
|
180
|
-
askingFor: "a phone number",
|
|
181
|
-
optInType: "phone"
|
|
182
|
-
}) : '', /*#__PURE__*/_react.default.createElement(_TextInput.default, {
|
|
183
|
-
placeholder: "",
|
|
184
|
-
fieldName: "mp_phone",
|
|
185
|
-
label: "Please enter your phone no.",
|
|
186
|
-
optional: !mp_permissionPhone[phoneChoice[0]],
|
|
187
|
-
id: "mp_phone",
|
|
188
|
-
formContext: formContext
|
|
189
114
|
})))), !mp_permissionPost.disableOption && /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.FormField, {
|
|
190
115
|
className: "field-post"
|
|
191
|
-
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.Head, null, /*#__PURE__*/_react.default.createElement(
|
|
192
|
-
tag: "h3",
|
|
193
|
-
size: "l",
|
|
194
|
-
family: "Anton",
|
|
195
|
-
uppercase: true,
|
|
196
|
-
weight: "400",
|
|
197
|
-
color: "grey_dark"
|
|
198
|
-
}, "Send me post"), /*#__PURE__*/_react.default.createElement(_CheckAnswer.default, {
|
|
116
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.Head, null, /*#__PURE__*/_react.default.createElement(_CheckAnswer.default, {
|
|
199
117
|
name: "mp_permissionPost",
|
|
200
118
|
mpValidationOptions: mpValidationOptions,
|
|
201
119
|
id: "mp_permissionPost",
|
|
202
|
-
userSelection: postChoice
|
|
120
|
+
userSelection: postChoice,
|
|
203
121
|
formContext: formContext
|
|
204
122
|
})), /*#__PURE__*/_react.default.createElement(MaybeDisabled, {
|
|
205
123
|
disabled: disablePostInput
|
|
206
124
|
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ShowHideInputWrapper, {
|
|
207
125
|
show: showPostFields
|
|
208
|
-
},
|
|
209
|
-
askingFor: "an address",
|
|
210
|
-
optInType: "postal"
|
|
211
|
-
}) : '', /*#__PURE__*/_react.default.createElement(_TextInput.default, {
|
|
126
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ExtraInfo, null, "Please confirm the address we will use to", /*#__PURE__*/_react.default.createElement("b", null, " post "), "to you:"), /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.MPTextInput, {
|
|
212
127
|
placeholder: "",
|
|
213
128
|
fieldName: "mp_address1",
|
|
214
129
|
label: "Address Line 1",
|
|
215
|
-
optional: !mp_permissionPost[postChoice
|
|
130
|
+
optional: !mp_permissionPost[postChoice],
|
|
216
131
|
id: "mp_address1",
|
|
217
132
|
formContext: formContext
|
|
218
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
133
|
+
}), /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.MPTextInput, {
|
|
219
134
|
placeholder: "",
|
|
220
135
|
fieldName: "mp_address2",
|
|
221
136
|
label: "Address Line 2",
|
|
222
137
|
optional: true,
|
|
223
138
|
id: "mp_address2",
|
|
224
139
|
formContext: formContext
|
|
225
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
140
|
+
}), /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.MPTextInput, {
|
|
226
141
|
placeholder: "",
|
|
227
142
|
fieldName: "mp_address3",
|
|
228
143
|
label: "Address Line 3",
|
|
229
144
|
optional: true,
|
|
230
145
|
id: "mp_address3",
|
|
231
146
|
formContext: formContext
|
|
232
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
147
|
+
}), /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.MPTextInput, {
|
|
233
148
|
placeholder: "",
|
|
234
149
|
fieldName: "mp_town",
|
|
235
150
|
label: "Town/City",
|
|
236
|
-
optional: !mp_permissionPost[postChoice
|
|
151
|
+
optional: !mp_permissionPost[postChoice],
|
|
237
152
|
id: "mp_town",
|
|
238
153
|
formContext: formContext
|
|
239
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
154
|
+
}), /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.MPTextInput, {
|
|
240
155
|
placeholder: "",
|
|
241
156
|
fieldName: "mp_postcode",
|
|
242
157
|
label: "Postcode",
|
|
243
|
-
optional: !mp_permissionPost[postChoice
|
|
158
|
+
optional: !mp_permissionPost[postChoice],
|
|
244
159
|
id: "mp_postcode",
|
|
245
160
|
formContext: formContext
|
|
246
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
161
|
+
}), /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.MPTextInput, {
|
|
247
162
|
placeholder: "",
|
|
248
163
|
fieldName: "mp_country",
|
|
249
164
|
label: "Country",
|
|
250
|
-
optional: !mp_permissionPost[postChoice
|
|
165
|
+
optional: !mp_permissionPost[postChoice],
|
|
251
166
|
id: "mp_country",
|
|
252
167
|
formContext: formContext
|
|
168
|
+
})))), !mp_permissionSMS.disableOption && /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.FormField, {
|
|
169
|
+
className: "field-sms"
|
|
170
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.Head, null, /*#__PURE__*/_react.default.createElement(_CheckAnswer.default, {
|
|
171
|
+
name: "mp_permissionSMS",
|
|
172
|
+
id: "mp_permissionSMS",
|
|
173
|
+
mpValidationOptions: mpValidationOptions,
|
|
174
|
+
userSelection: smsChoice,
|
|
175
|
+
formContext: formContext
|
|
176
|
+
})), /*#__PURE__*/_react.default.createElement(MaybeDisabled, {
|
|
177
|
+
disabled: disableSMSInput
|
|
178
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ShowHideInputWrapper, {
|
|
179
|
+
show: showSMSField
|
|
180
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ExtraInfo, null, "Please confirm the mobile number we will use to", /*#__PURE__*/_react.default.createElement("b", null, " text "), "you on:"), /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.MPTextInput, {
|
|
181
|
+
placeholder: "",
|
|
182
|
+
fieldName: "mp_mobile",
|
|
183
|
+
label: "Please enter your mobile no.",
|
|
184
|
+
optional: !mp_permissionSMS[smsChoice],
|
|
185
|
+
id: "mp_mobile",
|
|
186
|
+
formContext: formContext
|
|
187
|
+
})))), !mp_permissionPhone.disableOption && /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.FormField, {
|
|
188
|
+
className: "field-phone"
|
|
189
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.Head, null, /*#__PURE__*/_react.default.createElement(_CheckAnswer.default, {
|
|
190
|
+
name: "mp_permissionPhone",
|
|
191
|
+
mpValidationOptions: mpValidationOptions,
|
|
192
|
+
id: "mp_permissionPhone",
|
|
193
|
+
userSelection: phoneChoice,
|
|
194
|
+
formContext: formContext
|
|
195
|
+
})), /*#__PURE__*/_react.default.createElement(MaybeDisabled, {
|
|
196
|
+
disabled: disablePhoneInput
|
|
197
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ShowHideInputWrapper, {
|
|
198
|
+
show: showPhoneField
|
|
199
|
+
}, /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.ExtraInfo, null, "Please confirm the telephone number we will use to", /*#__PURE__*/_react.default.createElement("b", null, " phone "), "you on:"), /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.MPTextInput, {
|
|
200
|
+
placeholder: "",
|
|
201
|
+
fieldName: "mp_phone",
|
|
202
|
+
label: "Please enter your phone no.",
|
|
203
|
+
optional: !mp_permissionPhone[phoneChoice],
|
|
204
|
+
id: "mp_phone",
|
|
205
|
+
formContext: formContext
|
|
253
206
|
})))), copyBottom && /*#__PURE__*/_react.default.createElement(_MarketingPreferencesDS.BottomCopyWrapper, null, copyBottom));
|
|
254
207
|
}; // removes from DOM completely
|
|
255
208
|
|