@graphcommerce/magento-cart 8.1.0-canary.9 → 9.0.0-canary.100
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/Api/CartItemCountChanged.graphql +1 -1
- package/CHANGELOG.md +245 -54
- package/Config.graphqls +17 -0
- package/components/ApolloCartError/ApolloCartErrorAlert.tsx +1 -46
- package/components/CartAddress/CartAddress.graphql +1 -0
- package/components/CartAgreementsForm/CartAgreementsForm.tsx +60 -33
- package/components/CartFab/CartFab.tsx +7 -1
- package/components/CartStartCheckout/CartStartCheckout.graphql +1 -1
- package/components/CartStartCheckout/CartStartCheckout.tsx +23 -7
- package/components/CartStartCheckout/CartStartCheckoutLinkOrButton.tsx +4 -2
- package/components/CartTotals/CartTotals.graphql +8 -4
- package/components/CartTotals/CartTotals.tsx +9 -6
- package/components/EmptyCart/EmptyCart.tsx +8 -4
- package/components/InlineAccount/InlineAccount.tsx +6 -6
- package/components/OrderSucces/OrderSuccesPage.graphql +1 -1
- package/hooks/index.ts +5 -3
- package/hooks/useCartPermissions.ts +21 -0
- package/hooks/useCartQuery.ts +24 -3
- package/hooks/useCheckoutPermissions.ts +21 -0
- package/hooks/useFormGqlMutationCart.ts +40 -3
- package/index.ts +4 -3
- package/link/{createCartErrorLink.ts → cartLink.ts} +60 -4
- package/link/isProtectedCartOperation.ts +5 -0
- package/package.json +16 -15
- package/plugins/MagentoCartGraphqlProvider.tsx +15 -3
- package/plugins/useSignInFormMergeCart.ts +8 -7
- package/typePolicies.ts +1 -0
- package/utils/cartPermissions.ts +23 -0
- package/utils/checkoutPermissions.ts +13 -0
- package/utils/index.ts +2 -0
- package/hooks/CurrentCartId.graphqls +0 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,13 +1,226 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 9.0.0-canary.100
|
|
4
|
+
|
|
5
|
+
## 9.0.0-canary.99
|
|
6
|
+
|
|
7
|
+
## 9.0.0-canary.98
|
|
8
|
+
|
|
9
|
+
## 9.0.0-canary.97
|
|
10
|
+
|
|
11
|
+
## 9.0.0-canary.96
|
|
12
|
+
|
|
13
|
+
## 9.0.0-canary.95
|
|
14
|
+
|
|
15
|
+
## 9.0.0-canary.94
|
|
16
|
+
|
|
17
|
+
## 9.0.0-canary.93
|
|
18
|
+
|
|
19
|
+
## 9.0.0-canary.92
|
|
20
|
+
|
|
21
|
+
## 9.0.0-canary.91
|
|
22
|
+
|
|
23
|
+
## 9.0.0-canary.90
|
|
24
|
+
|
|
25
|
+
## 9.0.0-canary.89
|
|
26
|
+
|
|
27
|
+
## 9.0.0-canary.88
|
|
28
|
+
|
|
29
|
+
## 9.0.0-canary.87
|
|
30
|
+
|
|
31
|
+
## 9.0.0-canary.86
|
|
32
|
+
|
|
33
|
+
## 9.0.0-canary.85
|
|
34
|
+
|
|
35
|
+
## 9.0.0-canary.84
|
|
36
|
+
|
|
37
|
+
## 9.0.0-canary.83
|
|
38
|
+
|
|
39
|
+
## 9.0.0-canary.82
|
|
40
|
+
|
|
41
|
+
### Minor Changes
|
|
42
|
+
|
|
43
|
+
- [#2366](https://github.com/graphcommerce-org/graphcommerce/pull/2366) [`3612c99`](https://github.com/graphcommerce-org/graphcommerce/commit/3612c994b80bb3b1bc02de10668f69a332402dc4) - Add `permissions` config so the website or store can be configurated to run in different modes. ([@Giovanni-Schroevers](https://github.com/Giovanni-Schroevers))
|
|
44
|
+
|
|
45
|
+
## 9.0.0-canary.81
|
|
46
|
+
|
|
47
|
+
## 9.0.0-canary.80
|
|
48
|
+
|
|
49
|
+
## 9.0.0-canary.79
|
|
50
|
+
|
|
51
|
+
## 9.0.0-canary.78
|
|
52
|
+
|
|
53
|
+
## 9.0.0-canary.77
|
|
54
|
+
|
|
55
|
+
## 9.0.0-canary.76
|
|
56
|
+
|
|
57
|
+
## 9.0.0-canary.75
|
|
58
|
+
|
|
59
|
+
## 9.0.0-canary.74
|
|
60
|
+
|
|
61
|
+
## 9.0.0-canary.73
|
|
62
|
+
|
|
63
|
+
## 9.0.0-canary.72
|
|
64
|
+
|
|
65
|
+
## 9.0.0-canary.71
|
|
66
|
+
|
|
67
|
+
## 9.0.0-canary.70
|
|
68
|
+
|
|
69
|
+
## 9.0.0-canary.69
|
|
70
|
+
|
|
71
|
+
### Patch Changes
|
|
72
|
+
|
|
73
|
+
- [#2338](https://github.com/graphcommerce-org/graphcommerce/pull/2338) [`6984f8c`](https://github.com/graphcommerce-org/graphcommerce/commit/6984f8ce94433963d7bab0e1949c1737767e17ba) - Pass sx props to EmptyCart component ([@JoshuaS98](https://github.com/JoshuaS98))
|
|
74
|
+
|
|
75
|
+
## 9.0.0-canary.68
|
|
76
|
+
|
|
77
|
+
## 9.0.0-canary.67
|
|
78
|
+
|
|
79
|
+
## 9.0.0-canary.66
|
|
80
|
+
|
|
81
|
+
## 9.0.0-canary.65
|
|
82
|
+
|
|
83
|
+
## 9.0.0-canary.64
|
|
84
|
+
|
|
85
|
+
## 9.0.0-canary.63
|
|
86
|
+
|
|
87
|
+
## 9.0.0-canary.62
|
|
88
|
+
|
|
89
|
+
## 9.0.0-canary.61
|
|
90
|
+
|
|
91
|
+
## 9.0.0-canary.60
|
|
92
|
+
|
|
93
|
+
## 9.0.0-canary.59
|
|
94
|
+
|
|
95
|
+
## 9.0.0-canary.58
|
|
96
|
+
|
|
97
|
+
## 9.0.0-canary.57
|
|
98
|
+
|
|
99
|
+
## 9.0.0-canary.56
|
|
100
|
+
|
|
101
|
+
## 9.0.0-canary.55
|
|
102
|
+
|
|
103
|
+
## 9.0.0-canary.54
|
|
104
|
+
|
|
105
|
+
## 8.1.0-canary.53
|
|
106
|
+
|
|
107
|
+
## 8.1.0-canary.52
|
|
108
|
+
|
|
109
|
+
## 8.1.0-canary.51
|
|
110
|
+
|
|
111
|
+
## 8.1.0-canary.50
|
|
112
|
+
|
|
113
|
+
## 8.1.0-canary.49
|
|
114
|
+
|
|
115
|
+
## 8.1.0-canary.48
|
|
116
|
+
|
|
117
|
+
## 8.1.0-canary.47
|
|
118
|
+
|
|
119
|
+
## 8.1.0-canary.46
|
|
120
|
+
|
|
121
|
+
## 8.1.0-canary.45
|
|
122
|
+
|
|
123
|
+
### Patch Changes
|
|
124
|
+
|
|
125
|
+
- [#2216](https://github.com/graphcommerce-org/graphcommerce/pull/2216) [`2faebf1`](https://github.com/graphcommerce-org/graphcommerce/commit/2faebf16fbda95390872ac0debe979fa570ed904) - When signing in make sure the cart isn't merged if the login is unsuccesful ([@paales](https://github.com/paales))
|
|
126
|
+
|
|
127
|
+
## 8.1.0-canary.44
|
|
128
|
+
|
|
129
|
+
## 8.1.0-canary.43
|
|
130
|
+
|
|
131
|
+
## 8.1.0-canary.42
|
|
132
|
+
|
|
133
|
+
## 8.1.0-canary.41
|
|
134
|
+
|
|
135
|
+
## 8.1.0-canary.40
|
|
136
|
+
|
|
137
|
+
## 8.1.0-canary.39
|
|
138
|
+
|
|
139
|
+
## 8.1.0-canary.38
|
|
140
|
+
|
|
141
|
+
### Minor Changes
|
|
142
|
+
|
|
143
|
+
- [#2305](https://github.com/graphcommerce-org/graphcommerce/pull/2305) [`77e8297`](https://github.com/graphcommerce-org/graphcommerce/commit/77e82976816994336c616208a651cb18ce9ea270) - Add company and vat fields to shipping and billing forms ([@Giovanni-Schroevers](https://github.com/Giovanni-Schroevers))
|
|
144
|
+
|
|
145
|
+
### Patch Changes
|
|
146
|
+
|
|
147
|
+
- [#2305](https://github.com/graphcommerce-org/graphcommerce/pull/2305) [`77e8297`](https://github.com/graphcommerce-org/graphcommerce/commit/77e82976816994336c616208a651cb18ce9ea270) - Fix bug with persist not applying saved changes by moving <FromPersist/> below the form components ([@Giovanni-Schroevers](https://github.com/Giovanni-Schroevers))
|
|
148
|
+
|
|
149
|
+
## 8.1.0-canary.37
|
|
150
|
+
|
|
151
|
+
## 8.1.0-canary.36
|
|
152
|
+
|
|
153
|
+
## 8.1.0-canary.35
|
|
154
|
+
|
|
155
|
+
### Patch Changes
|
|
156
|
+
|
|
157
|
+
- [#2301](https://github.com/graphcommerce-org/graphcommerce/pull/2301) [`13d0649`](https://github.com/graphcommerce-org/graphcommerce/commit/13d06498d121f93b52c25930e50aa3b0bd12a818) - Created a new EmailElement component to make re-use easier ([@Giovanni-Schroevers](https://github.com/Giovanni-Schroevers))
|
|
158
|
+
|
|
159
|
+
## 8.1.0-canary.34
|
|
160
|
+
|
|
161
|
+
### Minor Changes
|
|
162
|
+
|
|
163
|
+
- [#2303](https://github.com/graphcommerce-org/graphcommerce/pull/2303) [`f407e96`](https://github.com/graphcommerce-org/graphcommerce/commit/f407e961868683a257c8f7fe8ceb588fb825db9b) - Get shippingMethodPrices from selected shipping method if supported on the magento version ([@Giovanni-Schroevers](https://github.com/Giovanni-Schroevers))
|
|
164
|
+
|
|
165
|
+
## 8.1.0-canary.33
|
|
166
|
+
|
|
167
|
+
## 8.1.0-canary.32
|
|
168
|
+
|
|
169
|
+
## 8.1.0-canary.31
|
|
170
|
+
|
|
171
|
+
## 8.1.0-canary.30
|
|
172
|
+
|
|
173
|
+
## 8.1.0-canary.29
|
|
174
|
+
|
|
175
|
+
## 8.1.0-canary.28
|
|
176
|
+
|
|
177
|
+
## 8.1.0-canary.27
|
|
178
|
+
|
|
179
|
+
## 8.1.0-canary.26
|
|
180
|
+
|
|
181
|
+
## 8.1.0-canary.25
|
|
182
|
+
|
|
183
|
+
### Patch Changes
|
|
184
|
+
|
|
185
|
+
- [#2266](https://github.com/graphcommerce-org/graphcommerce/pull/2266) [`0d1fe7a`](https://github.com/graphcommerce-org/graphcommerce/commit/0d1fe7a26ed2d18510c8767795294654c478fb88) - Enable the use of one or more anchor links within the 'checkbox_text' field and customize their paths. ([@carlocarels90](https://github.com/carlocarels90))
|
|
186
|
+
|
|
187
|
+
## 8.1.0-canary.24
|
|
188
|
+
|
|
189
|
+
## 8.1.0-canary.23
|
|
190
|
+
|
|
191
|
+
## 8.1.0-canary.22
|
|
192
|
+
|
|
193
|
+
## 8.1.0-canary.21
|
|
194
|
+
|
|
195
|
+
## 8.1.0-canary.20
|
|
196
|
+
|
|
197
|
+
## 8.1.0-canary.19
|
|
198
|
+
|
|
199
|
+
## 8.1.0-canary.18
|
|
200
|
+
|
|
201
|
+
## 8.1.0-canary.17
|
|
202
|
+
|
|
203
|
+
## 8.1.0-canary.16
|
|
204
|
+
|
|
205
|
+
## 8.1.0-canary.15
|
|
206
|
+
|
|
207
|
+
## 8.1.0-canary.14
|
|
208
|
+
|
|
209
|
+
## 8.1.0-canary.13
|
|
210
|
+
|
|
211
|
+
## 8.1.0-canary.12
|
|
212
|
+
|
|
213
|
+
## 8.1.0-canary.11
|
|
214
|
+
|
|
215
|
+
## 8.1.0-canary.10
|
|
216
|
+
|
|
3
217
|
## 8.1.0-canary.9
|
|
4
218
|
|
|
5
219
|
## 8.1.0-canary.8
|
|
6
220
|
|
|
7
221
|
### Patch Changes
|
|
8
222
|
|
|
9
|
-
- [#2247](https://github.com/graphcommerce-org/graphcommerce/pull/2247) [`a56a7c6`](https://github.com/graphcommerce-org/graphcommerce/commit/a56a7c67cf27dfb91bf763a873beeec562ab3156) - Solve an issue where the cart would be sometimes undefined, but Partial was too eleborate
|
|
10
|
-
([@paales](https://github.com/paales))
|
|
223
|
+
- [#2247](https://github.com/graphcommerce-org/graphcommerce/pull/2247) [`a56a7c6`](https://github.com/graphcommerce-org/graphcommerce/commit/a56a7c67cf27dfb91bf763a873beeec562ab3156) - Solve an issue where the cart would be sometimes undefined, but Partial was too eleborate ([@paales](https://github.com/paales))
|
|
11
224
|
|
|
12
225
|
## 8.1.0-canary.7
|
|
13
226
|
|
|
@@ -23,11 +236,9 @@
|
|
|
23
236
|
|
|
24
237
|
### Patch Changes
|
|
25
238
|
|
|
26
|
-
- [#2234](https://github.com/graphcommerce-org/graphcommerce/pull/2234) [`0767bc4`](https://github.com/graphcommerce-org/graphcommerce/commit/0767bc40f7b596209f24ca4e745ff0441f3275c9) - Upgrade input components to no longer use muiRegister, which improves INP scores
|
|
27
|
-
([@FrankHarland](https://github.com/FrankHarland))
|
|
239
|
+
- [#2234](https://github.com/graphcommerce-org/graphcommerce/pull/2234) [`0767bc4`](https://github.com/graphcommerce-org/graphcommerce/commit/0767bc40f7b596209f24ca4e745ff0441f3275c9) - Upgrade input components to no longer use muiRegister, which improves INP scores ([@FrankHarland](https://github.com/FrankHarland))
|
|
28
240
|
|
|
29
|
-
- [#2234](https://github.com/graphcommerce-org/graphcommerce/pull/2234) [`530076e`](https://github.com/graphcommerce-org/graphcommerce/commit/530076e3664703cb8b577b7fcf1998a420819f60) - Moved all usages of useFormPersist to the <FormPersist/> component to prevent rerenders.
|
|
30
|
-
([@FrankHarland](https://github.com/FrankHarland))
|
|
241
|
+
- [#2234](https://github.com/graphcommerce-org/graphcommerce/pull/2234) [`530076e`](https://github.com/graphcommerce-org/graphcommerce/commit/530076e3664703cb8b577b7fcf1998a420819f60) - Moved all usages of useFormPersist to the <FormPersist/> component to prevent rerenders. ([@FrankHarland](https://github.com/FrankHarland))
|
|
31
242
|
|
|
32
243
|
## 8.0.6-canary.1
|
|
33
244
|
|
|
@@ -61,8 +272,7 @@
|
|
|
61
272
|
|
|
62
273
|
### Patch Changes
|
|
63
274
|
|
|
64
|
-
- [#2221](https://github.com/graphcommerce-org/graphcommerce/pull/2221) [`0ba1fdc`](https://github.com/graphcommerce-org/graphcommerce/commit/0ba1fdc9a2d005f47cd1725fe723e77da4cc5b9d) - After a user just logged in the checkout, the useFormGqlMutationCart would still run even though the cart was locked.
|
|
65
|
-
([@paales](https://github.com/paales))
|
|
275
|
+
- [#2221](https://github.com/graphcommerce-org/graphcommerce/pull/2221) [`0ba1fdc`](https://github.com/graphcommerce-org/graphcommerce/commit/0ba1fdc9a2d005f47cd1725fe723e77da4cc5b9d) - After a user just logged in the checkout, the useFormGqlMutationCart would still run even though the cart was locked. ([@paales](https://github.com/paales))
|
|
66
276
|
|
|
67
277
|
## 8.0.4-canary.1
|
|
68
278
|
|
|
@@ -70,21 +280,17 @@
|
|
|
70
280
|
|
|
71
281
|
### Patch Changes
|
|
72
282
|
|
|
73
|
-
- [#2221](https://github.com/graphcommerce-org/graphcommerce/pull/2221) [`0ba1fdc`](https://github.com/graphcommerce-org/graphcommerce/commit/0ba1fdc9a2d005f47cd1725fe723e77da4cc5b9d) - After a user just logged in the checkout, the useFormGqlMutationCart would still run even though the cart was locked.
|
|
74
|
-
([@paales](https://github.com/paales))
|
|
283
|
+
- [#2221](https://github.com/graphcommerce-org/graphcommerce/pull/2221) [`0ba1fdc`](https://github.com/graphcommerce-org/graphcommerce/commit/0ba1fdc9a2d005f47cd1725fe723e77da4cc5b9d) - After a user just logged in the checkout, the useFormGqlMutationCart would still run even though the cart was locked. ([@paales](https://github.com/paales))
|
|
75
284
|
|
|
76
285
|
## 8.0.3
|
|
77
286
|
|
|
78
287
|
### Patch Changes
|
|
79
288
|
|
|
80
|
-
- [#2205](https://github.com/graphcommerce-org/graphcommerce/pull/2205) [`d67c89d`](https://github.com/graphcommerce-org/graphcommerce/commit/d67c89d464a60f0e2618dab670b63a39f6291341) - Deprecate the allowUrl option for useCartQuery, it was already enabled by default and should never be set to false.
|
|
81
|
-
([@paales](https://github.com/paales))
|
|
289
|
+
- [#2205](https://github.com/graphcommerce-org/graphcommerce/pull/2205) [`d67c89d`](https://github.com/graphcommerce-org/graphcommerce/commit/d67c89d464a60f0e2618dab670b63a39f6291341) - Deprecate the allowUrl option for useCartQuery, it was already enabled by default and should never be set to false. ([@paales](https://github.com/paales))
|
|
82
290
|
|
|
83
|
-
- [#2205](https://github.com/graphcommerce-org/graphcommerce/pull/2205) [`3fbf3da`](https://github.com/graphcommerce-org/graphcommerce/commit/3fbf3da8a67f2fbaa7fa974a37cbbf34613844e4) - Solve an issue where the user would be presented with the Session expired dialog when the user would be logging in during the checkout process.
|
|
84
|
-
([@paales](https://github.com/paales))
|
|
291
|
+
- [#2205](https://github.com/graphcommerce-org/graphcommerce/pull/2205) [`3fbf3da`](https://github.com/graphcommerce-org/graphcommerce/commit/3fbf3da8a67f2fbaa7fa974a37cbbf34613844e4) - Solve an issue where the user would be presented with the Session expired dialog when the user would be logging in during the checkout process. ([@paales](https://github.com/paales))
|
|
85
292
|
|
|
86
|
-
- [#2207](https://github.com/graphcommerce-org/graphcommerce/pull/2207) [`9876b13`](https://github.com/graphcommerce-org/graphcommerce/commit/9876b139b2c12c860a16af97eddea761d1059110) - Remove redundant query on the success page for logged in customers
|
|
87
|
-
([@paales](https://github.com/paales))
|
|
293
|
+
- [#2207](https://github.com/graphcommerce-org/graphcommerce/pull/2207) [`9876b13`](https://github.com/graphcommerce-org/graphcommerce/commit/9876b139b2c12c860a16af97eddea761d1059110) - Remove redundant query on the success page for logged in customers ([@paales](https://github.com/paales))
|
|
88
294
|
|
|
89
295
|
## 8.0.3-canary.6
|
|
90
296
|
|
|
@@ -98,18 +304,15 @@
|
|
|
98
304
|
|
|
99
305
|
### Patch Changes
|
|
100
306
|
|
|
101
|
-
- [#2205](https://github.com/graphcommerce-org/graphcommerce/pull/2205) [`d67c89d`](https://github.com/graphcommerce-org/graphcommerce/commit/d67c89d464a60f0e2618dab670b63a39f6291341) - Deprecate the allowUrl option for useCartQuery, it was already enabled by default and should never be set to false.
|
|
102
|
-
([@paales](https://github.com/paales))
|
|
307
|
+
- [#2205](https://github.com/graphcommerce-org/graphcommerce/pull/2205) [`d67c89d`](https://github.com/graphcommerce-org/graphcommerce/commit/d67c89d464a60f0e2618dab670b63a39f6291341) - Deprecate the allowUrl option for useCartQuery, it was already enabled by default and should never be set to false. ([@paales](https://github.com/paales))
|
|
103
308
|
|
|
104
|
-
- [#2205](https://github.com/graphcommerce-org/graphcommerce/pull/2205) [`3fbf3da`](https://github.com/graphcommerce-org/graphcommerce/commit/3fbf3da8a67f2fbaa7fa974a37cbbf34613844e4) - Solve an issue where the user would be presented with the Session expired dialog when the user would be logging in during the checkout process.
|
|
105
|
-
([@paales](https://github.com/paales))
|
|
309
|
+
- [#2205](https://github.com/graphcommerce-org/graphcommerce/pull/2205) [`3fbf3da`](https://github.com/graphcommerce-org/graphcommerce/commit/3fbf3da8a67f2fbaa7fa974a37cbbf34613844e4) - Solve an issue where the user would be presented with the Session expired dialog when the user would be logging in during the checkout process. ([@paales](https://github.com/paales))
|
|
106
310
|
|
|
107
311
|
## 8.0.3-canary.1
|
|
108
312
|
|
|
109
313
|
### Patch Changes
|
|
110
314
|
|
|
111
|
-
- [#2207](https://github.com/graphcommerce-org/graphcommerce/pull/2207) [`9876b13`](https://github.com/graphcommerce-org/graphcommerce/commit/9876b139b2c12c860a16af97eddea761d1059110) - Remove redundant query on the success page for logged in customers
|
|
112
|
-
([@paales](https://github.com/paales))
|
|
315
|
+
- [#2207](https://github.com/graphcommerce-org/graphcommerce/pull/2207) [`9876b13`](https://github.com/graphcommerce-org/graphcommerce/commit/9876b139b2c12c860a16af97eddea761d1059110) - Remove redundant query on the success page for logged in customers ([@paales](https://github.com/paales))
|
|
113
316
|
|
|
114
317
|
## 8.0.3-canary.0
|
|
115
318
|
|
|
@@ -139,38 +342,29 @@
|
|
|
139
342
|
|
|
140
343
|
### Minor Changes
|
|
141
344
|
|
|
142
|
-
- [#2075](https://github.com/graphcommerce-org/graphcommerce/pull/2075) [`34dee45`](https://github.com/graphcommerce-org/graphcommerce/commit/34dee456ef686174b62e604911a0ba84cbd3d002) - Added the customers order number to succes page.
|
|
143
|
-
([@Jessevdpoel](https://github.com/Jessevdpoel))
|
|
345
|
+
- [#2075](https://github.com/graphcommerce-org/graphcommerce/pull/2075) [`34dee45`](https://github.com/graphcommerce-org/graphcommerce/commit/34dee456ef686174b62e604911a0ba84cbd3d002) - Added the customers order number to succes page. ([@Jessevdpoel](https://github.com/Jessevdpoel))
|
|
144
346
|
|
|
145
|
-
- [#2018](https://github.com/graphcommerce-org/graphcommerce/pull/2018) [`750aa6a`](https://github.com/graphcommerce-org/graphcommerce/commit/750aa6a72710869d54244467253212e551d335e0) - Changed the layout of the succes page. We are using ActionCards right now to match the design of the cart.
|
|
146
|
-
([@Jessevdpoel](https://github.com/Jessevdpoel))
|
|
347
|
+
- [#2018](https://github.com/graphcommerce-org/graphcommerce/pull/2018) [`750aa6a`](https://github.com/graphcommerce-org/graphcommerce/commit/750aa6a72710869d54244467253212e551d335e0) - Changed the layout of the succes page. We are using ActionCards right now to match the design of the cart. ([@Jessevdpoel](https://github.com/Jessevdpoel))
|
|
147
348
|
|
|
148
349
|
### Patch Changes
|
|
149
350
|
|
|
150
|
-
- [#2184](https://github.com/graphcommerce-org/graphcommerce/pull/2184) [`28b7e6e`](https://github.com/graphcommerce-org/graphcommerce/commit/28b7e6ef3e3f698751c6e82431fd14fb35463dd6) - When a customer would return from a payment gateway and it would erroneously query the cart GraphCommerce would immediately create a new empty cart while it shouldn't.
|
|
151
|
-
([@paales](https://github.com/paales))
|
|
351
|
+
- [#2184](https://github.com/graphcommerce-org/graphcommerce/pull/2184) [`28b7e6e`](https://github.com/graphcommerce-org/graphcommerce/commit/28b7e6ef3e3f698751c6e82431fd14fb35463dd6) - When a customer would return from a payment gateway and it would erroneously query the cart GraphCommerce would immediately create a new empty cart while it shouldn't. ([@paales](https://github.com/paales))
|
|
152
352
|
|
|
153
|
-
- [#1999](https://github.com/graphcommerce-org/graphcommerce/pull/1999) [`6d7ed0a`](https://github.com/graphcommerce-org/graphcommerce/commit/6d7ed0a2a3d9b3c6193f86bce6889ff24adf3e83) - After signing in the `<CartFab/>` would not always properly reflect if there are items in the customers cart.
|
|
154
|
-
([@paales](https://github.com/paales))
|
|
353
|
+
- [#1999](https://github.com/graphcommerce-org/graphcommerce/pull/1999) [`6d7ed0a`](https://github.com/graphcommerce-org/graphcommerce/commit/6d7ed0a2a3d9b3c6193f86bce6889ff24adf3e83) - After signing in the `<CartFab/>` would not always properly reflect if there are items in the customers cart. ([@paales](https://github.com/paales))
|
|
155
354
|
|
|
156
|
-
- [#2089](https://github.com/graphcommerce-org/graphcommerce/pull/2089) [`4b6bbf0`](https://github.com/graphcommerce-org/graphcommerce/commit/4b6bbf06572c71e266cc2407e4533833712898e2) - The `<CartFab/>` wouldn't reflect that there are items in the cart when a customer refreshes the page after adding a product to the cart, without viewing the cart.
|
|
157
|
-
([@carlocarels90](https://github.com/carlocarels90))
|
|
355
|
+
- [#2089](https://github.com/graphcommerce-org/graphcommerce/pull/2089) [`4b6bbf0`](https://github.com/graphcommerce-org/graphcommerce/commit/4b6bbf06572c71e266cc2407e4533833712898e2) - The `<CartFab/>` wouldn't reflect that there are items in the cart when a customer refreshes the page after adding a product to the cart, without viewing the cart. ([@carlocarels90](https://github.com/carlocarels90))
|
|
158
356
|
|
|
159
|
-
- [#2170](https://github.com/graphcommerce-org/graphcommerce/pull/2170) [`f3e906f`](https://github.com/graphcommerce-org/graphcommerce/commit/f3e906f7e374ce22d36af29c0f3c8153e18300e6) - Solved an issue where the inactive cart would set as the current cart when the customer had signed in, checked out their cart, session expired and tried to log in again.
|
|
160
|
-
([@FrankHarland](https://github.com/FrankHarland))
|
|
357
|
+
- [#2170](https://github.com/graphcommerce-org/graphcommerce/pull/2170) [`f3e906f`](https://github.com/graphcommerce-org/graphcommerce/commit/f3e906f7e374ce22d36af29c0f3c8153e18300e6) - Solved an issue where the inactive cart would set as the current cart when the customer had signed in, checked out their cart, session expired and tried to log in again. ([@FrankHarland](https://github.com/FrankHarland))
|
|
161
358
|
|
|
162
|
-
- [#2107](https://github.com/graphcommerce-org/graphcommerce/pull/2107) [`2f51504`](https://github.com/graphcommerce-org/graphcommerce/commit/2f5150456eabcce410ad8a0f1cbebeedabb6564c) - Remember email adress when going from checkout to signin/up form
|
|
163
|
-
([@FrankHarland](https://github.com/FrankHarland))
|
|
359
|
+
- [#2107](https://github.com/graphcommerce-org/graphcommerce/pull/2107) [`2f51504`](https://github.com/graphcommerce-org/graphcommerce/commit/2f5150456eabcce410ad8a0f1cbebeedabb6564c) - Remember email adress when going from checkout to signin/up form ([@FrankHarland](https://github.com/FrankHarland))
|
|
164
360
|
|
|
165
|
-
- [#1999](https://github.com/graphcommerce-org/graphcommerce/pull/1999) [`ab834fb`](https://github.com/graphcommerce-org/graphcommerce/commit/ab834fbfe057fb507c371a6d22af282cc1b195d4) - Added a new 'Session expired' dialog that is shown when a GraphQL query or mutation returns a `graphql-authorization` error. This error is returned when the user's session has expired. The dialog allows the user to sign in again and then the query or mutation is re-executed.
|
|
166
|
-
([@paales](https://github.com/paales))
|
|
361
|
+
- [#1999](https://github.com/graphcommerce-org/graphcommerce/pull/1999) [`ab834fb`](https://github.com/graphcommerce-org/graphcommerce/commit/ab834fbfe057fb507c371a6d22af282cc1b195d4) - Added a new 'Session expired' dialog that is shown when a GraphQL query or mutation returns a `graphql-authorization` error. This error is returned when the user's session has expired. The dialog allows the user to sign in again and then the query or mutation is re-executed. ([@paales](https://github.com/paales))
|
|
167
362
|
|
|
168
363
|
## 8.0.0-canary.100
|
|
169
364
|
|
|
170
365
|
### Patch Changes
|
|
171
366
|
|
|
172
|
-
- [#2184](https://github.com/graphcommerce-org/graphcommerce/pull/2184) [`28b7e6e`](https://github.com/graphcommerce-org/graphcommerce/commit/28b7e6ef3e3f698751c6e82431fd14fb35463dd6) - When a customer would return from a payment gateway and it would erroneously query the cart GraphCommerce would immediately create a new empty cart while it shouldn't.
|
|
173
|
-
([@paales](https://github.com/paales))
|
|
367
|
+
- [#2184](https://github.com/graphcommerce-org/graphcommerce/pull/2184) [`28b7e6e`](https://github.com/graphcommerce-org/graphcommerce/commit/28b7e6ef3e3f698751c6e82431fd14fb35463dd6) - When a customer would return from a payment gateway and it would erroneously query the cart GraphCommerce would immediately create a new empty cart while it shouldn't. ([@paales](https://github.com/paales))
|
|
174
368
|
|
|
175
369
|
## 8.0.0-canary.99
|
|
176
370
|
|
|
@@ -194,8 +388,7 @@
|
|
|
194
388
|
|
|
195
389
|
### Patch Changes
|
|
196
390
|
|
|
197
|
-
- [#2170](https://github.com/graphcommerce-org/graphcommerce/pull/2170) [`f3e906f`](https://github.com/graphcommerce-org/graphcommerce/commit/f3e906f7e374ce22d36af29c0f3c8153e18300e6) - fix(GCOM-1317): fix bug where inactive cached cart could be set as currentCartId
|
|
198
|
-
([@FrankHarland](https://github.com/FrankHarland))
|
|
391
|
+
- [#2170](https://github.com/graphcommerce-org/graphcommerce/pull/2170) [`f3e906f`](https://github.com/graphcommerce-org/graphcommerce/commit/f3e906f7e374ce22d36af29c0f3c8153e18300e6) - fix(GCOM-1317): fix bug where inactive cached cart could be set as currentCartId ([@FrankHarland](https://github.com/FrankHarland))
|
|
199
392
|
|
|
200
393
|
## 8.0.0-canary.89
|
|
201
394
|
|
|
@@ -243,11 +436,9 @@
|
|
|
243
436
|
|
|
244
437
|
### Patch Changes
|
|
245
438
|
|
|
246
|
-
- [#1999](https://github.com/graphcommerce-org/graphcommerce/pull/1999) [`6d7ed0a`](https://github.com/graphcommerce-org/graphcommerce/commit/6d7ed0a2a3d9b3c6193f86bce6889ff24adf3e83) - When signing in the cartFab would not always properly reflect the current items in the cart
|
|
247
|
-
([@paales](https://github.com/paales))
|
|
439
|
+
- [#1999](https://github.com/graphcommerce-org/graphcommerce/pull/1999) [`6d7ed0a`](https://github.com/graphcommerce-org/graphcommerce/commit/6d7ed0a2a3d9b3c6193f86bce6889ff24adf3e83) - When signing in the cartFab would not always properly reflect the current items in the cart ([@paales](https://github.com/paales))
|
|
248
440
|
|
|
249
|
-
- [#1999](https://github.com/graphcommerce-org/graphcommerce/pull/1999) [`ab834fb`](https://github.com/graphcommerce-org/graphcommerce/commit/ab834fbfe057fb507c371a6d22af282cc1b195d4) - Added user session reevaluation after unathenticated call. Queries will be paused untill user has signed in again
|
|
250
|
-
([@paales](https://github.com/paales))
|
|
441
|
+
- [#1999](https://github.com/graphcommerce-org/graphcommerce/pull/1999) [`ab834fb`](https://github.com/graphcommerce-org/graphcommerce/commit/ab834fbfe057fb507c371a6d22af282cc1b195d4) - Added user session reevaluation after unathenticated call. Queries will be paused untill user has signed in again ([@paales](https://github.com/paales))
|
|
251
442
|
|
|
252
443
|
## 7.1.0-canary.67
|
|
253
444
|
|
|
@@ -1691,31 +1882,31 @@
|
|
|
1691
1882
|
All occurences of `<Trans>` and `t` need to be replaced:
|
|
1692
1883
|
|
|
1693
1884
|
```tsx
|
|
1694
|
-
import { Trans, t } from
|
|
1885
|
+
import { Trans, t } from '@lingui/macro'
|
|
1695
1886
|
|
|
1696
1887
|
function MyComponent() {
|
|
1697
|
-
const foo =
|
|
1888
|
+
const foo = 'bar'
|
|
1698
1889
|
return (
|
|
1699
1890
|
<div aria-label={t`Account ${foo}`}>
|
|
1700
1891
|
<Trans>My Translation {foo}</Trans>
|
|
1701
1892
|
</div>
|
|
1702
|
-
)
|
|
1893
|
+
)
|
|
1703
1894
|
}
|
|
1704
1895
|
```
|
|
1705
1896
|
|
|
1706
1897
|
Needs to be replaced with:
|
|
1707
1898
|
|
|
1708
1899
|
```tsx
|
|
1709
|
-
import { Trans } from
|
|
1710
|
-
import { i18n } from
|
|
1900
|
+
import { Trans } from '@lingui/react'
|
|
1901
|
+
import { i18n } from '@lingui/core'
|
|
1711
1902
|
|
|
1712
1903
|
function MyComponent() {
|
|
1713
|
-
const foo =
|
|
1904
|
+
const foo = 'bar'
|
|
1714
1905
|
return (
|
|
1715
1906
|
<div aria-label={i18n._(/* i18n */ `Account {foo}`, { foo })}>
|
|
1716
|
-
<Trans key=
|
|
1907
|
+
<Trans key='My Translation {foo}' values={{ foo }}></Trans>
|
|
1717
1908
|
</div>
|
|
1718
|
-
)
|
|
1909
|
+
)
|
|
1719
1910
|
}
|
|
1720
1911
|
```
|
|
1721
1912
|
|
package/Config.graphqls
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
enum CartPermissions {
|
|
2
|
+
ENABLED
|
|
3
|
+
CUSTOMER_ONLY
|
|
4
|
+
DISABLED
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
extend input GraphCommercePermissions {
|
|
8
|
+
"""
|
|
9
|
+
Changes the availability of the add to cart buttons and the cart page to either customer only or completely disables it.
|
|
10
|
+
"""
|
|
11
|
+
cart: CartPermissions
|
|
12
|
+
"""
|
|
13
|
+
Changes the availability of the checkout to either customer only or completely disables it.
|
|
14
|
+
"""
|
|
15
|
+
checkout: CartPermissions
|
|
16
|
+
}
|
|
17
|
+
|
|
1
18
|
extend input GraphCommerceStorefrontConfig {
|
|
2
19
|
"""
|
|
3
20
|
Due to a limitation of the GraphQL API it is not possible to determine if a cart should be displayed including or excluding tax.
|
|
@@ -1,55 +1,10 @@
|
|
|
1
|
-
import { useQuery } from '@graphcommerce/graphql'
|
|
2
1
|
import {
|
|
3
2
|
ApolloCustomerErrorAlert,
|
|
4
3
|
ApolloCustomerErrorAlertProps,
|
|
5
|
-
CustomerDocument,
|
|
6
4
|
} from '@graphcommerce/magento-customer'
|
|
7
|
-
import { graphqlErrorByCategory } from '@graphcommerce/magento-graphql'
|
|
8
|
-
import { i18n } from '@lingui/core'
|
|
9
|
-
import { Trans } from '@lingui/react'
|
|
10
|
-
import { Button } from '@mui/material'
|
|
11
|
-
import { useClearCurrentCartId } from '../../hooks'
|
|
12
5
|
|
|
13
6
|
export type ApolloCartErrorAlertProps = ApolloCustomerErrorAlertProps
|
|
14
7
|
|
|
15
8
|
export function ApolloCartErrorAlert(props: ApolloCartErrorAlertProps) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const email = useQuery(CustomerDocument, { fetchPolicy: 'cache-only' }).data?.customer?.email
|
|
19
|
-
|
|
20
|
-
const [newError, unauthorized] = graphqlErrorByCategory({
|
|
21
|
-
category: 'graphql-authorization',
|
|
22
|
-
error,
|
|
23
|
-
mask: email
|
|
24
|
-
? i18n._(
|
|
25
|
-
/* i18n */ 'This cart is assigned to {email}. Please sign in to continue shopping.',
|
|
26
|
-
{ email },
|
|
27
|
-
)
|
|
28
|
-
: undefined,
|
|
29
|
-
extract: false,
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
const clear = useClearCurrentCartId()
|
|
33
|
-
|
|
34
|
-
return (
|
|
35
|
-
<ApolloCustomerErrorAlert
|
|
36
|
-
{...props}
|
|
37
|
-
error={newError}
|
|
38
|
-
graphqlErrorAlertProps={{
|
|
39
|
-
action: unauthorized ? (
|
|
40
|
-
<>
|
|
41
|
-
{graphqlErrorAlertProps?.action}
|
|
42
|
-
<Button onClick={clear} color='error' size='small'>
|
|
43
|
-
<Trans id='Sign out' />
|
|
44
|
-
</Button>
|
|
45
|
-
<Button href='/account/signin' color='error' size='small'>
|
|
46
|
-
<Trans id='Sign in' />
|
|
47
|
-
</Button>
|
|
48
|
-
</>
|
|
49
|
-
) : (
|
|
50
|
-
graphqlErrorAlertProps?.action
|
|
51
|
-
),
|
|
52
|
-
}}
|
|
53
|
-
/>
|
|
54
|
-
)
|
|
9
|
+
return <ApolloCustomerErrorAlert {...props} />
|
|
55
10
|
}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
UseFormComposeOptions,
|
|
9
9
|
} from '@graphcommerce/react-hook-form'
|
|
10
10
|
import { i18n } from '@lingui/core'
|
|
11
|
-
import { Box, Link, SxProps, Theme } from '@mui/material'
|
|
11
|
+
import { Box, Link, SxProps, Theme, Typography } from '@mui/material'
|
|
12
12
|
import React from 'react'
|
|
13
13
|
import { CartAgreementsDocument } from './CartAgreements.gql'
|
|
14
14
|
|
|
@@ -18,26 +18,34 @@ const componentName = 'CartAgreementsForm' as const
|
|
|
18
18
|
const parts = ['form', 'formInner', 'formControlRoot', 'manualCheck'] as const
|
|
19
19
|
const { classes } = extendableComponent(componentName, parts)
|
|
20
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Checks if a string contains an anchor tag (<a> ... </a>).
|
|
23
|
+
* @param {string} str - The string to check.
|
|
24
|
+
* @returns {boolean} - True if the string contains an anchor tag, otherwise false.
|
|
25
|
+
*/
|
|
26
|
+
const containsAnchorTag = (str: string): boolean => {
|
|
27
|
+
const anchorTagRegex = /<a\s+[^>]*>(.*?)<\/a>/i
|
|
28
|
+
return anchorTagRegex.test(str)
|
|
29
|
+
}
|
|
30
|
+
|
|
21
31
|
export function CartAgreementsForm(props: CartAgreementsFormProps) {
|
|
22
32
|
const { step, sx = [] } = props
|
|
23
33
|
const { data } = useQuery(CartAgreementsDocument)
|
|
24
34
|
|
|
25
35
|
// sort conditions so checkboxes will be placed first
|
|
26
36
|
const sortedAgreements = data?.checkoutAgreements
|
|
27
|
-
? [...data.checkoutAgreements]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
37
|
+
? [...data.checkoutAgreements]?.sort((a, b) => {
|
|
38
|
+
if (a?.mode === 'MANUAL') return -1
|
|
39
|
+
if (b?.mode === 'MANUAL') return 1
|
|
40
|
+
return 0
|
|
41
|
+
})
|
|
31
42
|
: []
|
|
32
43
|
|
|
33
44
|
const form = useForm()
|
|
34
45
|
|
|
35
46
|
const { handleSubmit, control } = form
|
|
36
47
|
|
|
37
|
-
const submit = handleSubmit((
|
|
38
|
-
// eslint-disable-next-line no-console
|
|
39
|
-
console.log(values)
|
|
40
|
-
})
|
|
48
|
+
const submit = handleSubmit(() => {})
|
|
41
49
|
|
|
42
50
|
useFormCompose({ form, step, submit, key: 'PaymentAgreementsForm' })
|
|
43
51
|
|
|
@@ -48,7 +56,6 @@ export function CartAgreementsForm(props: CartAgreementsFormProps) {
|
|
|
48
56
|
className={classes.form}
|
|
49
57
|
sx={[(theme) => ({ pt: theme.spacings.md }), ...(Array.isArray(sx) ? sx : [sx])]}
|
|
50
58
|
>
|
|
51
|
-
<FormPersist form={form} name='PaymentAgreementsForm' />
|
|
52
59
|
<form noValidate onSubmit={submit} name='cartAgreements'>
|
|
53
60
|
<Box className={classes.formInner} sx={{ typography: 'body1', display: 'inline-block' }}>
|
|
54
61
|
{data?.checkoutAgreements &&
|
|
@@ -56,6 +63,45 @@ export function CartAgreementsForm(props: CartAgreementsFormProps) {
|
|
|
56
63
|
if (!agreement) return null
|
|
57
64
|
const href = `/checkout/terms/${agreement.name?.toLowerCase().replace(/\s+/g, '-')}`
|
|
58
65
|
const agreementTextParts = agreement.checkbox_text.split(agreement.name)
|
|
66
|
+
// check if the agreement text contains an anchor tag
|
|
67
|
+
const containsLink = containsAnchorTag(agreement.checkbox_text)
|
|
68
|
+
let labelContent: React.ReactNode
|
|
69
|
+
|
|
70
|
+
if (containsLink) {
|
|
71
|
+
labelContent = (
|
|
72
|
+
<Typography
|
|
73
|
+
dangerouslySetInnerHTML={{ __html: agreement.checkbox_text }}
|
|
74
|
+
sx={{
|
|
75
|
+
'& a': {
|
|
76
|
+
color: 'secondary.main',
|
|
77
|
+
textDecoration: 'none',
|
|
78
|
+
'&:hover, &:focus, &:active': {
|
|
79
|
+
textDecoration: 'underline',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
}}
|
|
83
|
+
/>
|
|
84
|
+
)
|
|
85
|
+
} else if (
|
|
86
|
+
agreement.mode === 'MANUAL' &&
|
|
87
|
+
agreement.checkbox_text.includes(agreement.name)
|
|
88
|
+
) {
|
|
89
|
+
labelContent = (
|
|
90
|
+
<>
|
|
91
|
+
{agreementTextParts[0]}
|
|
92
|
+
<Link href={href} color='secondary' underline='hover'>
|
|
93
|
+
{agreement.name}
|
|
94
|
+
</Link>
|
|
95
|
+
{agreementTextParts[1]}
|
|
96
|
+
</>
|
|
97
|
+
)
|
|
98
|
+
} else {
|
|
99
|
+
labelContent = (
|
|
100
|
+
<Link href={href} color='secondary' underline='hover'>
|
|
101
|
+
{agreement.checkbox_text}
|
|
102
|
+
</Link>
|
|
103
|
+
)
|
|
104
|
+
}
|
|
59
105
|
|
|
60
106
|
return (
|
|
61
107
|
<React.Fragment key={agreement.agreement_id}>
|
|
@@ -63,36 +109,16 @@ export function CartAgreementsForm(props: CartAgreementsFormProps) {
|
|
|
63
109
|
<CheckboxElement
|
|
64
110
|
control={control}
|
|
65
111
|
color='secondary'
|
|
66
|
-
formControl={{
|
|
67
|
-
sx: {
|
|
68
|
-
display: 'block',
|
|
69
|
-
},
|
|
70
|
-
}}
|
|
112
|
+
formControl={{ sx: { display: 'block' } }}
|
|
71
113
|
name={`agreement${agreement.agreement_id}`}
|
|
72
114
|
rules={{
|
|
73
115
|
required: i18n._(/* i18n */ 'You have to agree in order to proceed'),
|
|
74
116
|
}}
|
|
75
|
-
label={
|
|
76
|
-
agreement.checkbox_text.includes(agreement.name) ? (
|
|
77
|
-
<>
|
|
78
|
-
{agreementTextParts[0]}
|
|
79
|
-
<Link href={href} color='secondary' underline='hover'>
|
|
80
|
-
{agreement.name}
|
|
81
|
-
</Link>
|
|
82
|
-
{agreementTextParts[1]}
|
|
83
|
-
</>
|
|
84
|
-
) : (
|
|
85
|
-
<Link href={href} color='secondary' underline='hover'>
|
|
86
|
-
{agreement.checkbox_text}
|
|
87
|
-
</Link>
|
|
88
|
-
)
|
|
89
|
-
}
|
|
117
|
+
label={labelContent}
|
|
90
118
|
/>
|
|
91
119
|
) : (
|
|
92
120
|
<Box className={classes.manualCheck} sx={{ padding: `9px 0` }}>
|
|
93
|
-
|
|
94
|
-
{agreement.checkbox_text}
|
|
95
|
-
</Link>
|
|
121
|
+
{labelContent}
|
|
96
122
|
</Box>
|
|
97
123
|
)}
|
|
98
124
|
</React.Fragment>
|
|
@@ -100,6 +126,7 @@ export function CartAgreementsForm(props: CartAgreementsFormProps) {
|
|
|
100
126
|
})}
|
|
101
127
|
</Box>
|
|
102
128
|
</form>
|
|
129
|
+
<FormPersist form={form} name='PaymentAgreementsForm' />
|
|
103
130
|
</FormDiv>
|
|
104
131
|
)
|
|
105
132
|
}
|