@faststore/components 3.5.0 → 3.9.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/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.js +3 -1
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useSKUMatrix.d.ts +1 -0
- package/dist/cjs/hooks/useSKUMatrix.js +14 -0
- package/dist/cjs/hooks/useSKUMatrix.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/organisms/SKUMatrix/SKUMatrix.d.ts +9 -0
- package/dist/cjs/organisms/SKUMatrix/SKUMatrix.js +11 -0
- package/dist/cjs/organisms/SKUMatrix/SKUMatrix.js.map +1 -0
- package/dist/cjs/organisms/SKUMatrix/SKUMatrixSidebar.d.ts +45 -0
- package/dist/cjs/organisms/SKUMatrix/SKUMatrixSidebar.js +93 -0
- package/dist/cjs/organisms/SKUMatrix/SKUMatrixSidebar.js.map +1 -0
- package/dist/cjs/organisms/SKUMatrix/SKUMatrixTrigger.d.ts +5 -0
- package/dist/cjs/organisms/SKUMatrix/SKUMatrixTrigger.js +15 -0
- package/dist/cjs/organisms/SKUMatrix/SKUMatrixTrigger.js.map +1 -0
- package/dist/cjs/organisms/SKUMatrix/index.d.ts +6 -0
- package/dist/cjs/organisms/SKUMatrix/index.js +13 -0
- package/dist/cjs/organisms/SKUMatrix/index.js.map +1 -0
- package/dist/cjs/organisms/SKUMatrix/provider/SKUMatrixProvider.d.ts +49 -0
- package/dist/cjs/organisms/SKUMatrix/provider/SKUMatrixProvider.js +28 -0
- package/dist/cjs/organisms/SKUMatrix/provider/SKUMatrixProvider.js.map +1 -0
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/useSKUMatrix.d.ts +1 -0
- package/dist/esm/hooks/useSKUMatrix.js +10 -0
- package/dist/esm/hooks/useSKUMatrix.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/organisms/SKUMatrix/SKUMatrix.d.ts +9 -0
- package/dist/esm/organisms/SKUMatrix/SKUMatrix.js +8 -0
- package/dist/esm/organisms/SKUMatrix/SKUMatrix.js.map +1 -0
- package/dist/esm/organisms/SKUMatrix/SKUMatrixSidebar.d.ts +45 -0
- package/dist/esm/organisms/SKUMatrix/SKUMatrixSidebar.js +90 -0
- package/dist/esm/organisms/SKUMatrix/SKUMatrixSidebar.js.map +1 -0
- package/dist/esm/organisms/SKUMatrix/SKUMatrixTrigger.d.ts +5 -0
- package/dist/esm/organisms/SKUMatrix/SKUMatrixTrigger.js +12 -0
- package/dist/esm/organisms/SKUMatrix/SKUMatrixTrigger.js.map +1 -0
- package/dist/esm/organisms/SKUMatrix/index.d.ts +6 -0
- package/dist/esm/organisms/SKUMatrix/index.js +4 -0
- package/dist/esm/organisms/SKUMatrix/index.js.map +1 -0
- package/dist/esm/organisms/SKUMatrix/provider/SKUMatrixProvider.d.ts +49 -0
- package/dist/esm/organisms/SKUMatrix/provider/SKUMatrixProvider.js +24 -0
- package/dist/esm/organisms/SKUMatrix/provider/SKUMatrixProvider.js.map +1 -0
- package/package.json +4 -4
- package/src/hooks/index.ts +1 -2
- package/src/hooks/useSKUMatrix.ts +15 -0
- package/src/index.ts +11 -0
- package/src/organisms/SKUMatrix/SKUMatrix.tsx +22 -0
- package/src/organisms/SKUMatrix/SKUMatrixSidebar.tsx +297 -0
- package/src/organisms/SKUMatrix/SKUMatrixTrigger.tsx +31 -0
- package/src/organisms/SKUMatrix/index.ts +8 -0
- 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
|