@graphcommerce/magento-store 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/CHANGELOG.md +217 -20
- package/Money.tsx +12 -33
- package/StoreConfigFragment.graphql +6 -1
- package/index.ts +0 -1
- package/package.json +8 -8
- package/plugins/magentoStoreGraphqlConfig.ts +29 -3
- package/utils/redirectOrNotFound.ts +26 -2
- package/link/createStoreLink.ts +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,207 @@
|
|
|
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
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- [#2367](https://github.com/graphcommerce-org/graphcommerce/pull/2367) [`71d412d`](https://github.com/graphcommerce-org/graphcommerce/commit/71d412d202bc94a0e676745547de5d809a7a850b) - When a user access a category page which is beyond the available total_pages, the user will be redirected to the last available page. ([@paales](https://github.com/paales))
|
|
26
|
+
|
|
27
|
+
## 9.0.0-canary.90
|
|
28
|
+
|
|
29
|
+
## 9.0.0-canary.89
|
|
30
|
+
|
|
31
|
+
## 9.0.0-canary.88
|
|
32
|
+
|
|
33
|
+
## 9.0.0-canary.87
|
|
34
|
+
|
|
35
|
+
## 9.0.0-canary.86
|
|
36
|
+
|
|
37
|
+
## 9.0.0-canary.85
|
|
38
|
+
|
|
39
|
+
## 9.0.0-canary.84
|
|
40
|
+
|
|
41
|
+
## 9.0.0-canary.83
|
|
42
|
+
|
|
43
|
+
### Patch Changes
|
|
44
|
+
|
|
45
|
+
- [#2374](https://github.com/graphcommerce-org/graphcommerce/pull/2374) [`e61e1f4`](https://github.com/graphcommerce-org/graphcommerce/commit/e61e1f4fb1086f7a6341b42502135abf1839e43d) - Default to permanent redirects unless specified ([@hnsr](https://github.com/hnsr))
|
|
46
|
+
|
|
47
|
+
## 9.0.0-canary.82
|
|
48
|
+
|
|
49
|
+
## 9.0.0-canary.81
|
|
50
|
+
|
|
51
|
+
### Minor Changes
|
|
52
|
+
|
|
53
|
+
- [#2373](https://github.com/graphcommerce-org/graphcommerce/pull/2373) [`53ffc91`](https://github.com/graphcommerce-org/graphcommerce/commit/53ffc91f9bfbe1183c002c62b1fe0c3f415d7b94) - Handle the case where one switches from using the default .html URL suffix, to not using one ([@hnsr](https://github.com/hnsr))
|
|
54
|
+
|
|
55
|
+
## 9.0.0-canary.80
|
|
56
|
+
|
|
57
|
+
## 9.0.0-canary.79
|
|
58
|
+
|
|
59
|
+
## 9.0.0-canary.78
|
|
60
|
+
|
|
61
|
+
## 9.0.0-canary.77
|
|
62
|
+
|
|
63
|
+
## 9.0.0-canary.76
|
|
64
|
+
|
|
65
|
+
## 9.0.0-canary.75
|
|
66
|
+
|
|
67
|
+
## 9.0.0-canary.74
|
|
68
|
+
|
|
69
|
+
## 9.0.0-canary.73
|
|
70
|
+
|
|
71
|
+
## 9.0.0-canary.72
|
|
72
|
+
|
|
73
|
+
## 9.0.0-canary.71
|
|
74
|
+
|
|
75
|
+
## 9.0.0-canary.70
|
|
76
|
+
|
|
77
|
+
## 9.0.0-canary.69
|
|
78
|
+
|
|
79
|
+
## 9.0.0-canary.68
|
|
80
|
+
|
|
81
|
+
## 9.0.0-canary.67
|
|
82
|
+
|
|
83
|
+
## 9.0.0-canary.66
|
|
84
|
+
|
|
85
|
+
## 9.0.0-canary.65
|
|
86
|
+
|
|
87
|
+
## 9.0.0-canary.64
|
|
88
|
+
|
|
89
|
+
## 9.0.0-canary.63
|
|
90
|
+
|
|
91
|
+
## 9.0.0-canary.62
|
|
92
|
+
|
|
93
|
+
## 9.0.0-canary.61
|
|
94
|
+
|
|
95
|
+
### Minor Changes
|
|
96
|
+
|
|
97
|
+
- [#2327](https://github.com/graphcommerce-org/graphcommerce/pull/2327) [`be719fc`](https://github.com/graphcommerce-org/graphcommerce/commit/be719fc465c8804ddcb720a93813262e3a292b69) - Implement CancelOrder mutation, add cancel order overlay to account section ([@Giovanni-Schroevers](https://github.com/Giovanni-Schroevers))
|
|
98
|
+
|
|
99
|
+
## 9.0.0-canary.60
|
|
100
|
+
|
|
101
|
+
## 9.0.0-canary.59
|
|
102
|
+
|
|
103
|
+
## 9.0.0-canary.58
|
|
104
|
+
|
|
105
|
+
## 9.0.0-canary.57
|
|
106
|
+
|
|
107
|
+
## 9.0.0-canary.56
|
|
108
|
+
|
|
109
|
+
## 9.0.0-canary.55
|
|
110
|
+
|
|
111
|
+
## 9.0.0-canary.54
|
|
112
|
+
|
|
113
|
+
## 8.1.0-canary.53
|
|
114
|
+
|
|
115
|
+
## 8.1.0-canary.52
|
|
116
|
+
|
|
117
|
+
## 8.1.0-canary.51
|
|
118
|
+
|
|
119
|
+
## 8.1.0-canary.50
|
|
120
|
+
|
|
121
|
+
## 8.1.0-canary.49
|
|
122
|
+
|
|
123
|
+
## 8.1.0-canary.48
|
|
124
|
+
|
|
125
|
+
## 8.1.0-canary.47
|
|
126
|
+
|
|
127
|
+
## 8.1.0-canary.46
|
|
128
|
+
|
|
129
|
+
## 8.1.0-canary.45
|
|
130
|
+
|
|
131
|
+
## 8.1.0-canary.44
|
|
132
|
+
|
|
133
|
+
## 8.1.0-canary.43
|
|
134
|
+
|
|
135
|
+
## 8.1.0-canary.42
|
|
136
|
+
|
|
137
|
+
## 8.1.0-canary.41
|
|
138
|
+
|
|
139
|
+
## 8.1.0-canary.40
|
|
140
|
+
|
|
141
|
+
## 8.1.0-canary.39
|
|
142
|
+
|
|
143
|
+
## 8.1.0-canary.38
|
|
144
|
+
|
|
145
|
+
## 8.1.0-canary.37
|
|
146
|
+
|
|
147
|
+
## 8.1.0-canary.36
|
|
148
|
+
|
|
149
|
+
## 8.1.0-canary.35
|
|
150
|
+
|
|
151
|
+
### Minor Changes
|
|
152
|
+
|
|
153
|
+
- [#2301](https://github.com/graphcommerce-org/graphcommerce/pull/2301) [`47bb47b`](https://github.com/graphcommerce-org/graphcommerce/commit/47bb47bac4b3689a6859afbc587274d813e0b072) - Implement confirm email functionality ([@Giovanni-Schroevers](https://github.com/Giovanni-Schroevers))
|
|
154
|
+
|
|
155
|
+
## 8.1.0-canary.34
|
|
156
|
+
|
|
157
|
+
## 8.1.0-canary.33
|
|
158
|
+
|
|
159
|
+
## 8.1.0-canary.32
|
|
160
|
+
|
|
161
|
+
## 8.1.0-canary.31
|
|
162
|
+
|
|
163
|
+
## 8.1.0-canary.30
|
|
164
|
+
|
|
165
|
+
## 8.1.0-canary.29
|
|
166
|
+
|
|
167
|
+
## 8.1.0-canary.28
|
|
168
|
+
|
|
169
|
+
## 8.1.0-canary.27
|
|
170
|
+
|
|
171
|
+
## 8.1.0-canary.26
|
|
172
|
+
|
|
173
|
+
## 8.1.0-canary.25
|
|
174
|
+
|
|
175
|
+
## 8.1.0-canary.24
|
|
176
|
+
|
|
177
|
+
## 8.1.0-canary.23
|
|
178
|
+
|
|
179
|
+
## 8.1.0-canary.22
|
|
180
|
+
|
|
181
|
+
## 8.1.0-canary.21
|
|
182
|
+
|
|
183
|
+
## 8.1.0-canary.20
|
|
184
|
+
|
|
185
|
+
## 8.1.0-canary.19
|
|
186
|
+
|
|
187
|
+
## 8.1.0-canary.18
|
|
188
|
+
|
|
189
|
+
## 8.1.0-canary.17
|
|
190
|
+
|
|
191
|
+
## 8.1.0-canary.16
|
|
192
|
+
|
|
193
|
+
## 8.1.0-canary.15
|
|
194
|
+
|
|
195
|
+
## 8.1.0-canary.14
|
|
196
|
+
|
|
197
|
+
## 8.1.0-canary.13
|
|
198
|
+
|
|
199
|
+
## 8.1.0-canary.12
|
|
200
|
+
|
|
201
|
+
## 8.1.0-canary.11
|
|
202
|
+
|
|
203
|
+
## 8.1.0-canary.10
|
|
204
|
+
|
|
3
205
|
## 8.1.0-canary.9
|
|
4
206
|
|
|
5
207
|
## 8.1.0-canary.8
|
|
@@ -80,8 +282,7 @@
|
|
|
80
282
|
|
|
81
283
|
### Patch Changes
|
|
82
284
|
|
|
83
|
-
- [#2187](https://github.com/graphcommerce-org/graphcommerce/pull/2187) [`61f90af`](https://github.com/graphcommerce-org/graphcommerce/commit/61f90afc8bc229b2cd4793f724509783af138deb) - redirectOrNotFound would log the incorrect request URL
|
|
84
|
-
([@paales](https://github.com/paales))
|
|
285
|
+
- [#2187](https://github.com/graphcommerce-org/graphcommerce/pull/2187) [`61f90af`](https://github.com/graphcommerce-org/graphcommerce/commit/61f90afc8bc229b2cd4793f724509783af138deb) - redirectOrNotFound would log the incorrect request URL ([@paales](https://github.com/paales))
|
|
85
286
|
|
|
86
287
|
## 8.0.1-canary.4
|
|
87
288
|
|
|
@@ -95,18 +296,15 @@
|
|
|
95
296
|
|
|
96
297
|
### Patch Changes
|
|
97
298
|
|
|
98
|
-
- [#2187](https://github.com/graphcommerce-org/graphcommerce/pull/2187) [`61f90af`](https://github.com/graphcommerce-org/graphcommerce/commit/61f90afc8bc229b2cd4793f724509783af138deb) - redirectOrNotFound would log the incorrect request URL
|
|
99
|
-
([@paales](https://github.com/paales))
|
|
299
|
+
- [#2187](https://github.com/graphcommerce-org/graphcommerce/pull/2187) [`61f90af`](https://github.com/graphcommerce-org/graphcommerce/commit/61f90afc8bc229b2cd4793f724509783af138deb) - redirectOrNotFound would log the incorrect request URL ([@paales](https://github.com/paales))
|
|
100
300
|
|
|
101
301
|
## 8.0.0
|
|
102
302
|
|
|
103
303
|
### Patch Changes
|
|
104
304
|
|
|
105
|
-
- [#2067](https://github.com/graphcommerce-org/graphcommerce/pull/2067) [`3406794`](https://github.com/graphcommerce-org/graphcommerce/commit/340679434e0ff1033c8158ef03a091e06e20e6a9) - Prevent HandleRedirect errors by filtering out empty URL values from the candidates array.
|
|
106
|
-
([@carlocarels90](https://github.com/carlocarels90))
|
|
305
|
+
- [#2067](https://github.com/graphcommerce-org/graphcommerce/pull/2067) [`3406794`](https://github.com/graphcommerce-org/graphcommerce/commit/340679434e0ff1033c8158ef03a091e06e20e6a9) - Prevent HandleRedirect errors by filtering out empty URL values from the candidates array. ([@carlocarels90](https://github.com/carlocarels90))
|
|
107
306
|
|
|
108
|
-
- [#2140](https://github.com/graphcommerce-org/graphcommerce/pull/2140) [`b34d85c`](https://github.com/graphcommerce-org/graphcommerce/commit/b34d85c8c5403c6f49b506b714ee314b8344fd99) - Solve incorrect redirect when locale has own domain
|
|
109
|
-
([@hnsr](https://github.com/hnsr))
|
|
307
|
+
- [#2140](https://github.com/graphcommerce-org/graphcommerce/pull/2140) [`b34d85c`](https://github.com/graphcommerce-org/graphcommerce/commit/b34d85c8c5403c6f49b506b714ee314b8344fd99) - Solve incorrect redirect when locale has own domain ([@hnsr](https://github.com/hnsr))
|
|
110
308
|
|
|
111
309
|
## 8.0.0-canary.100
|
|
112
310
|
|
|
@@ -150,8 +348,7 @@
|
|
|
150
348
|
|
|
151
349
|
### Patch Changes
|
|
152
350
|
|
|
153
|
-
- [#2140](https://github.com/graphcommerce-org/graphcommerce/pull/2140) [`b34d85c`](https://github.com/graphcommerce-org/graphcommerce/commit/b34d85c8c5403c6f49b506b714ee314b8344fd99) - Fix incorrect redirect when locale has own domain
|
|
154
|
-
([@hnsr](https://github.com/hnsr))
|
|
351
|
+
- [#2140](https://github.com/graphcommerce-org/graphcommerce/pull/2140) [`b34d85c`](https://github.com/graphcommerce-org/graphcommerce/commit/b34d85c8c5403c6f49b506b714ee314b8344fd99) - Fix incorrect redirect when locale has own domain ([@hnsr](https://github.com/hnsr))
|
|
155
352
|
|
|
156
353
|
## 8.0.0-canary.80
|
|
157
354
|
|
|
@@ -1296,31 +1493,31 @@
|
|
|
1296
1493
|
All occurences of `<Trans>` and `t` need to be replaced:
|
|
1297
1494
|
|
|
1298
1495
|
```tsx
|
|
1299
|
-
import { Trans, t } from
|
|
1496
|
+
import { Trans, t } from '@lingui/macro'
|
|
1300
1497
|
|
|
1301
1498
|
function MyComponent() {
|
|
1302
|
-
const foo =
|
|
1499
|
+
const foo = 'bar'
|
|
1303
1500
|
return (
|
|
1304
1501
|
<div aria-label={t`Account ${foo}`}>
|
|
1305
1502
|
<Trans>My Translation {foo}</Trans>
|
|
1306
1503
|
</div>
|
|
1307
|
-
)
|
|
1504
|
+
)
|
|
1308
1505
|
}
|
|
1309
1506
|
```
|
|
1310
1507
|
|
|
1311
1508
|
Needs to be replaced with:
|
|
1312
1509
|
|
|
1313
1510
|
```tsx
|
|
1314
|
-
import { Trans } from
|
|
1315
|
-
import { i18n } from
|
|
1511
|
+
import { Trans } from '@lingui/react'
|
|
1512
|
+
import { i18n } from '@lingui/core'
|
|
1316
1513
|
|
|
1317
1514
|
function MyComponent() {
|
|
1318
|
-
const foo =
|
|
1515
|
+
const foo = 'bar'
|
|
1319
1516
|
return (
|
|
1320
1517
|
<div aria-label={i18n._(/* i18n */ `Account {foo}`, { foo })}>
|
|
1321
|
-
<Trans key=
|
|
1518
|
+
<Trans key='My Translation {foo}' values={{ foo }}></Trans>
|
|
1322
1519
|
</div>
|
|
1323
|
-
)
|
|
1520
|
+
)
|
|
1324
1521
|
}
|
|
1325
1522
|
```
|
|
1326
1523
|
|
|
@@ -1457,11 +1654,11 @@
|
|
|
1457
1654
|
defaultProps: {
|
|
1458
1655
|
round: true,
|
|
1459
1656
|
formatOptions: {
|
|
1460
|
-
style:
|
|
1657
|
+
style: 'decimal',
|
|
1461
1658
|
},
|
|
1462
1659
|
},
|
|
1463
1660
|
},
|
|
1464
|
-
})
|
|
1661
|
+
})
|
|
1465
1662
|
```
|
|
1466
1663
|
|
|
1467
1664
|
### Patch Changes
|
package/Money.tsx
CHANGED
|
@@ -1,50 +1,29 @@
|
|
|
1
1
|
import { useQuery } from '@graphcommerce/graphql'
|
|
2
|
-
import {
|
|
3
|
-
import { useThemeProps } from '@mui/material'
|
|
4
|
-
import { useMemo } from 'react'
|
|
2
|
+
import { CurrencyFormat, CurrencyFormatProps } from '@graphcommerce/next-ui'
|
|
5
3
|
import { MoneyFragment } from './Money.gql'
|
|
6
4
|
import { StoreConfigDocument } from './StoreConfig.gql'
|
|
7
5
|
|
|
8
6
|
type OverridableProps = {
|
|
9
|
-
// eslint-disable-next-line react/no-unused-prop-types
|
|
10
7
|
round?: boolean
|
|
11
|
-
|
|
12
|
-
// eslint-disable-next-line react/no-unused-prop-types
|
|
13
|
-
formatOptions?: Intl.NumberFormatOptions
|
|
8
|
+
formatOptions?: Omit<CurrencyFormatProps, 'currency'>
|
|
14
9
|
}
|
|
15
10
|
|
|
16
11
|
export type MoneyProps = MoneyFragment & OverridableProps
|
|
17
12
|
|
|
18
|
-
const name = 'Money'
|
|
19
|
-
|
|
20
|
-
/** Expose the component to be exendable in your theme.components */
|
|
21
|
-
declare module '@mui/material/styles/components' {
|
|
22
|
-
interface Components {
|
|
23
|
-
Money?: Pick<ExtendableComponent<OverridableProps>, 'defaultProps'>
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
13
|
export function Money(props: MoneyProps) {
|
|
28
|
-
const { currency, value, round = false, formatOptions } =
|
|
29
|
-
|
|
14
|
+
const { currency, value, round = false, formatOptions } = props
|
|
30
15
|
const { data: config } = useQuery(StoreConfigDocument)
|
|
31
|
-
|
|
32
16
|
const digits = (value ?? 0) % 1 !== 0
|
|
33
17
|
|
|
34
|
-
const options: Intl.NumberFormatOptions = useMemo(
|
|
35
|
-
() => ({
|
|
36
|
-
style: 'currency',
|
|
37
|
-
currency: currency ?? config?.storeConfig?.base_currency_code ?? '',
|
|
38
|
-
...(round && !digits && { minimumFractionDigits: 0 }),
|
|
39
|
-
...(round && digits && { minimumFractionDigits: 2 }),
|
|
40
|
-
...(!round && { minimumFractionDigits: 2 }),
|
|
41
|
-
...formatOptions,
|
|
42
|
-
}),
|
|
43
|
-
[config?.storeConfig?.base_currency_code, currency, digits, formatOptions, round],
|
|
44
|
-
)
|
|
45
|
-
const numberFormatter = useNumberFormat(options)
|
|
46
|
-
|
|
47
18
|
if (typeof value === 'undefined' || value === null) return null
|
|
48
19
|
|
|
49
|
-
return
|
|
20
|
+
return (
|
|
21
|
+
<CurrencyFormat
|
|
22
|
+
currency={currency ?? config?.storeConfig?.base_currency_code ?? ''}
|
|
23
|
+
maximumFractionDigits={round && !digits ? 0 : 2}
|
|
24
|
+
{...formatOptions}
|
|
25
|
+
>
|
|
26
|
+
{value}
|
|
27
|
+
</CurrencyFormat>
|
|
28
|
+
)
|
|
50
29
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
fragment StoreConfigFragment on StoreConfig
|
|
1
|
+
fragment StoreConfigFragment on StoreConfig {
|
|
2
2
|
website_name
|
|
3
3
|
store_code
|
|
4
4
|
store_name
|
|
@@ -30,4 +30,9 @@ fragment StoreConfigFragment on StoreConfig @injectable {
|
|
|
30
30
|
grid_per_page
|
|
31
31
|
grid_per_page_values
|
|
32
32
|
list_per_page
|
|
33
|
+
create_account_confirmation
|
|
34
|
+
order_cancellation_enabled
|
|
35
|
+
order_cancellation_reasons {
|
|
36
|
+
description
|
|
37
|
+
}
|
|
33
38
|
}
|
package/index.ts
CHANGED
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@graphcommerce/magento-store",
|
|
3
3
|
"homepage": "https://www.graphcommerce.org/",
|
|
4
4
|
"repository": "github:graphcommerce-org/graphcommerce",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "9.0.0-canary.100",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"prettier": "@graphcommerce/prettier-config-pwa",
|
|
8
8
|
"eslintConfig": {
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@graphcommerce/eslint-config-pwa": "^
|
|
16
|
-
"@graphcommerce/graphql": "^
|
|
17
|
-
"@graphcommerce/graphql-mesh": "^
|
|
18
|
-
"@graphcommerce/image": "^
|
|
19
|
-
"@graphcommerce/next-ui": "^
|
|
20
|
-
"@graphcommerce/prettier-config-pwa": "^
|
|
21
|
-
"@graphcommerce/typescript-config-pwa": "^
|
|
15
|
+
"@graphcommerce/eslint-config-pwa": "^9.0.0-canary.100",
|
|
16
|
+
"@graphcommerce/graphql": "^9.0.0-canary.100",
|
|
17
|
+
"@graphcommerce/graphql-mesh": "^9.0.0-canary.100",
|
|
18
|
+
"@graphcommerce/image": "^9.0.0-canary.100",
|
|
19
|
+
"@graphcommerce/next-ui": "^9.0.0-canary.100",
|
|
20
|
+
"@graphcommerce/prettier-config-pwa": "^9.0.0-canary.100",
|
|
21
|
+
"@graphcommerce/typescript-config-pwa": "^9.0.0-canary.100",
|
|
22
22
|
"@lingui/core": "^4.2.1",
|
|
23
23
|
"@lingui/macro": "^4.2.1",
|
|
24
24
|
"@lingui/react": "^4.2.1",
|
|
@@ -1,13 +1,39 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { setContext, type graphqlConfig as graphqlConfigType } from '@graphcommerce/graphql'
|
|
2
2
|
import type { FunctionPlugin, PluginConfig } from '@graphcommerce/next-config'
|
|
3
|
-
import { createStoreLink } from '../link/createStoreLink'
|
|
4
3
|
|
|
5
4
|
export const config: PluginConfig = {
|
|
6
5
|
type: 'function',
|
|
7
6
|
module: '@graphcommerce/graphql',
|
|
8
7
|
}
|
|
9
8
|
|
|
9
|
+
declare module '@graphcommerce/graphql/config' {
|
|
10
|
+
interface PreviewData {
|
|
11
|
+
magentoPreviewVersion?: string
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
10
15
|
export const graphqlConfig: FunctionPlugin<typeof graphqlConfigType> = (prev, conf) => {
|
|
11
16
|
const results = prev(conf)
|
|
12
|
-
|
|
17
|
+
|
|
18
|
+
const previewVersion = conf.previewData?.magentoPreviewVersion
|
|
19
|
+
|
|
20
|
+
return {
|
|
21
|
+
...results,
|
|
22
|
+
links: [
|
|
23
|
+
...results.links,
|
|
24
|
+
setContext((_, context) => {
|
|
25
|
+
if (!context.headers) context.headers = {}
|
|
26
|
+
context.headers.store = conf.storefront.magentoStoreCode
|
|
27
|
+
if (conf.preview) {
|
|
28
|
+
// To disable caching from the backend, we provide a bogus cache ID.
|
|
29
|
+
context.headers['x-magento-cache-id'] =
|
|
30
|
+
`random-cache-id${Math.random().toString(36).slice(2)}`
|
|
31
|
+
if (previewVersion) {
|
|
32
|
+
context.headers['preview-version'] = previewVersion
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return context
|
|
36
|
+
}),
|
|
37
|
+
],
|
|
38
|
+
}
|
|
13
39
|
}
|
|
@@ -23,6 +23,25 @@ const notFound = (from: string, reason: string) => {
|
|
|
23
23
|
return { notFound: true, revalidate: 60 * 20 } as const
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
const urlPrefix = (locale?: string) => {
|
|
27
|
+
const localeHasDomain = Boolean(storefrontConfig(locale)?.domain)
|
|
28
|
+
return localeHasDomain || locale === defaultLocale() ? '' : `/${locale}`
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const redirectTo = (
|
|
32
|
+
to: string,
|
|
33
|
+
permanent: boolean,
|
|
34
|
+
locale?: string,
|
|
35
|
+
): { redirect: Redirect; revalidate?: number | boolean } => {
|
|
36
|
+
console.log(
|
|
37
|
+
`[redirectTo]: ${permanent ? 'Permanent' : 'Temporary'} redirect to ${urlPrefix(locale)}${to}`,
|
|
38
|
+
)
|
|
39
|
+
return {
|
|
40
|
+
redirect: { destination: `${urlPrefix(locale)}${to}`, permanent },
|
|
41
|
+
revalidate: 60 * 20,
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
26
45
|
const redirect = (from: string, to: string, permanent: boolean, locale?: string) => {
|
|
27
46
|
const localeHasDomain = Boolean(storefrontConfig(locale)?.domain)
|
|
28
47
|
const prefix = localeHasDomain || locale === defaultLocale() ? '' : `/${locale}`
|
|
@@ -68,6 +87,11 @@ export async function redirectOrNotFound(
|
|
|
68
87
|
candidates.add(from.endsWith(suffix) ? from.slice(0, -suffix.length) : `${from}${suffix}`)
|
|
69
88
|
})
|
|
70
89
|
|
|
90
|
+
// Handle the case where we transition from using the default .html suffix, to not using one
|
|
91
|
+
if (from.endsWith('.html')) {
|
|
92
|
+
candidates.add(from.slice(0, -('.html'.length)))
|
|
93
|
+
}
|
|
94
|
+
|
|
71
95
|
const routePromises = [...candidates].filter(Boolean).map(
|
|
72
96
|
async (url) =>
|
|
73
97
|
(
|
|
@@ -100,8 +124,8 @@ export async function redirectOrNotFound(
|
|
|
100
124
|
? routeData.route.relative_url
|
|
101
125
|
: undefined
|
|
102
126
|
|
|
103
|
-
//
|
|
104
|
-
const permanent = routeData.route?.redirect_code === 301
|
|
127
|
+
// For implicit redirects, always use permanent, otherwise use the given redirect type
|
|
128
|
+
const permanent = !routeData.route?.redirect_code || routeData.route?.redirect_code === 301
|
|
105
129
|
|
|
106
130
|
if (
|
|
107
131
|
isTypename(routeData.route, [
|
package/link/createStoreLink.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { setContext } from '@graphcommerce/graphql'
|
|
2
|
-
import { localeToStore } from '../localeToStore'
|
|
3
|
-
|
|
4
|
-
/** Apollo link to set the store header in the context */
|
|
5
|
-
export const createStoreLink = (locale?: string) =>
|
|
6
|
-
setContext((_, context) => {
|
|
7
|
-
if (!context.headers) context.headers = {}
|
|
8
|
-
context.headers.store = localeToStore(locale)
|
|
9
|
-
return context
|
|
10
|
-
})
|