order sanity checks
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
Place Dexorder
|
||||
</v-btn>
|
||||
<v-btn variant="text" prepend-icon="mdi-delete" v-if="co.orders.length>0"
|
||||
:disabled="!orderChanged" @click="cancelOrder">Reset</v-btn>
|
||||
:disabled="!orderChanged" @click="resetOrder">Reset</v-btn>
|
||||
</template>
|
||||
<div class="overflow-y-auto">
|
||||
<needs-chart>
|
||||
@@ -19,7 +19,21 @@
|
||||
<v-card-actions>
|
||||
<v-spacer/>
|
||||
<v-btn @click="()=>showResetDialog=false">Keep Existing</v-btn>
|
||||
<v-btn @click="()=>{co.resetOrders(); showResetDialog=false}" color="red" text="Reset Order"/>
|
||||
<v-btn @click="doResetOrder" color="red" text="Reset Order"/>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
<v-dialog v-model="showWarnings" max-width="300">
|
||||
<v-card prepend-icon="mdi-warning" title="Order Warnings" text="Your order has the following warnings:">
|
||||
<v-card-text>
|
||||
<v-list>
|
||||
<v-list-item v-for="w of orderWarnings">{{w}}</v-list-item>
|
||||
</v-list>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer/>
|
||||
<v-btn @click="()=>showWarnings=false">Back</v-btn>
|
||||
<v-btn @click="doPlaceOrder">Place Order</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
@@ -78,10 +92,19 @@ const valid = computed(()=>{
|
||||
|
||||
const orderChanged = computed(()=>!(co.orders.length===1 && co.orders[0].builders.length===0 && !co.orders[0].amount))
|
||||
|
||||
function cancelOrder() {
|
||||
const showWarnings = ref(false)
|
||||
const orderWarnings = ref([])
|
||||
|
||||
function resetOrder() {
|
||||
showResetDialog.value = true
|
||||
}
|
||||
|
||||
function doResetOrder() {
|
||||
co.resetOrders();
|
||||
orderWarnings.value = []
|
||||
showResetDialog.value = false
|
||||
}
|
||||
|
||||
watchEffect(()=>{
|
||||
const removable = []
|
||||
for (const order of ws.pendingOrders) {
|
||||
@@ -108,17 +131,31 @@ watchEffect(()=>{
|
||||
}
|
||||
})
|
||||
|
||||
let built = []
|
||||
|
||||
async function placeOrder() {
|
||||
const chartOrders = co.orders;
|
||||
const built = []
|
||||
const allWarns = []
|
||||
built = []
|
||||
for (const chartOrder of chartOrders) {
|
||||
console.log('chartOrder', chartOrder)
|
||||
const buildOrder = orderFuncs[chartOrder.id]
|
||||
const order = buildOrder()
|
||||
const {order, warnings} = buildOrder()
|
||||
built.push(order)
|
||||
allWarns.push(...warnings)
|
||||
}
|
||||
console.log('place orders', built)
|
||||
|
||||
if (allWarns.length > 0) {
|
||||
orderWarnings.value = allWarns
|
||||
showWarnings.value = true
|
||||
return
|
||||
}
|
||||
|
||||
await doPlaceOrder()
|
||||
}
|
||||
|
||||
async function doPlaceOrder() {
|
||||
console.log('place orders')
|
||||
if (ws.transaction!==null) {
|
||||
console.error('Transaction already in progress')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user