@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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @betterstore/sdk
2
2
 
3
+ ## 0.1.4
4
+
5
+ ### Patch Changes
6
+
7
+ - usecart tweaks
8
+
3
9
  ## 0.1.3
4
10
 
5
11
  ### Patch Changes
@@ -8,10 +8,18 @@ interface LineItem {
8
8
  }[];
9
9
  metadata?: string;
10
10
  }
11
- type LineItemWithoutId = Omit<LineItem, "id">;
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: LineItemWithoutId) => void;
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
- const id = generateLineItemId(newItem);
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 + newItem.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({}, newItem), { id })],
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
- const id = generateLineItemId(newItem);
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 + newItem.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({}, newItem), { id })],
260
+ lineItems: [...state.lineItems, Object.assign(Object.assign({}, formattedNewItem), { id })],
253
261
  };
254
262
  }),
255
263
  removeItem: (id) => set((state) => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betterstore/react",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "E-commerce for Developers",
5
5
  "private": false,
6
6
  "publishConfig": {