diff --git a/frontend/src/views/Pages/AccountOverview.vue b/frontend/src/views/Pages/AccountOverview.vue index 41dcc7848..d0257809d 100644 --- a/frontend/src/views/Pages/AccountOverview.vue +++ b/frontend/src/views/Pages/AccountOverview.vue @@ -2,24 +2,36 @@
- +
- + + + + +
- +
@@ -28,6 +40,10 @@ import GddStatus from './AccountOverview/GddStatus.vue' import GddSend from './AccountOverview/GddSend.vue' import GddTable from './AccountOverview/GddTable.vue' import GddTableFooter from './AccountOverview/GddTableFooter.vue' +import TransactionForm from './AccountOverview/GddSend/TransactionForm.vue' +import TransactionConfirmation from './AccountOverview/GddSend/TransactionConfirmation.vue' +import TransactionResult from './AccountOverview/GddSend/TransactionResult.vue' +import communityAPI from '../../apis/communityAPI.js' export default { name: 'Overview', @@ -36,11 +52,23 @@ export default { GddSend, GddTable, GddTableFooter, + TransactionForm, + TransactionConfirmation, + TransactionResult, }, data() { return { - showTransactionList: true, + showContext: true, timestamp: Date.now(), + transactionData: { + email: '', + amount: 0, + target_date: '', + memo: '', + }, + error: false, + transactionSteps: ['transaction-form', 'transaction-confirmation', 'transaction-result'], + currentTransactionStep: 0, } }, props: { @@ -52,14 +80,37 @@ export default { transactionCount: { type: Number, default: 0 }, }, methods: { - toggleShowList(bool) { - this.showTransactionList = bool + setTransaction(data) { + this.transactionData.email = data.email + this.transactionData.amount = data.amount + this.transactionData.memo = data.memo + this.transactionData.target_date = new Date(Date.now()).toISOString() + this.showContext = false + this.currentTransactionStep = 1 }, - updateBalance(data) { - this.$emit('update-balance', data.ammount) + async sendTransaction() { + const result = await communityAPI.send( + this.$store.state.sessionId, + this.transactionData.email, + this.transactionData.amount, + this.transactionData.memo, + this.transactionData.target_date, + ) + if (result.success) { + this.error = false + this.$emit('update-balance', this.transactionData.amount) + } else { + this.error = true + } + this.currentTransactionStep = 2 }, - updateTransactions() { - this.$emit('update-transactions') + onReset() { + this.transactionData.email = '' + this.transactionData.amount = 0 + this.transactionData.memo = '' + this.transactionData.target_date = '' + this.showContext = true + this.currentTransactionStep = 0 }, }, } diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.vue b/frontend/src/views/Pages/AccountOverview/GddSend.vue index dd7518b2c..53e0910c9 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend.vue @@ -1,100 +1,13 @@