cancel all on toolbar / disable
This commit is contained in:
@@ -134,25 +134,24 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</template>
|
</template>
|
||||||
</v-data-table>
|
</v-data-table>
|
||||||
<btn icon="mdi-delete-alert" color="red" class="mx-3 mb-3" @click="cancelAll(vaultAddr)">Cancel All Orders</btn>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import LinePrice from "@/components/LinePrice.vue";
|
import LinePrice from "@/components/LinePrice.vue";
|
||||||
|
|
||||||
const PairPrice = defineAsyncComponent(()=>import("@/components/PairPrice.vue"))
|
|
||||||
const TokenAmount = defineAsyncComponent(()=>import('./TokenAmount.vue'))
|
|
||||||
const TokenSymbol = defineAsyncComponent(()=>import('./TokenSymbol.vue'))
|
|
||||||
import {FixedNumber} from "ethers";
|
import {FixedNumber} from "ethers";
|
||||||
import {useStore} from "@/store/store";
|
import {useStore} from "@/store/store";
|
||||||
import {computed, defineAsyncComponent, ref} from "vue";
|
import {computed, defineAsyncComponent, ref} from "vue";
|
||||||
import Btn from "@/components/Btn.vue"
|
import Btn from "@/components/Btn.vue"
|
||||||
import {cancelAll, cancelOrder, PendingOrderState, useWalletStore} from "@/blockchain/wallet.js";
|
import {cancelOrder, PendingOrderState, useWalletStore} from "@/blockchain/wallet.js";
|
||||||
import {dateString, pairPriceAddr} from "@/misc.js";
|
import {dateString} from "@/misc.js";
|
||||||
import {isOpen, OrderState} from "@/blockchain/orderlib.js";
|
import {isOpen, OrderState} from "@/blockchain/orderlib.js";
|
||||||
import Pulse from "@/components/Pulse.vue";
|
import Pulse from "@/components/Pulse.vue";
|
||||||
|
|
||||||
|
const PairPrice = defineAsyncComponent(()=>import("@/components/PairPrice.vue"))
|
||||||
|
const TokenAmount = defineAsyncComponent(()=>import('./TokenAmount.vue'))
|
||||||
|
const TokenSymbol = defineAsyncComponent(()=>import('./TokenSymbol.vue'))
|
||||||
|
|
||||||
const s = useStore()
|
const s = useStore()
|
||||||
const ws = useWalletStore()
|
const ws = useWalletStore()
|
||||||
const props = defineProps(['vault'])
|
const props = defineProps(['vault'])
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<toolbar-pane title="Order">
|
<toolbar-pane title="Order">
|
||||||
<template v-slot:toolbar>
|
<template #toolbar>
|
||||||
<!-- <v-btn variant="flat" prepend-icon="mdi-plus" @click="co.newOrder" v-if="co.orders.length===0">New Order</v-btn>-->
|
<!-- <v-btn variant="flat" prepend-icon="mdi-plus" @click="co.newOrder" v-if="co.orders.length===0">New Order</v-btn>-->
|
||||||
<v-btn variant="text" prepend-icon="mdi-send" @click="placeOrder"
|
<v-btn variant="text" prepend-icon="mdi-send" @click="placeOrder"
|
||||||
:color="orderColor" v-if="co.orders.length>0" :disabled="!valid">
|
:color="orderColor" v-if="co.orders.length>0" :disabled="!valid">
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<toolbar-pane title="Status" icon="mdi-format-list-bulleted-square">
|
<toolbar-pane title="Status" icon="mdi-format-list-bulleted-square">
|
||||||
|
<template #toolbar>
|
||||||
|
<v-btn variant="text" v-if="s.vault" prepend-icon="mdi-delete-alert" color="red"
|
||||||
|
@click="cancelAll(s.vault)" :disabled="!anyOrdersOpen"
|
||||||
|
text="Cancel All"/>
|
||||||
|
</template>
|
||||||
<needs-signer>
|
<needs-signer>
|
||||||
<orders/>
|
<orders/>
|
||||||
</needs-signer>
|
</needs-signer>
|
||||||
@@ -11,6 +16,21 @@
|
|||||||
import ToolbarPane from "@/components/chart/ToolbarPane.vue";
|
import ToolbarPane from "@/components/chart/ToolbarPane.vue";
|
||||||
import Orders from "@/components/Status.vue";
|
import Orders from "@/components/Status.vue";
|
||||||
import NeedsSigner from "@/components/NeedsSigner.vue";
|
import NeedsSigner from "@/components/NeedsSigner.vue";
|
||||||
|
import {cancelAll} from "@/blockchain/wallet.js";
|
||||||
|
import {useStore} from "@/store/store.js";
|
||||||
|
import {computed} from "vue";
|
||||||
|
import {isOpen} from "@/blockchain/orderlib.js";
|
||||||
|
|
||||||
|
const s = useStore()
|
||||||
|
|
||||||
|
const anyOrdersOpen = computed(()=>{
|
||||||
|
console.log('vo', s.vaultOrders)
|
||||||
|
for ( const order of Object.values(s.vaultOrders) )
|
||||||
|
if ( isOpen(order.state) )
|
||||||
|
return true
|
||||||
|
return false
|
||||||
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|||||||
@@ -72,12 +72,10 @@ const skew100 = computed( {
|
|||||||
|
|
||||||
// validity checks
|
// validity checks
|
||||||
watchEffect(()=>{
|
watchEffect(()=>{
|
||||||
const order = props.order
|
const rungs = props.builder.rungs
|
||||||
const builder = props.builder
|
const prev = props.builder.valid
|
||||||
props.builder.valid &&=
|
props.builder.valid = rungs >= 1 && valueA.value && (rungs < 2 || valueB.value)
|
||||||
order && builder &&
|
console.log('valid?', prev, props.builder.valid, rungs, valueA.value, valueB.value)
|
||||||
builder.rungs >= 1 && valueA.value &&
|
|
||||||
(builder.rungs < 2 || valueB.value)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ export const useStore = defineStore('app', ()=> {
|
|||||||
|
|
||||||
const vault = computed(() => vaults.value.length === 0 ? null : vaults.value[0] )
|
const vault = computed(() => vaults.value.length === 0 ? null : vaults.value[0] )
|
||||||
const balances = computed( () => vault.value === null ? {} : vaultBalances.value[vault.value] || {} )
|
const balances = computed( () => vault.value === null ? {} : vaultBalances.value[vault.value] || {} )
|
||||||
|
const vaultOrders = computed(()=> vault.value === null || (!vault.value in orders.value) ? {} : orders.value[vault.value] )
|
||||||
const tokens = computed(getTokens)
|
const tokens = computed(getTokens)
|
||||||
const factory = computed(() => !chain.value ? null : chain.value.factory)
|
const factory = computed(() => !chain.value ? null : chain.value.factory)
|
||||||
const helper = computed(() => {console.log('chain helper', chain.value); return !chain.value ? null : chain.value.helper})
|
const helper = computed(() => {console.log('chain helper', chain.value); return !chain.value ? null : chain.value.helper})
|
||||||
@@ -125,7 +126,8 @@ export const useStore = defineStore('app', ()=> {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
nav, chainId, chainInfo, chain, provider, providerRef, vaultInitCodeHash, account, vaults, transactionSenders,
|
nav, chainId, chainInfo, chain, provider, providerRef, vaultInitCodeHash, account, vaults, transactionSenders,
|
||||||
errors, extraTokens, poolPrices, vaultBalances, orders, vault, tokens, factory, helper, mockenv, mockCoins,
|
errors, extraTokens, poolPrices, vaultBalances, orders, vault, vaultOrders, tokens, factory, helper,
|
||||||
|
mockenv, mockCoins,
|
||||||
removeTransactionSender, error, closeError, addToken, clock, balances,
|
removeTransactionSender, error, closeError, addToken, clock, balances,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user