@faststore/core 2.2.0-alpha.8 → 2.2.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/.next/BUILD_ID +1 -0
- package/.next/build-manifest.json +128 -0
- package/.next/cache/.tsbuildinfo +1 -0
- package/.next/cache/eslint/.cache_1ncte1t +1 -0
- package/.next/cache/next-server.js.nft.json +1 -0
- package/.next/cache/webpack/client-development/0.pack +0 -0
- package/.next/cache/webpack/client-development/1.pack +0 -0
- package/.next/cache/webpack/client-development/10.pack +0 -0
- package/.next/cache/webpack/client-development/11.pack +0 -0
- package/.next/cache/webpack/client-development/12.pack +0 -0
- package/.next/cache/webpack/client-development/13.pack +0 -0
- package/.next/cache/webpack/client-development/14.pack +0 -0
- package/.next/cache/webpack/client-development/15.pack +0 -0
- package/.next/cache/webpack/client-development/16.pack +0 -0
- package/.next/cache/webpack/client-development/17.pack +0 -0
- package/.next/cache/webpack/client-development/2.pack +0 -0
- package/.next/cache/webpack/client-development/3.pack +0 -0
- package/.next/cache/webpack/client-development/4.pack +0 -0
- package/.next/cache/webpack/client-development/5.pack +0 -0
- package/.next/cache/webpack/client-development/6.pack +0 -0
- package/.next/cache/webpack/client-development/7.pack +0 -0
- package/.next/cache/webpack/client-development/8.pack +0 -0
- package/.next/cache/webpack/client-development/9.pack +0 -0
- package/.next/cache/webpack/client-development/index.pack +0 -0
- package/.next/cache/webpack/client-development/index.pack.old +0 -0
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/1.pack +0 -0
- package/.next/cache/webpack/client-production/2.pack +0 -0
- package/.next/cache/webpack/client-production/3.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/.next/cache/webpack/server-development/0.pack +0 -0
- package/.next/cache/webpack/server-development/1.pack +0 -0
- package/.next/cache/webpack/server-development/10.pack +0 -0
- package/.next/cache/webpack/server-development/11.pack +0 -0
- package/.next/cache/webpack/server-development/12.pack +0 -0
- package/.next/cache/webpack/server-development/13.pack +0 -0
- package/.next/cache/webpack/server-development/14.pack +0 -0
- package/.next/cache/webpack/server-development/15.pack +0 -0
- package/.next/cache/webpack/server-development/16.pack +0 -0
- package/.next/cache/webpack/server-development/17.pack +0 -0
- package/.next/cache/webpack/server-development/18.pack +0 -0
- package/.next/cache/webpack/server-development/19.pack +0 -0
- package/.next/cache/webpack/server-development/19.pack_ +0 -0
- package/.next/cache/webpack/server-development/2.pack +0 -0
- package/.next/cache/webpack/server-development/20.pack +0 -0
- package/.next/cache/webpack/server-development/21.pack +0 -0
- package/.next/cache/webpack/server-development/3.pack +0 -0
- package/.next/cache/webpack/server-development/4.pack +0 -0
- package/.next/cache/webpack/server-development/5.pack +0 -0
- package/.next/cache/webpack/server-development/6.pack +0 -0
- package/.next/cache/webpack/server-development/7.pack +0 -0
- package/.next/cache/webpack/server-development/8.pack +0 -0
- package/.next/cache/webpack/server-development/9.pack +0 -0
- package/.next/cache/webpack/server-development/index.pack +0 -0
- package/.next/cache/webpack/server-development/index.pack.old +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/1.pack +0 -0
- package/.next/cache/webpack/server-production/2.pack +0 -0
- package/.next/cache/webpack/server-production/3.pack +0 -0
- package/.next/cache/webpack/server-production/4.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/.next/export-marker.json +1 -0
- package/.next/images-manifest.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +1 -0
- package/.next/react-loadable-manifest.json +47 -0
- package/.next/required-server-files.json +1 -0
- package/.next/routes-manifest.json +1 -0
- package/.next/server/chunks/117.js +430 -0
- package/.next/server/chunks/177.js +120 -0
- package/.next/server/chunks/183.js +95 -0
- package/.next/server/chunks/184.js +61 -0
- package/.next/server/chunks/289.js +240 -0
- package/.next/server/chunks/312.js +678 -0
- package/.next/server/chunks/350.js +200 -0
- package/.next/server/chunks/37.js +610 -0
- package/.next/server/chunks/386.js +200 -0
- package/.next/server/chunks/387.js +550 -0
- package/.next/server/chunks/52.js +4007 -0
- package/.next/server/chunks/53.js +61 -0
- package/.next/server/chunks/574.js +145 -0
- package/.next/server/chunks/576.js +95 -0
- package/.next/server/chunks/585.js +640 -0
- package/.next/server/chunks/676.js +32 -0
- package/.next/server/chunks/692.js +111 -0
- package/.next/server/chunks/693.js +58 -0
- package/.next/server/chunks/732.js +1880 -0
- package/.next/server/chunks/74.js +3964 -0
- package/.next/server/chunks/779.js +58 -0
- package/.next/server/chunks/817.js +4007 -0
- package/.next/server/chunks/825.js +4074 -0
- package/.next/server/chunks/854.js +72 -0
- package/.next/server/chunks/859.js +959 -0
- package/.next/server/chunks/897.js +1289 -0
- package/.next/server/chunks/98.js +163 -0
- package/.next/server/chunks/988.js +211 -0
- package/.next/server/chunks/font-manifest.json +1 -0
- package/.next/server/font-manifest.json +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/pages/404.js +386 -0
- package/.next/server/pages/404.js.nft.json +1 -0
- package/.next/server/pages/500.js +388 -0
- package/.next/server/pages/500.js.nft.json +1 -0
- package/.next/server/pages/[...slug].js +1084 -0
- package/.next/server/pages/[...slug].js.nft.json +1 -0
- package/.next/server/pages/[slug]/p.js +2274 -0
- package/.next/server/pages/[slug]/p.js.nft.json +1 -0
- package/.next/server/pages/_app.js +279 -0
- package/.next/server/pages/_app.js.nft.json +1 -0
- package/.next/server/pages/_document.js +358 -0
- package/.next/server/pages/_document.js.nft.json +1 -0
- package/.next/server/pages/_error.js +164 -0
- package/.next/server/pages/_error.js.nft.json +1 -0
- package/.next/server/pages/account.js +363 -0
- package/.next/server/pages/account.js.nft.json +1 -0
- package/.next/server/pages/api/graphql.js +457 -0
- package/.next/server/pages/api/graphql.js.nft.json +1 -0
- package/.next/server/pages/api/health/live.js +31 -0
- package/.next/server/pages/api/health/live.js.nft.json +1 -0
- package/.next/server/pages/api/health/ready.js +31 -0
- package/.next/server/pages/api/health/ready.js.nft.json +1 -0
- package/.next/server/pages/api/preview.js +130 -0
- package/.next/server/pages/api/preview.js.nft.json +1 -0
- package/.next/server/pages/checkout.js +363 -0
- package/.next/server/pages/checkout.js.nft.json +1 -0
- package/.next/server/pages/en-US/404.html +81 -0
- package/.next/server/pages/en-US/404.json +1 -0
- package/.next/server/pages/en-US/500.html +81 -0
- package/.next/server/pages/en-US/500.json +1 -0
- package/.next/server/pages/en-US/account.html +81 -0
- package/.next/server/pages/en-US/account.json +1 -0
- package/.next/server/pages/en-US/checkout.html +81 -0
- package/.next/server/pages/en-US/checkout.json +1 -0
- package/.next/server/pages/en-US/login.html +81 -0
- package/.next/server/pages/en-US/login.json +1 -0
- package/.next/server/pages/en-US/s.html +81 -0
- package/.next/server/pages/en-US/s.json +1 -0
- package/.next/server/pages/en-US.html +90 -0
- package/.next/server/pages/en-US.json +1 -0
- package/.next/server/pages/index.js +432 -0
- package/.next/server/pages/index.js.nft.json +1 -0
- package/.next/server/pages/login.js +368 -0
- package/.next/server/pages/login.js.nft.json +1 -0
- package/.next/server/pages/s.js +548 -0
- package/.next/server/pages/s.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +18 -0
- package/.next/server/webpack-api-runtime.js +229 -0
- package/.next/server/webpack-runtime.js +229 -0
- package/.next/static/chunks/251.ffc4f3998ecb915a.js +1 -0
- package/.next/static/chunks/383-6217b37bd38ffd07.js +1 -0
- package/.next/static/chunks/386.d01e0db26c523f0f.js +1 -0
- package/.next/static/chunks/574.70612be06fd1365f.js +1 -0
- package/.next/static/chunks/585.3350efefe61c9461.js +1 -0
- package/.next/static/chunks/635-666ee2cad2925bb7.js +1 -0
- package/.next/static/chunks/651.7142f31ce1e052b3.js +1 -0
- package/.next/static/chunks/721-f1665b3f1d98b7a9.js +1 -0
- package/.next/static/chunks/722-d0cc87aacd616b5d.js +1 -0
- package/.next/static/chunks/741.52f7fb873418346f.js +1 -0
- package/.next/static/chunks/783-ded9d8cda0d5c8d9.js +1 -0
- package/.next/static/chunks/800.851af48fe2ab4a4c.js +1 -0
- package/.next/static/chunks/98.40c7e17d9de4eb8f.js +1 -0
- package/.next/static/chunks/988.afda042dd9ba11d1.js +1 -0
- package/.next/static/chunks/framework-dfd14d7ce6600b03.js +1 -0
- package/.next/static/chunks/main-e4e873ee741162eb.js +1 -0
- package/.next/static/chunks/pages/404-6c674028b2f80cbb.js +1 -0
- package/.next/static/chunks/pages/500-ff55de77265a7e43.js +1 -0
- package/.next/static/chunks/pages/[...slug]-7f8dc13cc9542463.js +1 -0
- package/.next/static/chunks/pages/[slug]/p-2fb3fd9027f2923b.js +1 -0
- package/.next/static/chunks/pages/_app-7db7de3d205714be.js +1 -0
- package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +1 -0
- package/.next/static/chunks/pages/account-b06035cba2c99604.js +1 -0
- package/.next/static/chunks/pages/checkout-f0c3e8d691cb8a54.js +1 -0
- package/.next/static/chunks/pages/index-a141c747fcc197a1.js +1 -0
- package/.next/static/chunks/pages/login-4e0e6cab7a07f1f3.js +1 -0
- package/.next/static/chunks/pages/s-823f8e1cabbf63b3.js +1 -0
- package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +1 -0
- package/.next/static/chunks/webpack-4bb3d8db2d6302ef.js +1 -0
- package/.next/static/css/527e334fa69cf40a.css +1 -0
- package/.next/static/css/5d1f64b61ea581f4.css +1 -0
- package/.next/static/css/6a7fdc5a21fbead5.css +1 -0
- package/.next/static/css/6e1a7434f061d0ef.css +1 -0
- package/.next/static/css/723835bce380750d.css +1 -0
- package/.next/static/css/8f93a4630936c20b.css +1 -0
- package/.next/static/css/9f79fa103f49bca1.css +1 -0
- package/.next/static/css/a2eefb25a4608343.css +1 -0
- package/.next/static/css/cb7d1fcea42fab9c.css +1 -0
- package/.next/static/css/df588bb98c0b0ca6.css +1 -0
- package/.next/static/css/fd27ecc37832aa54.css +1 -0
- package/.next/static/nWxpZUamURezDcVWQSg4_/_buildManifest.js +1 -0
- package/.next/static/nWxpZUamURezDcVWQSg4_/_ssgManifest.js +1 -0
- package/.next/trace +5 -0
- package/.turbo/turbo-build.log +15 -19
- package/.turbo/turbo-test.log +59 -11
- package/@generated/graphql/index.ts +23 -7
- package/@generated/graphql/persisted.json +3 -3
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/next.config.js +4 -0
- package/package.json +9 -9
- package/public/~partytown/debug/partytown-atomics.js +556 -0
- package/public/~partytown/debug/partytown-media.js +374 -0
- package/public/~partytown/debug/partytown-sandbox-sw.js +543 -0
- package/public/~partytown/debug/partytown-sw.js +59 -0
- package/public/~partytown/debug/partytown-ww-atomics.js +1789 -0
- package/public/~partytown/debug/partytown-ww-sw.js +1781 -0
- package/public/~partytown/debug/partytown.js +72 -0
- package/public/~partytown/partytown-atomics.js +2 -0
- package/public/~partytown/partytown-media.js +2 -0
- package/public/~partytown/partytown-sw.js +2 -0
- package/public/~partytown/partytown.js +2 -0
- package/src/components/search/SearchInput/SearchInput.tsx +12 -1
- package/src/components/search/SearchTop/SearchTop.tsx +7 -1
- package/src/components/ui/ProductDescription/ProductDescription.tsx +6 -1
- package/src/components/ui/ShippingSimulation/ShippingSimulation.tsx +11 -33
- package/src/customizations/fragments/ClientSearchSuggestions.ts +13 -0
- package/src/customizations/fragments/ClientShippingSimulation.ts +11 -0
- package/src/customizations/fragments/ClientTopSearchSuggestions.ts +13 -0
- package/src/experimental/index.ts +2 -24
- package/src/sdk/search/useSuggestions.ts +7 -9
- package/src/sdk/search/useTopSearch.ts +7 -12
- package/src/sdk/shipping/index.ts +6 -4
- package/src/sdk/shipping/useShippingSimulation.ts +33 -56
- package/yarn-error.log +25534 -0
|
@@ -2,18 +2,19 @@ import type { IShippingItem } from '@faststore/api'
|
|
|
2
2
|
import { gql } from '@faststore/graphql-utils'
|
|
3
3
|
|
|
4
4
|
import type {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
ClientShippingSimulationQueryQuery as Query,
|
|
6
|
+
ClientShippingSimulationQueryQueryVariables as Variables,
|
|
7
7
|
} from '@generated/graphql'
|
|
8
8
|
|
|
9
9
|
import { request } from '../graphql/request'
|
|
10
10
|
|
|
11
11
|
const query = gql`
|
|
12
|
-
query
|
|
12
|
+
query ClientShippingSimulationQuery(
|
|
13
13
|
$postalCode: String!
|
|
14
14
|
$country: String!
|
|
15
15
|
$items: [IShippingItem!]!
|
|
16
16
|
) {
|
|
17
|
+
...ClientShippingSimulation
|
|
17
18
|
shipping(items: $items, postalCode: $postalCode, country: $country) {
|
|
18
19
|
logisticsInfo {
|
|
19
20
|
slas {
|
|
@@ -32,6 +33,7 @@ const query = gql`
|
|
|
32
33
|
address {
|
|
33
34
|
city
|
|
34
35
|
neighborhood
|
|
36
|
+
state
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
}
|
|
@@ -54,7 +56,7 @@ export const getShippingSimulation = async ({
|
|
|
54
56
|
country,
|
|
55
57
|
})
|
|
56
58
|
|
|
57
|
-
return data
|
|
59
|
+
return data
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
export default getShippingSimulation
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { ChangeEvent } from 'react'
|
|
2
|
-
import { useCallback, useEffect, useReducer } from 'react'
|
|
3
|
-
import {
|
|
2
|
+
import { useCallback, useEffect, useReducer, useRef } from 'react'
|
|
3
|
+
import { ClientShippingSimulationQueryQuery } from '@generated/graphql'
|
|
4
|
+
import getShippingSimulation from '.'
|
|
5
|
+
import { useSession } from '../session'
|
|
4
6
|
|
|
5
7
|
export interface ProductShippingInfo {
|
|
6
8
|
id: string
|
|
@@ -14,14 +16,9 @@ type InputProps = {
|
|
|
14
16
|
errorMessage?: string
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
type ShippingSimulationProps = {
|
|
18
|
-
location?: string
|
|
19
|
-
options?: UIShippingSimulationProps['options']
|
|
20
|
-
}
|
|
21
|
-
|
|
22
19
|
type State = {
|
|
23
20
|
input: InputProps
|
|
24
|
-
shippingSimulation
|
|
21
|
+
shippingSimulation?: ClientShippingSimulationQueryQuery['shipping']
|
|
25
22
|
}
|
|
26
23
|
|
|
27
24
|
type Action =
|
|
@@ -41,17 +38,15 @@ type Action =
|
|
|
41
38
|
type: 'clear'
|
|
42
39
|
}
|
|
43
40
|
|
|
44
|
-
const createEmptySimulation = () =>
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
},
|
|
54
|
-
})
|
|
41
|
+
const createEmptySimulation = () =>
|
|
42
|
+
({
|
|
43
|
+
input: {
|
|
44
|
+
postalCode: '',
|
|
45
|
+
displayClearButton: false,
|
|
46
|
+
errorMessage: '',
|
|
47
|
+
},
|
|
48
|
+
shippingSimulation: undefined,
|
|
49
|
+
} as State)
|
|
55
50
|
|
|
56
51
|
const reducer = (state: State, action: Action) => {
|
|
57
52
|
const { type } = action
|
|
@@ -104,38 +99,31 @@ const reducer = (state: State, action: Action) => {
|
|
|
104
99
|
}
|
|
105
100
|
}
|
|
106
101
|
|
|
107
|
-
export
|
|
108
|
-
shippingItem: ProductShippingInfo,
|
|
109
|
-
country: string,
|
|
110
|
-
postalCode: string
|
|
111
|
-
) => Promise<[string, UIShippingSimulationProps['options']]>
|
|
112
|
-
|
|
113
|
-
export const useShippingSimulation = (
|
|
114
|
-
shippingItem: ProductShippingInfo,
|
|
115
|
-
fetchShippingSimulationFn: FetchShippingSimulation,
|
|
116
|
-
sessionPostalCode: string,
|
|
117
|
-
country: string
|
|
118
|
-
) => {
|
|
102
|
+
export const useShippingSimulation = (shippingItem: ProductShippingInfo) => {
|
|
119
103
|
const [{ input, shippingSimulation }, dispatch] = useReducer(
|
|
120
104
|
reducer,
|
|
121
105
|
null,
|
|
122
106
|
createEmptySimulation
|
|
123
107
|
)
|
|
124
108
|
|
|
109
|
+
const { country, postalCode: sessionPostalCode } = useSession()
|
|
125
110
|
const { postalCode: shippingPostalCode } = input
|
|
111
|
+
const shippingPostalCodeRef = useRef(shippingPostalCode)
|
|
126
112
|
|
|
127
113
|
useEffect(() => {
|
|
128
|
-
|
|
114
|
+
const shouldFetch = sessionPostalCode && !shippingPostalCodeRef.current
|
|
115
|
+
if (!shouldFetch) {
|
|
129
116
|
return
|
|
130
117
|
}
|
|
131
118
|
|
|
132
119
|
// Use sessionPostalCode if there is no shippingPostalCode
|
|
133
120
|
async function fetchShipping() {
|
|
134
|
-
const
|
|
135
|
-
shippingItem,
|
|
121
|
+
const data = await getShippingSimulation({
|
|
136
122
|
country,
|
|
137
|
-
sessionPostalCode ?? ''
|
|
138
|
-
|
|
123
|
+
postalCode: sessionPostalCode ?? '',
|
|
124
|
+
items: [shippingItem],
|
|
125
|
+
})
|
|
126
|
+
const shippingSimulation = data.shipping
|
|
139
127
|
|
|
140
128
|
dispatch({
|
|
141
129
|
type: 'update',
|
|
@@ -145,30 +133,22 @@ export const useShippingSimulation = (
|
|
|
145
133
|
displayClearButton: true,
|
|
146
134
|
errorMessage: '',
|
|
147
135
|
},
|
|
148
|
-
shippingSimulation
|
|
149
|
-
location,
|
|
150
|
-
options,
|
|
151
|
-
},
|
|
136
|
+
shippingSimulation,
|
|
152
137
|
},
|
|
153
138
|
})
|
|
154
139
|
}
|
|
155
140
|
|
|
156
141
|
fetchShipping()
|
|
157
|
-
}, [
|
|
158
|
-
country,
|
|
159
|
-
fetchShippingSimulationFn,
|
|
160
|
-
sessionPostalCode,
|
|
161
|
-
shippingItem,
|
|
162
|
-
shippingPostalCode,
|
|
163
|
-
])
|
|
142
|
+
}, [country, sessionPostalCode, shippingItem])
|
|
164
143
|
|
|
165
144
|
const handleSubmit = useCallback(async () => {
|
|
166
145
|
try {
|
|
167
|
-
const
|
|
168
|
-
shippingItem,
|
|
146
|
+
const data = await getShippingSimulation({
|
|
169
147
|
country,
|
|
170
|
-
shippingPostalCode ?? ''
|
|
171
|
-
|
|
148
|
+
postalCode: shippingPostalCode ?? '',
|
|
149
|
+
items: [shippingItem],
|
|
150
|
+
})
|
|
151
|
+
const shippingSimulation = data.shipping
|
|
172
152
|
|
|
173
153
|
dispatch({
|
|
174
154
|
type: 'update',
|
|
@@ -177,10 +157,7 @@ export const useShippingSimulation = (
|
|
|
177
157
|
displayClearButton: true,
|
|
178
158
|
errorMessage: '',
|
|
179
159
|
},
|
|
180
|
-
shippingSimulation
|
|
181
|
-
location,
|
|
182
|
-
options,
|
|
183
|
-
},
|
|
160
|
+
shippingSimulation,
|
|
184
161
|
},
|
|
185
162
|
})
|
|
186
163
|
} catch (error) {
|
|
@@ -192,7 +169,7 @@ export const useShippingSimulation = (
|
|
|
192
169
|
},
|
|
193
170
|
})
|
|
194
171
|
}
|
|
195
|
-
}, [country,
|
|
172
|
+
}, [country, shippingItem, shippingPostalCode])
|
|
196
173
|
|
|
197
174
|
const handleOnInput = useCallback((e: ChangeEvent<HTMLInputElement>) => {
|
|
198
175
|
const currentValue = e.currentTarget.value
|