@betterstore/react 0.1.3 → 0.1.4
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 +6 -0
- package/dist/components/cart/useCart.d.ts +10 -2
- package/dist/index.cjs.js +12 -4
- package/dist/index.esm.js +12 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,10 +8,18 @@ interface LineItem {
|
|
|
8
8
|
}[];
|
|
9
9
|
metadata?: string;
|
|
10
10
|
}
|
|
11
|
-
type
|
|
11
|
+
type LineItemOptionalParams = {
|
|
12
|
+
quantity?: number;
|
|
13
|
+
productId: string;
|
|
14
|
+
variantOptions?: {
|
|
15
|
+
name: string;
|
|
16
|
+
value: string;
|
|
17
|
+
}[];
|
|
18
|
+
metadata?: string;
|
|
19
|
+
};
|
|
12
20
|
interface Cart {
|
|
13
21
|
lineItems: LineItem[];
|
|
14
|
-
addItem: (item:
|
|
22
|
+
addItem: (productId: string, item: LineItemOptionalParams) => void;
|
|
15
23
|
removeItem: (id: string) => void;
|
|
16
24
|
updateQuantity: (id: string, quantity: number) => void;
|
|
17
25
|
getProductQuantity: (productId: string) => number;
|
package/dist/index.cjs.js
CHANGED
|
@@ -242,16 +242,24 @@ const generateLineItemId = (item) => {
|
|
|
242
242
|
};
|
|
243
243
|
const useCart = create()(persist((set, get) => ({
|
|
244
244
|
lineItems: [],
|
|
245
|
-
addItem: (newItem) => set((state) => {
|
|
246
|
-
|
|
245
|
+
addItem: (productId, newItem) => set((state) => {
|
|
246
|
+
var _a, _b;
|
|
247
|
+
const formattedNewItem = {
|
|
248
|
+
productId: productId,
|
|
249
|
+
quantity: (_a = newItem.quantity) !== null && _a !== void 0 ? _a : 1,
|
|
250
|
+
variantOptions: (_b = newItem.variantOptions) !== null && _b !== void 0 ? _b : [],
|
|
251
|
+
metadata: newItem.metadata,
|
|
252
|
+
};
|
|
253
|
+
const id = generateLineItemId(formattedNewItem);
|
|
247
254
|
const existingItemIndex = state.lineItems.findIndex((item) => item.id === id);
|
|
248
255
|
if (existingItemIndex !== -1) {
|
|
249
256
|
const updatedItems = [...state.lineItems];
|
|
250
|
-
updatedItems[existingItemIndex] = Object.assign(Object.assign({}, updatedItems[existingItemIndex]), { quantity: updatedItems[existingItemIndex].quantity +
|
|
257
|
+
updatedItems[existingItemIndex] = Object.assign(Object.assign({}, updatedItems[existingItemIndex]), { quantity: updatedItems[existingItemIndex].quantity +
|
|
258
|
+
formattedNewItem.quantity });
|
|
251
259
|
return { lineItems: updatedItems };
|
|
252
260
|
}
|
|
253
261
|
return {
|
|
254
|
-
lineItems: [...state.lineItems, Object.assign(Object.assign({},
|
|
262
|
+
lineItems: [...state.lineItems, Object.assign(Object.assign({}, formattedNewItem), { id })],
|
|
255
263
|
};
|
|
256
264
|
}),
|
|
257
265
|
removeItem: (id) => set((state) => ({
|
package/dist/index.esm.js
CHANGED
|
@@ -240,16 +240,24 @@ const generateLineItemId = (item) => {
|
|
|
240
240
|
};
|
|
241
241
|
const useCart = create()(persist((set, get) => ({
|
|
242
242
|
lineItems: [],
|
|
243
|
-
addItem: (newItem) => set((state) => {
|
|
244
|
-
|
|
243
|
+
addItem: (productId, newItem) => set((state) => {
|
|
244
|
+
var _a, _b;
|
|
245
|
+
const formattedNewItem = {
|
|
246
|
+
productId: productId,
|
|
247
|
+
quantity: (_a = newItem.quantity) !== null && _a !== void 0 ? _a : 1,
|
|
248
|
+
variantOptions: (_b = newItem.variantOptions) !== null && _b !== void 0 ? _b : [],
|
|
249
|
+
metadata: newItem.metadata,
|
|
250
|
+
};
|
|
251
|
+
const id = generateLineItemId(formattedNewItem);
|
|
245
252
|
const existingItemIndex = state.lineItems.findIndex((item) => item.id === id);
|
|
246
253
|
if (existingItemIndex !== -1) {
|
|
247
254
|
const updatedItems = [...state.lineItems];
|
|
248
|
-
updatedItems[existingItemIndex] = Object.assign(Object.assign({}, updatedItems[existingItemIndex]), { quantity: updatedItems[existingItemIndex].quantity +
|
|
255
|
+
updatedItems[existingItemIndex] = Object.assign(Object.assign({}, updatedItems[existingItemIndex]), { quantity: updatedItems[existingItemIndex].quantity +
|
|
256
|
+
formattedNewItem.quantity });
|
|
249
257
|
return { lineItems: updatedItems };
|
|
250
258
|
}
|
|
251
259
|
return {
|
|
252
|
-
lineItems: [...state.lineItems, Object.assign(Object.assign({},
|
|
260
|
+
lineItems: [...state.lineItems, Object.assign(Object.assign({}, formattedNewItem), { id })],
|
|
253
261
|
};
|
|
254
262
|
}),
|
|
255
263
|
removeItem: (id) => set((state) => ({
|