@faststore/components 3.5.0 → 3.7.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 (57) hide show
  1. package/dist/cjs/hooks/index.d.ts +1 -0
  2. package/dist/cjs/hooks/index.js +3 -1
  3. package/dist/cjs/hooks/index.js.map +1 -1
  4. package/dist/cjs/hooks/useSKUMatrix.d.ts +1 -0
  5. package/dist/cjs/hooks/useSKUMatrix.js +14 -0
  6. package/dist/cjs/hooks/useSKUMatrix.js.map +1 -0
  7. package/dist/cjs/index.d.ts +2 -0
  8. package/dist/cjs/index.js +5 -1
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/organisms/SKUMatrix/SKUMatrix.d.ts +9 -0
  11. package/dist/cjs/organisms/SKUMatrix/SKUMatrix.js +11 -0
  12. package/dist/cjs/organisms/SKUMatrix/SKUMatrix.js.map +1 -0
  13. package/dist/cjs/organisms/SKUMatrix/SKUMatrixSidebar.d.ts +45 -0
  14. package/dist/cjs/organisms/SKUMatrix/SKUMatrixSidebar.js +93 -0
  15. package/dist/cjs/organisms/SKUMatrix/SKUMatrixSidebar.js.map +1 -0
  16. package/dist/cjs/organisms/SKUMatrix/SKUMatrixTrigger.d.ts +5 -0
  17. package/dist/cjs/organisms/SKUMatrix/SKUMatrixTrigger.js +15 -0
  18. package/dist/cjs/organisms/SKUMatrix/SKUMatrixTrigger.js.map +1 -0
  19. package/dist/cjs/organisms/SKUMatrix/index.d.ts +6 -0
  20. package/dist/cjs/organisms/SKUMatrix/index.js +13 -0
  21. package/dist/cjs/organisms/SKUMatrix/index.js.map +1 -0
  22. package/dist/cjs/organisms/SKUMatrix/provider/SKUMatrixProvider.d.ts +49 -0
  23. package/dist/cjs/organisms/SKUMatrix/provider/SKUMatrixProvider.js +28 -0
  24. package/dist/cjs/organisms/SKUMatrix/provider/SKUMatrixProvider.js.map +1 -0
  25. package/dist/esm/hooks/index.d.ts +1 -0
  26. package/dist/esm/hooks/index.js +1 -0
  27. package/dist/esm/hooks/index.js.map +1 -1
  28. package/dist/esm/hooks/useSKUMatrix.d.ts +1 -0
  29. package/dist/esm/hooks/useSKUMatrix.js +10 -0
  30. package/dist/esm/hooks/useSKUMatrix.js.map +1 -0
  31. package/dist/esm/index.d.ts +2 -0
  32. package/dist/esm/index.js +1 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/organisms/SKUMatrix/SKUMatrix.d.ts +9 -0
  35. package/dist/esm/organisms/SKUMatrix/SKUMatrix.js +8 -0
  36. package/dist/esm/organisms/SKUMatrix/SKUMatrix.js.map +1 -0
  37. package/dist/esm/organisms/SKUMatrix/SKUMatrixSidebar.d.ts +45 -0
  38. package/dist/esm/organisms/SKUMatrix/SKUMatrixSidebar.js +90 -0
  39. package/dist/esm/organisms/SKUMatrix/SKUMatrixSidebar.js.map +1 -0
  40. package/dist/esm/organisms/SKUMatrix/SKUMatrixTrigger.d.ts +5 -0
  41. package/dist/esm/organisms/SKUMatrix/SKUMatrixTrigger.js +12 -0
  42. package/dist/esm/organisms/SKUMatrix/SKUMatrixTrigger.js.map +1 -0
  43. package/dist/esm/organisms/SKUMatrix/index.d.ts +6 -0
  44. package/dist/esm/organisms/SKUMatrix/index.js +4 -0
  45. package/dist/esm/organisms/SKUMatrix/index.js.map +1 -0
  46. package/dist/esm/organisms/SKUMatrix/provider/SKUMatrixProvider.d.ts +49 -0
  47. package/dist/esm/organisms/SKUMatrix/provider/SKUMatrixProvider.js +24 -0
  48. package/dist/esm/organisms/SKUMatrix/provider/SKUMatrixProvider.js.map +1 -0
  49. package/package.json +2 -2
  50. package/src/hooks/index.ts +1 -2
  51. package/src/hooks/useSKUMatrix.ts +15 -0
  52. package/src/index.ts +11 -0
  53. package/src/organisms/SKUMatrix/SKUMatrix.tsx +22 -0
  54. package/src/organisms/SKUMatrix/SKUMatrixSidebar.tsx +297 -0
  55. package/src/organisms/SKUMatrix/SKUMatrixTrigger.tsx +31 -0
  56. package/src/organisms/SKUMatrix/index.ts +8 -0
  57. package/src/organisms/SKUMatrix/provider/SKUMatrixProvider.tsx +104 -0
