fontdue-js 1.4.0 → 1.5.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/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 1.5.0
2
+
3
+ - NewsletterSignup improvements
4
+ - Added `successLabel` prop to customize success message
5
+ - Success label can also be set via "Labels" settings in CMS
6
+
1
7
  ## 1.4.0
2
8
 
3
9
  - StoreModal precart improvements
@@ -6,7 +12,7 @@
6
12
 
7
13
  ## 1.3.1
8
14
 
9
- - Adjusts StoreModal layouts
15
+ - Adjusted StoreModal layouts
10
16
 
11
17
  ## 1.3.0
12
18
 
@@ -0,0 +1,14 @@
1
+ import { ConcreteRequest } from "relay-runtime";
2
+ import { FragmentRefs } from "relay-runtime";
3
+ export declare type NewsletterSignup_QueryVariables = {};
4
+ export declare type NewsletterSignup_QueryResponse = {
5
+ readonly viewer: {
6
+ readonly " $fragmentRefs": FragmentRefs<"NewsletterSignup_viewer">;
7
+ } | null;
8
+ };
9
+ export declare type NewsletterSignup_Query = {
10
+ readonly response: NewsletterSignup_QueryResponse;
11
+ readonly variables: NewsletterSignup_QueryVariables;
12
+ };
13
+ declare const node: ConcreteRequest;
14
+ export default node;
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ /* tslint:disable */
9
+
10
+ /* eslint-disable */
11
+ // @ts-nocheck
12
+
13
+ /*
14
+ query NewsletterSignup_Query {
15
+ viewer {
16
+ ...NewsletterSignup_viewer
17
+ id
18
+ }
19
+ }
20
+
21
+ fragment NewsletterSignup_viewer on Viewer {
22
+ settings {
23
+ newsletterOptInLabel(format: HTML)
24
+ newsletterSuccessLabel(format: HTML)
25
+ }
26
+ }
27
+ */
28
+ const node = function () {
29
+ var v0 = [{
30
+ "kind": "Literal",
31
+ "name": "format",
32
+ "value": "HTML"
33
+ }];
34
+ return {
35
+ "fragment": {
36
+ "argumentDefinitions": [],
37
+ "kind": "Fragment",
38
+ "metadata": null,
39
+ "name": "NewsletterSignup_Query",
40
+ "selections": [{
41
+ "alias": null,
42
+ "args": null,
43
+ "concreteType": "Viewer",
44
+ "kind": "LinkedField",
45
+ "name": "viewer",
46
+ "plural": false,
47
+ "selections": [{
48
+ "args": null,
49
+ "kind": "FragmentSpread",
50
+ "name": "NewsletterSignup_viewer"
51
+ }],
52
+ "storageKey": null
53
+ }],
54
+ "type": "RootQueryType",
55
+ "abstractKey": null
56
+ },
57
+ "kind": "Request",
58
+ "operation": {
59
+ "argumentDefinitions": [],
60
+ "kind": "Operation",
61
+ "name": "NewsletterSignup_Query",
62
+ "selections": [{
63
+ "alias": null,
64
+ "args": null,
65
+ "concreteType": "Viewer",
66
+ "kind": "LinkedField",
67
+ "name": "viewer",
68
+ "plural": false,
69
+ "selections": [{
70
+ "alias": null,
71
+ "args": null,
72
+ "concreteType": "Settings",
73
+ "kind": "LinkedField",
74
+ "name": "settings",
75
+ "plural": false,
76
+ "selections": [{
77
+ "alias": null,
78
+ "args": v0
79
+ /*: any*/
80
+ ,
81
+ "kind": "ScalarField",
82
+ "name": "newsletterOptInLabel",
83
+ "storageKey": "newsletterOptInLabel(format:\"HTML\")"
84
+ }, {
85
+ "alias": null,
86
+ "args": v0
87
+ /*: any*/
88
+ ,
89
+ "kind": "ScalarField",
90
+ "name": "newsletterSuccessLabel",
91
+ "storageKey": "newsletterSuccessLabel(format:\"HTML\")"
92
+ }],
93
+ "storageKey": null
94
+ }, {
95
+ "alias": null,
96
+ "args": null,
97
+ "kind": "ScalarField",
98
+ "name": "id",
99
+ "storageKey": null
100
+ }],
101
+ "storageKey": null
102
+ }]
103
+ },
104
+ "params": {
105
+ "cacheID": "c2ac1f4cd512a8382e6abc76847214aa",
106
+ "id": null,
107
+ "metadata": {},
108
+ "name": "NewsletterSignup_Query",
109
+ "operationKind": "query",
110
+ "text": "query NewsletterSignup_Query {\n viewer {\n ...NewsletterSignup_viewer\n id\n }\n}\n\nfragment NewsletterSignup_viewer on Viewer {\n settings {\n newsletterOptInLabel(format: HTML)\n newsletterSuccessLabel(format: HTML)\n }\n}\n"
111
+ }
112
+ };
113
+ }();
114
+
115
+ node.hash = 'ede23ce8fe999201dacb066fcef009af';
116
+ var _default = node;
117
+ exports.default = _default;
@@ -0,0 +1,16 @@
1
+ import { ReaderFragment } from "relay-runtime";
2
+ import { FragmentRefs } from "relay-runtime";
3
+ export declare type NewsletterSignup_viewer = {
4
+ readonly settings: {
5
+ readonly newsletterOptInLabel: string | null;
6
+ readonly newsletterSuccessLabel: string | null;
7
+ } | null;
8
+ readonly " $refType": "NewsletterSignup_viewer";
9
+ };
10
+ export declare type NewsletterSignup_viewer$data = NewsletterSignup_viewer;
11
+ export declare type NewsletterSignup_viewer$key = {
12
+ readonly " $data"?: NewsletterSignup_viewer$data;
13
+ readonly " $fragmentRefs": FragmentRefs<"NewsletterSignup_viewer">;
14
+ };
15
+ declare const node: ReaderFragment;
16
+ export default node;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ /* tslint:disable */
9
+
10
+ /* eslint-disable */
11
+ // @ts-nocheck
12
+ const node = function () {
13
+ var v0 = [{
14
+ "kind": "Literal",
15
+ "name": "format",
16
+ "value": "HTML"
17
+ }];
18
+ return {
19
+ "argumentDefinitions": [],
20
+ "kind": "Fragment",
21
+ "metadata": null,
22
+ "name": "NewsletterSignup_viewer",
23
+ "selections": [{
24
+ "alias": null,
25
+ "args": null,
26
+ "concreteType": "Settings",
27
+ "kind": "LinkedField",
28
+ "name": "settings",
29
+ "plural": false,
30
+ "selections": [{
31
+ "alias": null,
32
+ "args": v0
33
+ /*: any*/
34
+ ,
35
+ "kind": "ScalarField",
36
+ "name": "newsletterOptInLabel",
37
+ "storageKey": "newsletterOptInLabel(format:\"HTML\")"
38
+ }, {
39
+ "alias": null,
40
+ "args": v0
41
+ /*: any*/
42
+ ,
43
+ "kind": "ScalarField",
44
+ "name": "newsletterSuccessLabel",
45
+ "storageKey": "newsletterSuccessLabel(format:\"HTML\")"
46
+ }],
47
+ "storageKey": null
48
+ }],
49
+ "type": "Viewer",
50
+ "abstractKey": null
51
+ };
52
+ }();
53
+
54
+ node.hash = '05823550a311988e999fd9b95cc39dac';
55
+ var _default = node;
56
+ exports.default = _default;
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
- interface NewsletterSignup_props {
2
+ interface NewsletterSignup_baseProps {
3
3
  optInLabel?: string;
4
+ successLabel?: string;
4
5
  buttonLabel?: string;
5
6
  optInCheckboxChecked?: boolean;
6
7
  title?: string;
7
8
  intro?: string;
8
9
  }
9
- declare const NewsletterSignup: React.FC<NewsletterSignup_props>;
10
- export default NewsletterSignup;
10
+ declare const NewsletterSignupFetcher: React.FC<NewsletterSignup_baseProps>;
11
+ export default NewsletterSignupFetcher;
@@ -13,7 +13,7 @@ var _TextField = _interopRequireDefault(require("../TextField"));
13
13
 
14
14
  var _Check = _interopRequireDefault(require("../Icons/Check"));
15
15
 
16
- var _NewsletterSignupUpdateCustomerMutation;
16
+ var _NewsletterSignupUpdateCustomerMutation, _NewsletterSignup_viewer, _NewsletterSignup_Query;
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
@@ -21,16 +21,23 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
21
21
 
22
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; }
23
23
 
