@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.
Files changed (228) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/build-manifest.json +128 -0
  3. package/.next/cache/.tsbuildinfo +1 -0
  4. package/.next/cache/eslint/.cache_1ncte1t +1 -0
  5. package/.next/cache/next-server.js.nft.json +1 -0
  6. package/.next/cache/webpack/client-development/0.pack +0 -0
  7. package/.next/cache/webpack/client-development/1.pack +0 -0
  8. package/.next/cache/webpack/client-development/10.pack +0 -0
  9. package/.next/cache/webpack/client-development/11.pack +0 -0
  10. package/.next/cache/webpack/client-development/12.pack +0 -0
  11. package/.next/cache/webpack/client-development/13.pack +0 -0
  12. package/.next/cache/webpack/client-development/14.pack +0 -0
  13. package/.next/cache/webpack/client-development/15.pack +0 -0
  14. package/.next/cache/webpack/client-development/16.pack +0 -0
  15. package/.next/cache/webpack/client-development/17.pack +0 -0
  16. package/.next/cache/webpack/client-development/2.pack +0 -0
  17. package/.next/cache/webpack/client-development/3.pack +0 -0
  18. package/.next/cache/webpack/client-development/4.pack +0 -0
  19. package/.next/cache/webpack/client-development/5.pack +0 -0
  20. package/.next/cache/webpack/client-development/6.pack +0 -0
  21. package/.next/cache/webpack/client-development/7.pack +0 -0
  22. package/.next/cache/webpack/client-development/8.pack +0 -0
  23. package/.next/cache/webpack/client-development/9.pack +0 -0
  24. package/.next/cache/webpack/client-development/index.pack +0 -0
  25. package/.next/cache/webpack/client-development/index.pack.old +0 -0
  26. package/.next/cache/webpack/client-production/0.pack +0 -0
  27. package/.next/cache/webpack/client-production/1.pack +0 -0
  28. package/.next/cache/webpack/client-production/2.pack +0 -0
  29. package/.next/cache/webpack/client-production/3.pack +0 -0
  30. package/.next/cache/webpack/client-production/index.pack +0 -0
  31. package/.next/cache/webpack/client-production/index.pack.old +0 -0
  32. package/.next/cache/webpack/server-development/0.pack +0 -0
  33. package/.next/cache/webpack/server-development/1.pack +0 -0
  34. package/.next/cache/webpack/server-development/10.pack +0 -0
  35. package/.next/cache/webpack/server-development/11.pack +0 -0
  36. package/.next/cache/webpack/server-development/12.pack +0 -0
  37. package/.next/cache/webpack/server-development/13.pack +0 -0
  38. package/.next/cache/webpack/server-development/14.pack +0 -0
  39. package/.next/cache/webpack/server-development/15.pack +0 -0
  40. package/.next/cache/webpack/server-development/16.pack +0 -0
  41. package/.next/cache/webpack/server-development/17.pack +0 -0
  42. package/.next/cache/webpack/server-development/18.pack +0 -0
  43. package/.next/cache/webpack/server-development/19.pack +0 -0
  44. package/.next/cache/webpack/server-development/19.pack_ +0 -0
  45. package/.next/cache/webpack/server-development/2.pack +0 -0
  46. package/.next/cache/webpack/server-development/20.pack +0 -0
  47. package/.next/cache/webpack/server-development/21.pack +0 -0
  48. package/.next/cache/webpack/server-development/3.pack +0 -0
  49. package/.next/cache/webpack/server-development/4.pack +0 -0
  50. package/.next/cache/webpack/server-development/5.pack +0 -0
  51. package/.next/cache/webpack/server-development/6.pack +0 -0
  52. package/.next/cache/webpack/server-development/7.pack +0 -0
  53. package/.next/cache/webpack/server-development/8.pack +0 -0
  54. package/.next/cache/webpack/server-development/9.pack +0 -0
  55. package/.next/cache/webpack/server-development/index.pack +0 -0
  56. package/.next/cache/webpack/server-development/index.pack.old +0 -0
  57. package/.next/cache/webpack/server-production/0.pack +0 -0
  58. package/.next/cache/webpack/server-production/1.pack +0 -0
  59. package/.next/cache/webpack/server-production/2.pack +0 -0
  60. package/.next/cache/webpack/server-production/3.pack +0 -0
  61. package/.next/cache/webpack/server-production/4.pack +0 -0
  62. package/.next/cache/webpack/server-production/index.pack +0 -0
  63. package/.next/cache/webpack/server-production/index.pack.old +0 -0
  64. package/.next/export-marker.json +1 -0
  65. package/.next/images-manifest.json +1 -0
  66. package/.next/next-server.js.nft.json +1 -0
  67. package/.next/package.json +1 -0
  68. package/.next/prerender-manifest.json +1 -0
  69. package/.next/react-loadable-manifest.json +47 -0
  70. package/.next/required-server-files.json +1 -0
  71. package/.next/routes-manifest.json +1 -0
  72. package/.next/server/chunks/117.js +430 -0
  73. package/.next/server/chunks/177.js +120 -0
  74. package/.next/server/chunks/183.js +95 -0
  75. package/.next/server/chunks/184.js +61 -0
  76. package/.next/server/chunks/289.js +240 -0
  77. package/.next/server/chunks/312.js +678 -0
  78. package/.next/server/chunks/350.js +200 -0
  79. package/.next/server/chunks/37.js +610 -0
  80. package/.next/server/chunks/386.js +200 -0
  81. package/.next/server/chunks/387.js +550 -0
  82. package/.next/server/chunks/52.js +4007 -0
  83. package/.next/server/chunks/53.js +61 -0
  84. package/.next/server/chunks/574.js +145 -0
  85. package/.next/server/chunks/576.js +95 -0
  86. package/.next/server/chunks/585.js +640 -0
  87. package/.next/server/chunks/676.js +32 -0
  88. package/.next/server/chunks/692.js +111 -0
  89. package/.next/server/chunks/693.js +58 -0
  90. package/.next/server/chunks/732.js +1880 -0
  91. package/.next/server/chunks/74.js +3964 -0
  92. package/.next/server/chunks/779.js +58 -0
  93. package/.next/server/chunks/817.js +4007 -0
  94. package/.next/server/chunks/825.js +4074 -0
  95. package/.next/server/chunks/854.js +72 -0
  96. package/.next/server/chunks/859.js +959 -0
  97. package/.next/server/chunks/897.js +1289 -0
  98. package/.next/server/chunks/98.js +163 -0
  99. package/.next/server/chunks/988.js +211 -0
  100. package/.next/server/chunks/font-manifest.json +1 -0
  101. package/.next/server/font-manifest.json +1 -0
  102. package/.next/server/middleware-build-manifest.js +1 -0
  103. package/.next/server/middleware-manifest.json +6 -0
  104. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  105. package/.next/server/pages/404.js +386 -0
  106. package/.next/server/pages/404.js.nft.json +1 -0
  107. package/.next/server/pages/500.js +388 -0
  108. package/.next/server/pages/500.js.nft.json +1 -0
  109. package/.next/server/pages/[...slug].js +1084 -0
  110. package/.next/server/pages/[...slug].js.nft.json +1 -0
  111. package/.next/server/pages/[slug]/p.js +2274 -0
  112. package/.next/server/pages/[slug]/p.js.nft.json +1 -0
  113. package/.next/server/pages/_app.js +279 -0
  114. package/.next/server/pages/_app.js.nft.json +1 -0
  115. package/.next/server/pages/_document.js +358 -0
  116. package/.next/server/pages/_document.js.nft.json +1 -0
  117. package/.next/server/pages/_error.js +164 -0
  118. package/.next/server/pages/_error.js.nft.json +1 -0
  119. package/.next/server/pages/account.js +363 -0
  120. package/.next/server/pages/account.js.nft.json +1 -0
  121. package/.next/server/pages/api/graphql.js +457 -0
  122. package/.next/server/pages/api/graphql.js.nft.json +1 -0
  123. package/.next/server/pages/api/health/live.js +31 -0
  124. package/.next/server/pages/api/health/live.js.nft.json +1 -0
  125. package/.next/server/pages/api/health/ready.js +31 -0
  126. package/.next/server/pages/api/health/ready.js.nft.json +1 -0
  127. package/.next/server/pages/api/preview.js +130 -0
  128. package/.next/server/pages/api/preview.js.nft.json +1 -0
  129. package/.next/server/pages/checkout.js +363 -0
  130. package/.next/server/pages/checkout.js.nft.json +1 -0
  131. package/.next/server/pages/en-US/404.html +81 -0
  132. package/.next/server/pages/en-US/404.json +1 -0
  133. package/.next/server/pages/en-US/500.html +81 -0
  134. package/.next/server/pages/en-US/500.json +1 -0
  135. package/.next/server/pages/en-US/account.html +81 -0
  136. package/.next/server/pages/en-US/account.json +1 -0
  137. package/.next/server/pages/en-US/checkout.html +81 -0
  138. package/.next/server/pages/en-US/checkout.json +1 -0
  139. package/.next/server/pages/en-US/login.html +81 -0
  140. package/.next/server/pages/en-US/login.json +1 -0
  141. package/.next/server/pages/en-US/s.html +81 -0
  142. package/.next/server/pages/en-US/s.json +1 -0
  143. package/.next/server/pages/en-US.html +90 -0
  144. package/.next/server/pages/en-US.json +1 -0
  145. package/.next/server/pages/index.js +432 -0
  146. package/.next/server/pages/index.js.nft.json +1 -0
  147. package/.next/server/pages/login.js +368 -0
  148. package/.next/server/pages/login.js.nft.json +1 -0
  149. package/.next/server/pages/s.js +548 -0
  150. package/.next/server/pages/s.js.nft.json +1 -0
  151. package/.next/server/pages-manifest.json +18 -0
  152. package/.next/server/webpack-api-runtime.js +229 -0
  153. package/.next/server/webpack-runtime.js +229 -0
  154. package/.next/static/chunks/251.ffc4f3998ecb915a.js +1 -0
  155. package/.next/static/chunks/383-6217b37bd38ffd07.js +1 -0
  156. package/.next/static/chunks/386.d01e0db26c523f0f.js +1 -0
  157. package/.next/static/chunks/574.70612be06fd1365f.js +1 -0
  158. package/.next/static/chunks/585.3350efefe61c9461.js +1 -0
  159. package/.next/static/chunks/635-666ee2cad2925bb7.js +1 -0
  160. package/.next/static/chunks/651.7142f31ce1e052b3.js +1 -0
  161. package/.next/static/chunks/721-f1665b3f1d98b7a9.js +1 -0
  162. package/.next/static/chunks/722-d0cc87aacd616b5d.js +1 -0
  163. package/.next/static/chunks/741.52f7fb873418346f.js +1 -0
  164. package/.next/static/chunks/783-ded9d8cda0d5c8d9.js +1 -0
  165. package/.next/static/chunks/800.851af48fe2ab4a4c.js +1 -0
  166. package/.next/static/chunks/98.40c7e17d9de4eb8f.js +1 -0
  167. package/.next/static/chunks/988.afda042dd9ba11d1.js +1 -0
  168. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +1 -0
  169. package/.next/static/chunks/main-e4e873ee741162eb.js +1 -0
  170. package/.next/static/chunks/pages/404-6c674028b2f80cbb.js +1 -0
  171. package/.next/static/chunks/pages/500-ff55de77265a7e43.js +1 -0
  172. package/.next/static/chunks/pages/[...slug]-7f8dc13cc9542463.js +1 -0
  173. package/.next/static/chunks/pages/[slug]/p-2fb3fd9027f2923b.js +1 -0
  174. package/.next/static/chunks/pages/_app-7db7de3d205714be.js +1 -0
  175. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +1 -0
  176. package/.next/static/chunks/pages/account-b06035cba2c99604.js +1 -0
  177. package/.next/static/chunks/pages/checkout-f0c3e8d691cb8a54.js +1 -0
  178. package/.next/static/chunks/pages/index-a141c747fcc197a1.js +1 -0
  179. package/.next/static/chunks/pages/login-4e0e6cab7a07f1f3.js +1 -0
  180. package/.next/static/chunks/pages/s-823f8e1cabbf63b3.js +1 -0
  181. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +1 -0
  182. package/.next/static/chunks/webpack-4bb3d8db2d6302ef.js +1 -0
  183. package/.next/static/css/527e334fa69cf40a.css +1 -0
  184. package/.next/static/css/5d1f64b61ea581f4.css +1 -0
  185. package/.next/static/css/6a7fdc5a21fbead5.css +1 -0
  186. package/.next/static/css/6e1a7434f061d0ef.css +1 -0
  187. package/.next/static/css/723835bce380750d.css +1 -0
  188. package/.next/static/css/8f93a4630936c20b.css +1 -0
  189. package/.next/static/css/9f79fa103f49bca1.css +1 -0
  190. package/.next/static/css/a2eefb25a4608343.css +1 -0
  191. package/.next/static/css/cb7d1fcea42fab9c.css +1 -0
  192. package/.next/static/css/df588bb98c0b0ca6.css +1 -0
  193. package/.next/static/css/fd27ecc37832aa54.css +1 -0
  194. package/.next/static/nWxpZUamURezDcVWQSg4_/_buildManifest.js +1 -0
  195. package/.next/static/nWxpZUamURezDcVWQSg4_/_ssgManifest.js +1 -0
  196. package/.next/trace +5 -0
  197. package/.turbo/turbo-build.log +15 -19
  198. package/.turbo/turbo-test.log +59 -11
  199. package/@generated/graphql/index.ts +23 -7
  200. package/@generated/graphql/persisted.json +3 -3
  201. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  202. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  203. package/next.config.js +4 -0
  204. package/package.json +9 -9
  205. package/public/~partytown/debug/partytown-atomics.js +556 -0
  206. package/public/~partytown/debug/partytown-media.js +374 -0
  207. package/public/~partytown/debug/partytown-sandbox-sw.js +543 -0
  208. package/public/~partytown/debug/partytown-sw.js +59 -0
  209. package/public/~partytown/debug/partytown-ww-atomics.js +1789 -0
  210. package/public/~partytown/debug/partytown-ww-sw.js +1781 -0
  211. package/public/~partytown/debug/partytown.js +72 -0
  212. package/public/~partytown/partytown-atomics.js +2 -0
  213. package/public/~partytown/partytown-media.js +2 -0
  214. package/public/~partytown/partytown-sw.js +2 -0
  215. package/public/~partytown/partytown.js +2 -0
  216. package/src/components/search/SearchInput/SearchInput.tsx +12 -1
  217. package/src/components/search/SearchTop/SearchTop.tsx +7 -1
  218. package/src/components/ui/ProductDescription/ProductDescription.tsx +6 -1
  219. package/src/components/ui/ShippingSimulation/ShippingSimulation.tsx +11 -33
  220. package/src/customizations/fragments/ClientSearchSuggestions.ts +13 -0
  221. package/src/customizations/fragments/ClientShippingSimulation.ts +11 -0
  222. package/src/customizations/fragments/ClientTopSearchSuggestions.ts +13 -0
  223. package/src/experimental/index.ts +2 -24
  224. package/src/sdk/search/useSuggestions.ts +7 -9
  225. package/src/sdk/search/useTopSearch.ts +7 -12
  226. package/src/sdk/shipping/index.ts +6 -4
  227. package/src/sdk/shipping/useShippingSimulation.ts +33 -56
  228. 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
- ShippingSimulationQueryQuery as Query,
6
- ShippingSimulationQueryQueryVariables as Variables,
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 ShippingSimulationQuery(
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.shipping
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 { ShippingSimulationProps as UIShippingSimulationProps } from '@faststore/components'
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: ShippingSimulationProps
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
- input: {
46
- postalCode: '',
47
- displayClearButton: false,
48
- errorMessage: '',
49
- },
50
- shippingSimulation: {
51
- location: '',
52
- options: [],
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 type FetchShippingSimulation = (
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
- if (!sessionPostalCode || shippingPostalCode) {
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 [location, options] = await fetchShippingSimulationFn(
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 [location, options] = await fetchShippingSimulationFn(
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, fetchShippingSimulationFn, shippingItem, shippingPostalCode])
172
+ }, [country, shippingItem, shippingPostalCode])
196
173
 
197
174
  const handleOnInput = useCallback((e: ChangeEvent<HTMLInputElement>) => {
198
175
  const currentValue = e.currentTarget.value