@@ -0,0 +1,104 @@
1
+ import React, { createContext, useCallback, useState, SetStateAction } from 'react'
2
+ import type { ReactNode } from 'react'
3
+
4
+ interface IAllVariantProducts {
5
+ id: string
6
+ name: string
7
+ image: {
8
+ url: string
9
+ alternateName: string
10
+ }
11
+ inventory: number
12
+ availability: string
13
+ price: number
14
+ listPrice: number
15
+ priceWithTaxes: number
16
+ listPriceWithTaxes: number
17
+ specifications: Record<string, string>
18
+ selectedCount: number
19
+ offers: {
20
+ highPrice: number
21
+ lowPrice: number
22
+ lowPriceWithTaxes: number
23
+ offerCount: number
24
+ priceCurrency: string
25
+ offers: Array<{
26
+ listPrice: number
27
+ listPriceWithTaxes: number
28
+ sellingPrice: number
29
+ priceCurrency: string
30
+ price: number
31
+ priceWithTaxes: number
32
+ priceValidUntil: string
33
+ itemCondition: string
34
+ availability: string
35
+ quantity: number
36
+ }>
37
+ }
38
+ }
39
+
40
+ export interface SKUMatrixProviderContextValue {
41
+ /*
42
+ A boolean value that indicates if the modal is open.
43
+ */
44
+ isOpen: boolean
45
+ /*
46
+ Array of all variant products.
47
+ */
48
+ allVariantProducts: IAllVariantProducts[]
49
+ /*
50
+ Function to set the array of all variant products.
51
+ */
52
+ setAllVariantProducts(
53
+ items: SetStateAction<IAllVariantProducts[]>
54
+ ): void
55
+ /*
56
+ */
57
+ onChangeQuantityItem(id: string, value: number): IAllVariantProducts[]
58
+ /*
59
+ function to set the modal is open
60
+ */
61
+ setIsOpen(value: boolean): void
62
+ }
63
+
64
+ export const SKUMatrixContext =
65
+ createContext<SKUMatrixProviderContextValue | null>(null)
66
+
67
+ function SKUMatrixProvider({ children }: { children: ReactNode }) {
68
+ const [isOpen, setIsOpen] = useState<boolean>(false)
69
+ const [allVariantProducts, setAllVariantProducts] = useState<
70
+ IAllVariantProducts[]
71
+ >([])
72
+
73
+ const onChangeQuantityItem = useCallback(
74
+ (id: string, value: number) => {
75
+ const data = [...allVariantProducts]
76
+ const matchedSKU = data.find((item) => item.id === id)
77
+
78
+ if(matchedSKU) {
79
+ matchedSKU.selectedCount = value
80
+ }
81
+
82
+ setAllVariantProducts(data)
83
+
84
+ return data
85
+ },
86
+ [allVariantProducts]
87
+ )
88
+
89
+ return (
90
+ <SKUMatrixContext.Provider
91
+ value={{
92
+ isOpen,
93
+ allVariantProducts,
94
+ setAllVariantProducts,
95
+ onChangeQuantityItem,
96
+ setIsOpen,
97
+ }}
98
+ >
99
+ {children}
100
+ </SKUMatrixContext.Provider>
101
+ )
102
+ }
103
+
104
+ export default SKUMatrixProvider