Void functions mostly working, pending testing.

This commit is contained in:
dredgy
2022-07-25 12:59:23 +10:00
parent 0507fcff65
commit 983b7ae909
3 changed files with 10 additions and 7 deletions

View File

@@ -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)
} }

View File

@@ -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)
@@ -214,9 +219,7 @@ const addInstructionToOrderBox = (instruction: orderItem) => {
const addAfter = OrderScreen.selected_item_ids.length const addAfter = OrderScreen.selected_item_ids.length
? 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)

View File

@@ -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[]
} }