diff --git a/src/components/ftbot/TradeList.vue b/src/components/ftbot/TradeList.vue index d6bbde94..f4d2d62f 100644 --- a/src/components/ftbot/TradeList.vue +++ b/src/components/ftbot/TradeList.vue @@ -84,6 +84,14 @@ /> + + {{ confirmExitText }} + @@ -97,7 +105,7 @@ import TradeProfit from './TradeProfit.vue'; import TradeActions from './TradeActions.vue'; import ForceExitForm from '@/components/ftbot/ForceExitForm.vue'; -import { defineComponent, ref, computed, watch, getCurrentInstance, nextTick } from 'vue'; +import { defineComponent, ref, computed, watch } from 'vue'; import { useBotStore } from '@/stores/ftbotwrapper'; export default defineComponent({ @@ -113,7 +121,6 @@ export default defineComponent({ emptyText: { default: 'No Trades to show.', type: String }, }, setup(props) { - const root = getCurrentInstance(); const botStore = useBotStore(); const currentPage = ref(1); const selectedItemIndex = ref(); @@ -122,6 +129,9 @@ export default defineComponent({ const perPage = props.activeTrades ? 200 : 15; const tradesTable = ref(); const forceExitVisible = ref(false); + const removeTradeVisible = ref(false); + const confirmExitText = ref(''); + const removeTradeModal = ref(); const openFields: Record[] = [{ key: 'actions' }]; const closedFields: Record[] = [ @@ -165,27 +175,46 @@ export default defineComponent({ { key: 'open_timestamp', label: 'Open date' }, ...(props.activeTrades ? openFields : closedFields), ]; - + const feOrderType = ref(undefined); const forceExitHandler = (item: Trade, ordertype: string | undefined = undefined) => { - root?.proxy.$bvModal - .msgBoxConfirm( - `Really exit trade ${item.trade_id} (Pair ${item.pair}) using ${ordertype} Order?`, - ) - .then((value: boolean) => { - if (value) { - const payload: MultiForcesellPayload = { - tradeid: String(item.trade_id), - botId: item.botId, - }; - if (ordertype) { - payload.ordertype = ordertype; - } - botStore - .forceSellMulti(payload) - .then((xxx) => console.log(xxx)) - .catch((error) => console.log(error.response)); - } - }); + feTrade.value = item; + confirmExitText.value = `Really exit trade ${item.trade_id} (Pair ${item.pair}) using ${ordertype} Order?`; + removeTradeVisible.value = true; + feOrderType.value = ordertype; + }; + + const forceExitExecuter = () => { + // TODO: this should be done properly. + if (confirmExitText.value.includes('delete')) { + const payload: MultiDeletePayload = { + tradeid: String(feTrade.value.trade_id), + botId: feTrade.value.botId, + }; + botStore.deleteTradeMulti(payload).catch((error) => console.log(error.response)); + removeTradeVisible.value = false; + return; + } + console.log(confirmExitText.value); + + const payload: MultiForcesellPayload = { + tradeid: String(feTrade.value.trade_id), + botId: feTrade.value.botId, + }; + if (feOrderType.value) { + payload.ordertype = feOrderType.value; + } + botStore + .forceSellMulti(payload) + .then((xxx) => console.log(xxx)) + .catch((error) => console.log(error.response)); + feOrderType.value = undefined; + removeTradeVisible.value = false; + }; + + const removeTradeHandler = (item: Trade) => { + confirmExitText.value = `Really delete trade ${item.trade_id} (Pair ${item.pair})?`; + feTrade.value = item; + removeTradeVisible.value = true; }; const forceExitPartialHandler = (item: Trade) => { @@ -203,21 +232,6 @@ export default defineComponent({ console.log(item); }; - const removeTradeHandler = (item) => { - console.log(item); - root?.proxy.$bvModal - .msgBoxConfirm(`Really delete trade ${item.trade_id} (Pair ${item.pair})?`) - .then((value: boolean) => { - if (value) { - const payload: MultiDeletePayload = { - tradeid: String(item.trade_id), - botId: item.botId, - }; - botStore.deleteTradeMulti(payload).catch((error) => console.log(error.response)); - } - }); - }; - const onRowClicked = (item) => { // Only allow single selection mode! if (item && item.trade_id !== botStore.activeBot.detailTradeId) { @@ -269,6 +283,10 @@ export default defineComponent({ onRowSelected, feTrade, forceExitVisible, + removeTradeVisible, + confirmExitText, + removeTradeModal, + forceExitExecuter, }; }, });