Void functions mostly working, pending testing.
This commit is contained in:
@@ -194,7 +194,7 @@ const pulseElement = (element: JQuery) => {
|
|||||||
.on('animationend', () => element.removeClass('pulse'))
|
.on('animationend', () => element.removeClass('pulse'))
|
||||||
}
|
}
|
||||||
|
|
||||||
Array.prototype.collect = function<x>(this: x[], func: (item: x) => x[]) {
|
Array.prototype.collect = function<x, y>(this: x[], func: (item: x) => y[]) {
|
||||||
return this.map(func).flat(1)
|
return this.map(func).flat(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -118,6 +118,7 @@ const goToNextPage = (e: JQuery.TriggeredEvent) => navigatePage(1, $(e.target))
|
|||||||
const goToPrevPage = (e: JQuery.TriggeredEvent) => navigatePage(-1, $(e.target))
|
const goToPrevPage = (e: JQuery.TriggeredEvent) => navigatePage(-1, $(e.target))
|
||||||
|
|
||||||
const setItemQty = (orderItem: orderItem, qty: number) => {
|
const setItemQty = (orderItem: orderItem, qty: number) => {
|
||||||
|
const instructionIds = getInstructionItems(orderItem.id).map(orderItem => orderItem.id)
|
||||||
const newItems = qty > 0
|
const newItems = qty > 0
|
||||||
? OrderScreen.order_items.map(existingOrderItem => {
|
? OrderScreen.order_items.map(existingOrderItem => {
|
||||||
if(existingOrderItem.id == orderItem.id){
|
if(existingOrderItem.id == orderItem.id){
|
||||||
@@ -125,13 +126,17 @@ const setItemQty = (orderItem: orderItem, qty: number) => {
|
|||||||
}
|
}
|
||||||
return existingOrderItem
|
return existingOrderItem
|
||||||
})
|
})
|
||||||
: array_remove(OrderScreen.order_items, orderItem)
|
: OrderScreen.order_items.filter(existingOrderItem => existingOrderItem.id != orderItem.id && !instructionIds.includes(existingOrderItem.id))
|
||||||
|
|
||||||
|
|
||||||
if(qty < 1){
|
if(qty < 1){
|
||||||
OrderScreen.selected_item_ids = array_remove(OrderScreen.selected_item_ids, orderItem.id)
|
OrderScreen.selected_item_ids = array_remove(OrderScreen.selected_item_ids, orderItem.id)
|
||||||
|
const lastItem = newItems.filter(orderItem => orderItem.item.item_type == "item")?.last()
|
||||||
|
OrderScreen.last_added_item_ids = newItems.length > 0 ? [lastItem.id] : []
|
||||||
}
|
}
|
||||||
|
|
||||||
setOrderItems(newItems)
|
setOrderItems(newItems)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const incrementItemQty = (orderItem:orderItem) => setItemQty(orderItem, orderItem.qty+1)
|
const incrementItemQty = (orderItem:orderItem) => setItemQty(orderItem, orderItem.qty+1)
|
||||||
@@ -215,8 +220,6 @@ const addInstructionToOrderBox = (instruction: orderItem) => {
|
|||||||
? OrderScreen.selected_item_ids.map(selectedItemId => getLastInstructionItem(selectedItemId).id).unique()
|
? OrderScreen.selected_item_ids.map(selectedItemId => getLastInstructionItem(selectedItemId).id).unique()
|
||||||
: OrderScreen.last_added_item_ids.map(itemId => getLastInstructionItem(itemId).id)
|
: OrderScreen.last_added_item_ids.map(itemId => getLastInstructionItem(itemId).id)
|
||||||
|
|
||||||
console.log(addAfter)
|
|
||||||
|
|
||||||
const newItems = OrderScreen.order_items.collect(existingItem => {
|
const newItems = OrderScreen.order_items.collect(existingItem => {
|
||||||
const newInstruction = createNewOrderItem(instruction.item, instruction.qty, instruction.print_group)
|
const newInstruction = createNewOrderItem(instruction.item, instruction.qty, instruction.print_group)
|
||||||
addOrderItemsToPulse(newInstruction.id)
|
addOrderItemsToPulse(newInstruction.id)
|
||||||
|
|||||||
@@ -111,5 +111,5 @@ interface Array<T> {
|
|||||||
first(): T
|
first(): T
|
||||||
last(): T
|
last(): T
|
||||||
unique(): this
|
unique(): this
|
||||||
collect(func: (item: T) => any[]): any[]
|
collect<y>(func: (item: T) => y[]): y[]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user