@vtex/order-items
Advanced tools
Comparing version 0.6.2 to 0.6.3
@@ -10,2 +10,6 @@ # Changelog | ||
## [0.6.3] - 2021-07-12 | ||
### Changed | ||
- Return type of `updateQuantity` and `addItems` to be `Promise<void>`. That enables users to wait for the operation to be finished | ||
## [0.6.2] - 2021-05-05 | ||
@@ -12,0 +16,0 @@ ### Fixed |
/*! | ||
* @vtex/order-items v0.6.2 | ||
* @vtex/order-items v0.6.3 | ||
* (c) VTEX | ||
@@ -11,9 +11,9 @@ * Released under the MIT License. | ||
const noop = async () => { }; | ||
const noop$1 = async () => { }; | ||
const OrderItemsContext = createContext({ | ||
addItem: noop, | ||
addItems: noop, | ||
updateQuantity: noop, | ||
removeItem: noop, | ||
setManualPrice: noop, | ||
addItem: noop$1, | ||
addItems: noop$1, | ||
updateQuantity: noop$1, | ||
removeItem: noop$1, | ||
setManualPrice: noop$1, | ||
}); | ||
@@ -406,2 +406,3 @@ const useOrderItems = () => { | ||
const noop = async () => { }; | ||
const useEnqueueTask = ({ useOrderForm, useLogger, useOrderQueue, useQueueStatus, }) => { | ||
@@ -484,3 +485,3 @@ const { log } = useLogger(); | ||
}, [orderForm.items]); | ||
const updateQuantity = useCallback((input, options) => { | ||
const updateQuantity = useCallback(async (input, options) => { | ||
var _a, _b; | ||
@@ -595,3 +596,3 @@ let index; | ||
}, log); | ||
enqueueTask(updateItemsTask({ | ||
return enqueueTask(updateItemsTask({ | ||
items: mutationVariables.orderItems, | ||
@@ -607,3 +608,3 @@ orderFormItems: currentOrderFormItems, | ||
*/ | ||
const addItems = useCallback((items, options) => { | ||
const addItems = useCallback(async (items, options) => { | ||
const { salesChannel, marketingData, allowedOutdatedData } = options !== null && options !== void 0 ? options : {}; | ||
@@ -629,7 +630,13 @@ const { newItems, updatedItems } = items.reduce((acc, item) => { | ||
}, { newItems: [], updatedItems: [] }); | ||
const updatedItemsPromises = []; | ||
if (updatedItems.length) { | ||
updatedItems.forEach((item) => updateQuantity(item, { allowedOutdatedData })); | ||
updatedItems.forEach((item) => { | ||
const updatedItemPromise = updateQuantity(item, { | ||
allowedOutdatedData, | ||
}); | ||
updatedItemsPromises.push(updatedItemPromise); | ||
}); | ||
} | ||
if (newItems.length === 0) { | ||
return; | ||
return Promise.all(updatedItemsPromises).then(noop); | ||
} | ||
@@ -662,3 +669,3 @@ const mutationInputItems = newItems.map(adjustForItemInput); | ||
}, log); | ||
enqueueTask(addItemsTask({ | ||
const addedItemsPromise = enqueueTask(addItemsTask({ | ||
mutationInputItems, | ||
@@ -670,2 +677,3 @@ mutationInputMarketingData: marketingData, | ||
})); | ||
return Promise.all([...updatedItemsPromises, addedItemsPromise]).then(noop); | ||
}, [addItemsTask, enqueueTask, log, setOrderForm, updateQuantity]); | ||
@@ -672,0 +680,0 @@ const addItem = useCallback((items, marketingData, salesChannel) => { |
/*! | ||
* @vtex/order-items v0.6.2 | ||
* @vtex/order-items v0.6.3 | ||
* (c) VTEX | ||
@@ -40,9 +40,9 @@ * Released under the MIT License. | ||
const noop = async () => { }; | ||
const noop$1 = async () => { }; | ||
const OrderItemsContext = React.createContext({ | ||
addItem: noop, | ||
addItems: noop, | ||
updateQuantity: noop, | ||
removeItem: noop, | ||
setManualPrice: noop, | ||
addItem: noop$1, | ||
addItems: noop$1, | ||
updateQuantity: noop$1, | ||
removeItem: noop$1, | ||
setManualPrice: noop$1, | ||
}); | ||
@@ -435,2 +435,3 @@ const useOrderItems = () => { | ||
const noop = async () => { }; | ||
const useEnqueueTask = ({ useOrderForm, useLogger, useOrderQueue, useQueueStatus, }) => { | ||
@@ -513,3 +514,3 @@ const { log } = useLogger(); | ||
}, [orderForm.items]); | ||
const updateQuantity = React.useCallback((input, options) => { | ||
const updateQuantity = React.useCallback(async (input, options) => { | ||
var _a, _b; | ||
@@ -624,3 +625,3 @@ let index; | ||
}, log); | ||
enqueueTask(updateItemsTask({ | ||
return enqueueTask(updateItemsTask({ | ||
items: mutationVariables.orderItems, | ||
@@ -636,3 +637,3 @@ orderFormItems: currentOrderFormItems, | ||
*/ | ||
const addItems = React.useCallback((items, options) => { | ||
const addItems = React.useCallback(async (items, options) => { | ||
const { salesChannel, marketingData, allowedOutdatedData } = options !== null && options !== void 0 ? options : {}; | ||
@@ -658,7 +659,13 @@ const { newItems, updatedItems } = items.reduce((acc, item) => { | ||
}, { newItems: [], updatedItems: [] }); | ||
const updatedItemsPromises = []; | ||
if (updatedItems.length) { | ||
updatedItems.forEach((item) => updateQuantity(item, { allowedOutdatedData })); | ||
updatedItems.forEach((item) => { | ||
const updatedItemPromise = updateQuantity(item, { | ||
allowedOutdatedData, | ||
}); | ||
updatedItemsPromises.push(updatedItemPromise); | ||
}); | ||
} | ||
if (newItems.length === 0) { | ||
return; | ||
return Promise.all(updatedItemsPromises).then(noop); | ||
} | ||
@@ -691,3 +698,3 @@ const mutationInputItems = newItems.map(adjustForItemInput); | ||
}, log); | ||
enqueueTask(addItemsTask({ | ||
const addedItemsPromise = enqueueTask(addItemsTask({ | ||
mutationInputItems, | ||
@@ -699,2 +706,3 @@ mutationInputMarketingData: marketingData, | ||
})); | ||
return Promise.all([...updatedItemsPromises, addedItemsPromise]).then(noop); | ||
}, [addItemsTask, enqueueTask, log, setOrderForm, updateQuantity]); | ||
@@ -701,0 +709,0 @@ const addItem = React.useCallback((items, marketingData, salesChannel) => { |
{ | ||
"name": "@vtex/order-items", | ||
"version": "0.6.2", | ||
"version": "0.6.3", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "cdn": "dist/index.umd.js", |
@@ -40,3 +40,3 @@ /// <reference types="react" /> | ||
}; | ||
export declare type AddItemsFn = (items: AddItemItemParam[], options?: AddItemsOptions) => void; | ||
export declare type AddItemsFn = (items: AddItemItemParam[], options?: AddItemsOptions) => PromiseLike<void>; | ||
export declare type AddItemFn = (items: AddItemItemParam[], marketingData?: Partial<MarketingData>, salesChannel?: string) => void; | ||
@@ -66,3 +66,3 @@ interface ItemIdentificationById { | ||
}; | ||
export declare type UpdateQuantityFn = (item: UpdateQuantityItemParam, options?: UpdateQuantityOptions) => void; | ||
export declare type UpdateQuantityFn = (item: UpdateQuantityItemParam, options?: UpdateQuantityOptions) => PromiseLike<void>; | ||
declare type RemoveItemParam = { | ||
@@ -69,0 +69,0 @@ seller: string; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
269594
3258