24
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
+
24
26
  const updateCustomerMutation = _NewsletterSignupUpdateCustomerMutation !== void 0 ? _NewsletterSignupUpdateCustomerMutation : (_NewsletterSignupUpdateCustomerMutation = require("../../__generated__/NewsletterSignupUpdateCustomerMutation.graphql"), _NewsletterSignupUpdateCustomerMutation.hash && _NewsletterSignupUpdateCustomerMutation.hash !== "769087891b6f263122bbb630b3f2ca6c" && console.error("The definition of 'NewsletterSignupUpdateCustomerMutation' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _NewsletterSignupUpdateCustomerMutation);
25
27
 
26
28
  const NewsletterSignup = _ref => {
29
+ var _data$settings, _ref3, _data$settings2;
30
+
27
31
  let {
28
- optInLabel,
32
+ optInLabel: optInLabelProp,
33
+ successLabel: successLabelProp,
29
34
  buttonLabel = 'Subscribe',
30
35
  optInCheckboxChecked = false,
31
36
  title,
32
- intro
37
+ intro,
38
+ viewer
33
39
  } = _ref;
40
+ const data = (0, _reactRelay.useFragment)(_NewsletterSignup_viewer !== void 0 ? _NewsletterSignup_viewer : (_NewsletterSignup_viewer = require("../../__generated__/NewsletterSignup_viewer.graphql"), _NewsletterSignup_viewer.hash && _NewsletterSignup_viewer.hash !== "05823550a311988e999fd9b95cc39dac" && console.error("The definition of 'NewsletterSignup_viewer' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _NewsletterSignup_viewer), viewer);
34
41
  const [name, setName] = (0, _react.useState)('');
35
42
  const [email, setEmail] = (0, _react.useState)('');
36
43
  const [newsletterOptIn, setNewsletterOptIn] = (0, _react.useState)(optInCheckboxChecked);
@@ -76,10 +83,19 @@ const NewsletterSignup = _ref => {
76
83
  });
77
84
  };
78
85
 
86
+ const disabled = submitting || !newsletterOptIn || !email || !name;
87
+ const optInLabel = optInLabelProp || (data === null || data === void 0 ? void 0 : (_data$settings = data.settings) === null || _data$settings === void 0 ? void 0 : _data$settings.newsletterOptInLabel);
88
+ const successLabel = (_ref3 = successLabelProp || (data === null || data === void 0 ? void 0 : (_data$settings2 = data.settings) === null || _data$settings2 === void 0 ? void 0 : _data$settings2.newsletterSuccessLabel)) !== null && _ref3 !== void 0 ? _ref3 : 'Success!';
89
+
79
90
  if (submitted) {
80
91
  return /*#__PURE__*/_react.default.createElement("div", {
81
92
  className: "newsletter-signup"
82
- }, "Success!");
93
+ }, /*#__PURE__*/_react.default.createElement("div", {
94
+ className: "newsletter-signup__success",
95
+ dangerouslySetInnerHTML: {
96
+ __html: successLabel
97
+ }
98
+ }));
83
99
  }
84
100
 
85
101
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -121,16 +137,46 @@ const NewsletterSignup = _ref => {
121
137
  }), /*#__PURE__*/_react.default.createElement("div", {
122
138
  className: "checkbox__icon"
123
139
  }, /*#__PURE__*/_react.default.createElement(_Check.default, null))), /*#__PURE__*/_react.default.createElement("label", {
124
- htmlFor: "customer-newsletter-opt-in"
125
- }, optInLabel)), /*#__PURE__*/_react.default.createElement("div", {
140
+ htmlFor: "customer-newsletter-opt-in",
141
+ dangerouslySetInnerHTML: {
142
+ __html: optInLabel !== null && optInLabel !== void 0 ? optInLabel : ''
143
+ }
144
+ })), /*#__PURE__*/_react.default.createElement("div", {
126
145
  className: "newsletter-signup__section"
127
146
  }, /*#__PURE__*/_react.default.createElement("button", {
128
147
  className: "submit-button",
129
- disabled: submitting || !newsletterOptIn
148
+ disabled: disabled
130
149
  }, submitting ? 'Submitting...' : buttonLabel, /*#__PURE__*/_react.default.createElement("span", {
131
150
  className: "submit-button__arrow"
132
151
  }, ' →')))));
133
152
  };
134
153
 
135
- var _default = NewsletterSignup;
154
+ const NewsletterSignupFetcher = params => {
155
+ const environment = (0, _reactRelay.useRelayEnvironment)();
156
+ return /*#__PURE__*/_react.default.createElement(_reactRelay.QueryRenderer, {
157
+ environment: environment,
158
+ query: _NewsletterSignup_Query !== void 0 ? _NewsletterSignup_Query : (_NewsletterSignup_Query = require("../../__generated__/NewsletterSignup_Query.graphql"), _NewsletterSignup_Query.hash && _NewsletterSignup_Query.hash !== "ede23ce8fe999201dacb066fcef009af" && console.error("The definition of 'NewsletterSignup_Query' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _NewsletterSignup_Query),
159
+ variables: {},
160
+ render: _ref4 => {
161
+ let {
162
+ props,
163
+ error
164
+ } = _ref4;
165
+
166
+ if (error) {
167
+ console.error(error); // TODO: centralize error component, report to sentry
168
+
169
+ return null;
170
+ }
171
+
172
+ if (props) {
173
+ return /*#__PURE__*/_react.default.createElement(NewsletterSignup, _extends({}, params, props));
174
+ }
175
+
176
+ return /*#__PURE__*/_react.default.createElement("div", null, "Loading...");
177
+ }
178
+ });
179
+ };
180
+
181
+ var _default = NewsletterSignupFetcher;
136
182
  exports.default = _default;
@@ -118,7 +118,7 @@ const TestFontsFormBase = _ref2 => {
118
118
  }, /*#__PURE__*/_react.default.createElement("div", {
119
119
  className: "test-fonts__section"
120
120
  }, /*#__PURE__*/_react.default.createElement(_TextField.default, {
121
- label: "Name*",
121
+ label: "Name *",
122
122
  value: name,
123
123
  onChange: value => setName(value),
124
124
  autocomplete: "name",
@@ -126,7 +126,8 @@ const TestFontsFormBase = _ref2 => {
126
126
  })), /*#__PURE__*/_react.default.createElement("div", {
127
127
  className: "test-fonts__section"
128
128
  }, /*#__PURE__*/_react.default.createElement(_TextField.default, {
129
- label: "Email*",
129
+ label: "Email *",
130
+ type: "email",
130
131
  value: email,
131
132
  onChange: value => setEmail(value),
132
133
  autocomplete: "email",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fontdue-js",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "build": "run-p build-js build-css build-ts-declarations",