From 62d681bcd295376682e82d33ac69ccffb49bc975 Mon Sep 17 00:00:00 2001 From: Mihail Polev Date: Fri, 1 Apr 2022 22:26:27 +0700 Subject: [PATCH 1/5] =?UTF-8?q?devop:=20=F0=9F=94=A7=20Send=20Transaction?= =?UTF-8?q?=20develop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/extension/src/ui/action/App.vue | 16 +- .../action/components/network-menu/index.vue | 8 +- .../extension/src/ui/action/router/index.ts | 16 +- .../components/network-activity-action.vue | 14 +- .../action/views/network-activity/index.vue | 2 +- .../ui/action/views/network-assets/index.vue | 2 +- .../ui/action/views/network-dapps/index.vue | 2 +- .../ui/action/views/network-nfts/index.vue | 2 +- .../components/send-address-input.vue | 83 +++++++++ .../components/send-address-item.vue | 115 +++++++++++++ .../components/send-contacts-list.vue | 50 ++++++ .../components/send-token-item.vue | 159 ++++++++++++++++++ .../components/send-token-list.vue | 32 ++++ .../action/views/send-transaction/index.vue | 136 +++++++++++++++ 14 files changed, 614 insertions(+), 23 deletions(-) create mode 100644 packages/extension/src/ui/action/views/send-transaction/components/send-address-input.vue create mode 100644 packages/extension/src/ui/action/views/send-transaction/components/send-address-item.vue create mode 100644 packages/extension/src/ui/action/views/send-transaction/components/send-contacts-list.vue create mode 100644 packages/extension/src/ui/action/views/send-transaction/components/send-token-item.vue create mode 100644 packages/extension/src/ui/action/views/send-transaction/components/send-token-list.vue create mode 100644 packages/extension/src/ui/action/views/send-transaction/index.vue diff --git a/packages/extension/src/ui/action/App.vue b/packages/extension/src/ui/action/App.vue index b816aa05f..b8cc31607 100644 --- a/packages/extension/src/ui/action/App.vue +++ b/packages/extension/src/ui/action/App.vue @@ -1,11 +1,11 @@ @@ -72,19 +72,19 @@ const router = useRouter(); const route = useRoute(); onMounted(() => { - router.push({ name: "activity", params: { id: 1 } }); + router.push({ name: "activity", params: { networkId: 1 } }); }); const transitionName = "fade"; const account: Account = singleAccount; const networks: NetworkItem[] = networkList; const setNetwork = (network: NetworkItem) => { - router.push({ name: "activity", params: { id: network.id } }); + router.push({ name: "activity", params: { networkId: network.id } }); }; const addNetwork = () => { router.push({ name: "add-network" }); }; const classObject = () => { - const selected = +route.params.id; + const selected = +route.params.networkId; if (selected) { return { @@ -98,7 +98,7 @@ const classObject = () => { return {}; }; const showNetworkMenu = () => { - const selected = +route.params.id; + const selected = +route.params.networkId; return ( !!selected && diff --git a/packages/extension/src/ui/action/components/network-menu/index.vue b/packages/extension/src/ui/action/components/network-menu/index.vue index a9a59871a..e2c33a553 100644 --- a/packages/extension/src/ui/action/components/network-menu/index.vue +++ b/packages/extension/src/ui/action/components/network-menu/index.vue @@ -1,25 +1,25 @@ + + + + + + diff --git a/packages/extension/src/ui/action/views/send-transaction/components/send-address-item.vue b/packages/extension/src/ui/action/views/send-transaction/components/send-address-item.vue new file mode 100644 index 000000000..6aee2bd6c --- /dev/null +++ b/packages/extension/src/ui/action/views/send-transaction/components/send-address-item.vue @@ -0,0 +1,115 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/send-transaction/components/send-contacts-list.vue b/packages/extension/src/ui/action/views/send-transaction/components/send-contacts-list.vue new file mode 100644 index 000000000..cd455bae0 --- /dev/null +++ b/packages/extension/src/ui/action/views/send-transaction/components/send-contacts-list.vue @@ -0,0 +1,50 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/send-transaction/components/send-token-item.vue b/packages/extension/src/ui/action/views/send-transaction/components/send-token-item.vue new file mode 100644 index 000000000..13905fc7a --- /dev/null +++ b/packages/extension/src/ui/action/views/send-transaction/components/send-token-item.vue @@ -0,0 +1,159 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/send-transaction/components/send-token-list.vue b/packages/extension/src/ui/action/views/send-transaction/components/send-token-list.vue new file mode 100644 index 000000000..45311f23f --- /dev/null +++ b/packages/extension/src/ui/action/views/send-transaction/components/send-token-list.vue @@ -0,0 +1,32 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/send-transaction/index.vue b/packages/extension/src/ui/action/views/send-transaction/index.vue new file mode 100644 index 000000000..745dd9046 --- /dev/null +++ b/packages/extension/src/ui/action/views/send-transaction/index.vue @@ -0,0 +1,136 @@ + + + + + + + From 83bf7f7db12d0784e9df5a54157169e26cf8cc9e Mon Sep 17 00:00:00 2001 From: Mihail Polev Date: Tue, 12 Apr 2022 10:27:29 +0700 Subject: [PATCH 2/5] =?UTF-8?q?devop:=20=F0=9F=94=A7=20Send=20Transaction?= =?UTF-8?q?=20develop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/components/list-search/index.vue | 75 ++++++++ .../extension/src/ui/action/types/mock.ts | 8 + .../components/send-address-input.vue | 132 ++++++++++---- .../components/send-address-item.vue | 16 +- .../components/send-contacts-list.vue | 127 ++++++++++++-- .../components/send-input-amount.vue | 87 ++++++++++ .../components/send-token-item.vue | 161 ++++++++---------- .../components/send-token-list.vue | 112 +++++++++++- .../components/send-token-select.vue | 122 +++++++++++++ .../action/views/send-transaction/index.vue | 114 ++++++++----- 10 files changed, 757 insertions(+), 197 deletions(-) create mode 100644 packages/extension/src/ui/action/components/list-search/index.vue create mode 100644 packages/extension/src/ui/action/views/send-transaction/components/send-input-amount.vue create mode 100644 packages/extension/src/ui/action/views/send-transaction/components/send-token-select.vue diff --git a/packages/extension/src/ui/action/components/list-search/index.vue b/packages/extension/src/ui/action/components/list-search/index.vue new file mode 100644 index 000000000..2e88422d7 --- /dev/null +++ b/packages/extension/src/ui/action/components/list-search/index.vue @@ -0,0 +1,75 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/types/mock.ts b/packages/extension/src/ui/action/types/mock.ts index bef48ea97..1229d32ab 100644 --- a/packages/extension/src/ui/action/types/mock.ts +++ b/packages/extension/src/ui/action/types/mock.ts @@ -554,3 +554,11 @@ export const nfts: NFTAuthor[] = [ ], }, ]; + +export const ethereum: Token = { + name: "Ethereum", + symbol: "eth", + icon: "https://mpolev.ru/enkrypt/eth.png", + amount: 0.5, + price: 2500, +}; \ No newline at end of file diff --git a/packages/extension/src/ui/action/views/send-transaction/components/send-address-input.vue b/packages/extension/src/ui/action/views/send-transaction/components/send-address-input.vue index c677cb2fb..b197a7db0 100644 --- a/packages/extension/src/ui/action/views/send-transaction/components/send-address-input.vue +++ b/packages/extension/src/ui/action/views/send-transaction/components/send-address-input.vue @@ -1,13 +1,23 @@ @@ -19,8 +29,10 @@ export default { @@ -51,33 +77,73 @@ const changeFocus = () => { @import "~@action/styles/theme.less"; .send-address-input { - height: 56px; + height: 64px; background: #FFFFFF; - box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1); - padding: 4px 32px 10px 32px; + margin: 12px 32px 8px 32px; box-sizing: border-box; + border: 1px solid @gray02; + box-sizing: border-box; + border-radius: 10px; + width: calc(~"100% - 64px"); + padding: 16px; + display: flex; + justify-content: flex-start; + align-items: center; + flex-direction: row; + position: relative; + + &.focus { + border: 1px solid @primary; + } + + &__avatar { + background: @buttonBg; + box-shadow: inset 0px 0px 1px rgba(0, 0, 0, 0.16); + width: 32px; + height: 32px; + border-radius: 100%; + overflow: hidden; + margin-right: 12px; + + img { + width: 100%; + height: 100%; + } + } + + &__address { + p { + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; + letter-spacing: 0.5px; + color: @secondaryLabel; + margin: 0; + } - p { - font-style: normal; - font-weight: 400; - font-size: 12px; - line-height: 16px; - letter-spacing: 0.5px; - color: @secondaryLabel; - margin: 0 0 6px 0; + input { + width: 290px; + height: 24px; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 24px; + letter-spacing: 0.25px; + color: @primaryLabel; + border: 0 none; + outline: none; + padding: 0; + } } - input { - width: 100%; - height: 20px; - font-style: normal; - font-weight: 400; - font-size: 14px; - line-height: 20px; - letter-spacing: 0.25px; - color: @primaryLabel; - border: 0 none; - outline: none; + &__arrow { + position: absolute; + font-size: 0; + cursor: pointer; + padding: 4px; + right: 8px; + top: 16px; } } diff --git a/packages/extension/src/ui/action/views/send-transaction/components/send-address-item.vue b/packages/extension/src/ui/action/views/send-transaction/components/send-address-item.vue index 6aee2bd6c..22aef34f4 100644 --- a/packages/extension/src/ui/action/views/send-transaction/components/send-address-item.vue +++ b/packages/extension/src/ui/action/views/send-transaction/components/send-address-item.vue @@ -1,5 +1,5 @@ diff --git a/packages/extension/src/ui/action/views/send-transaction/components/send-token-item.vue b/packages/extension/src/ui/action/views/send-transaction/components/send-token-item.vue index 13905fc7a..970e78817 100644 --- a/packages/extension/src/ui/action/views/send-transaction/components/send-token-item.vue +++ b/packages/extension/src/ui/action/views/send-transaction/components/send-token-item.vue @@ -1,9 +1,9 @@ diff --git a/packages/extension/src/ui/action/views/send-transaction/components/send-token-list.vue b/packages/extension/src/ui/action/views/send-transaction/components/send-token-list.vue index 45311f23f..5eee223d9 100644 --- a/packages/extension/src/ui/action/views/send-transaction/components/send-token-list.vue +++ b/packages/extension/src/ui/action/views/send-transaction/components/send-token-list.vue @@ -1,10 +1,17 @@ @@ -17,16 +24,103 @@ export default { diff --git a/packages/extension/src/ui/action/views/send-transaction/components/send-token-select.vue b/packages/extension/src/ui/action/views/send-transaction/components/send-token-select.vue new file mode 100644 index 000000000..e08932bf8 --- /dev/null +++ b/packages/extension/src/ui/action/views/send-transaction/components/send-token-select.vue @@ -0,0 +1,122 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/send-transaction/index.vue b/packages/extension/src/ui/action/views/send-transaction/index.vue index 745dd9046..63c8e52a7 100644 --- a/packages/extension/src/ui/action/views/send-transaction/index.vue +++ b/packages/extension/src/ui/action/views/send-transaction/index.vue @@ -1,30 +1,42 @@ @@ -37,17 +49,24 @@ export default { @@ -82,6 +119,7 @@ const changeFocus = (focus: boolean) => { box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.16); margin: 0; box-sizing: border-box; + position: relative; } .send-transaction { @@ -114,23 +152,5 @@ const changeFocus = (focus: boolean) => { background: @black007; } } - - &__scroll-area { - position: relative; - margin: auto; - width: 100%; - max-height: 468px; - margin: 0 0 8px 0; - padding: 0 !important; - box-sizing: border-box; - - &.ps--active-y { - padding-right: 0; - } - } - - &__scroll-content { - height: 476px; - } } From aff219c3e64cf89a8b1a96ddbb6c7b5b186675f3 Mon Sep 17 00:00:00 2001 From: Mihail Polev Date: Wed, 13 Apr 2022 22:29:36 +0700 Subject: [PATCH 3/5] =?UTF-8?q?devop:=20=F0=9F=94=A7=20Send=20Transaction?= =?UTF-8?q?=20develop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/extension/src/ui/action/App.vue | 19 +- .../app-menu/components/app-menu-item.vue | 3 +- .../ui/action/components/app-menu/index.vue | 15 +- .../action/components/base-button/index.vue | 13 +- .../action/components/network-menu/index.vue | 8 +- .../src/ui/action/icons/fee/economy-icon.vue | 22 ++ .../src/ui/action/icons/fee/higher-icon.vue | 22 ++ .../src/ui/action/icons/fee/highest-icon.vue | 22 ++ .../ui/action/icons/fee/recomended-icon.vue | 22 ++ .../src/ui/action/icons/fee/time-icon.vue | 22 ++ .../src/ui/action/icons/send/alert-icon.vue | 23 ++ .../action/icons/send/switch-arrow-icon.vue | 23 ++ .../extension/src/ui/action/router/index.ts | 18 +- .../extension/src/ui/action/styles/color.less | 2 + packages/extension/src/ui/action/types/fee.ts | 23 ++ .../extension/src/ui/action/types/mock.ts | 61 ++++++ .../components/network-activity-action.vue | 4 +- .../components/send-alert.vue | 57 +++++ .../components/send-fee-select.vue | 138 ++++++++++++ .../components/send-input-amount.vue | 79 ++++++- .../action/views/send-transaction/index.vue | 91 +++++++- .../components/transaction-fee-item.vue | 127 +++++++++++ .../ui/action/views/transaction-fee/index.vue | 197 ++++++++++++++++++ .../components/verify-transaction-network.vue | 73 +++++++ .../action/views/verify-transaction/index.vue | 159 ++++++++++++++ 25 files changed, 1211 insertions(+), 32 deletions(-) create mode 100644 packages/extension/src/ui/action/icons/fee/economy-icon.vue create mode 100644 packages/extension/src/ui/action/icons/fee/higher-icon.vue create mode 100644 packages/extension/src/ui/action/icons/fee/highest-icon.vue create mode 100644 packages/extension/src/ui/action/icons/fee/recomended-icon.vue create mode 100644 packages/extension/src/ui/action/icons/fee/time-icon.vue create mode 100644 packages/extension/src/ui/action/icons/send/alert-icon.vue create mode 100644 packages/extension/src/ui/action/icons/send/switch-arrow-icon.vue create mode 100644 packages/extension/src/ui/action/types/fee.ts create mode 100644 packages/extension/src/ui/action/views/send-transaction/components/send-alert.vue create mode 100644 packages/extension/src/ui/action/views/send-transaction/components/send-fee-select.vue create mode 100644 packages/extension/src/ui/action/views/transaction-fee/components/transaction-fee-item.vue create mode 100644 packages/extension/src/ui/action/views/transaction-fee/index.vue create mode 100644 packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-network.vue create mode 100644 packages/extension/src/ui/action/views/verify-transaction/index.vue diff --git a/packages/extension/src/ui/action/App.vue b/packages/extension/src/ui/action/App.vue index e2475b69b..4603ec21b 100644 --- a/packages/extension/src/ui/action/App.vue +++ b/packages/extension/src/ui/action/App.vue @@ -8,7 +8,7 @@ :selected="(route.params.id as string)" :set-network="setNetwork" /> -

+
to Cretate / Restore @@ -36,6 +36,7 @@
@@ -48,7 +49,10 @@ - +
@@ -111,6 +115,17 @@ const openCreate = () => { console.log(error); }); }; + +const showNetworkMenu = () => { + const selected = route.params.id as string; + return ( + !!selected && + (route.name == "activity" || + route.name == "assets" || + route.name == "nfts" || + route.name == "dapps") + ); +}; diff --git a/packages/extension/src/ui/action/components/base-button/index.vue b/packages/extension/src/ui/action/components/base-button/index.vue index e87e6ed2d..319c2ec01 100644 --- a/packages/extension/src/ui/action/components/base-button/index.vue +++ b/packages/extension/src/ui/action/components/base-button/index.vue @@ -1,7 +1,7 @@ @@ -55,9 +82,14 @@ import SendContactsList from "./components/send-contacts-list.vue"; import SendTokenSelect from "./components/send-token-select.vue"; import SendTokenList from "./components/send-token-list.vue"; import SendInputAmount from "./components/send-input-amount.vue"; +import SendFeeSelect from "./components/send-fee-select.vue"; +import TransactionFeeView from "@action/views/transaction-fee/index.vue"; +import SendAlert from "./components/send-alert.vue"; +import BaseButton from "@action/components/base-button/index.vue"; import { Account } from "@action/types/account"; import { Token } from "@action/types/token"; -import { ethereum } from "@action/types/mock"; +import { TransactionFee } from "@action/types/fee"; +import { ethereum, recommendedFee } from "@action/types/mock"; const route = useRoute(); const router = useRouter(); @@ -67,8 +99,10 @@ let address = ref(""); let isOpenSelectToken = ref(false); let selectedToken = ref(ethereum); let amount = ref(0); +let isOpenSelectFee = ref(false); +let fee = ref(recommendedFee); -const selected: number = +route.params.networkId; +const selected: string = route.params.id as string; defineProps({}); @@ -101,6 +135,37 @@ const selectToken = (token: Token) => { const inputAmount = (number: number) => { amount.value = number; }; + +const toggleSelectFee = (open: boolean) => { + isOpenSelectFee.value = open; +}; + +const selectFee = (option: TransactionFee) => { + fee.value = option; + isOpenSelectFee.value = false; +}; + +const sendButtonTitle = () => { + let title = "Send"; + + if (amount.value > 0) + title = + "Send " + amount.value + " " + selectedToken.value.symbol.toUpperCase(); + + return title; +}; + +const isDisabled = () => { + let isDisabled = true; + + if (amount.value > 0) isDisabled = false; + + return isDisabled; +}; + +const sendAction = () => { + router.push({ name: "verify-transaction", params: { id: selected } }); +}; diff --git a/packages/extension/src/ui/action/views/transaction-fee/components/transaction-fee-item.vue b/packages/extension/src/ui/action/views/transaction-fee/components/transaction-fee-item.vue new file mode 100644 index 000000000..e4e746f37 --- /dev/null +++ b/packages/extension/src/ui/action/views/transaction-fee/components/transaction-fee-item.vue @@ -0,0 +1,127 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/transaction-fee/index.vue b/packages/extension/src/ui/action/views/transaction-fee/index.vue new file mode 100644 index 000000000..2a8a29dd8 --- /dev/null +++ b/packages/extension/src/ui/action/views/transaction-fee/index.vue @@ -0,0 +1,197 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-network.vue b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-network.vue new file mode 100644 index 000000000..bfb5b6e9a --- /dev/null +++ b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-network.vue @@ -0,0 +1,73 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/verify-transaction/index.vue b/packages/extension/src/ui/action/views/verify-transaction/index.vue new file mode 100644 index 000000000..f4ab47181 --- /dev/null +++ b/packages/extension/src/ui/action/views/verify-transaction/index.vue @@ -0,0 +1,159 @@ + + + + + + + From 6216fcfdbff5dccbe8f7e70cfe7ef67c4ef1cace Mon Sep 17 00:00:00 2001 From: Mihail Polev Date: Thu, 14 Apr 2022 17:16:25 +0700 Subject: [PATCH 4/5] =?UTF-8?q?devop:=20=F0=9F=94=A7=20Send=20Transaction?= =?UTF-8?q?=20develop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/animation/send-checkmark.json | 1 + .../action/assets/animation/send-process.json | 1 + .../src/ui/action/icons/send/arrow-down.vue | 23 ++++ .../components/send-process-account.vue | 114 ++++++++++++++++ .../components/send-process-amount.vue | 96 ++++++++++++++ .../ui/action/views/send-process/index.vue | 125 ++++++++++++++++++ .../components/transaction-fee-item.vue | 43 +++++- .../components/verify-transaction-account.vue | 123 +++++++++++++++++ .../components/verify-transaction-amount.vue | 97 ++++++++++++++ .../components/verify-transaction-fee.vue | 72 ++++++++++ .../components/verify-transaction-network.vue | 3 +- .../action/views/verify-transaction/index.vue | 32 ++++- 12 files changed, 722 insertions(+), 8 deletions(-) create mode 100644 packages/extension/src/ui/action/assets/animation/send-checkmark.json create mode 100644 packages/extension/src/ui/action/assets/animation/send-process.json create mode 100644 packages/extension/src/ui/action/icons/send/arrow-down.vue create mode 100644 packages/extension/src/ui/action/views/send-process/components/send-process-account.vue create mode 100644 packages/extension/src/ui/action/views/send-process/components/send-process-amount.vue create mode 100644 packages/extension/src/ui/action/views/send-process/index.vue create mode 100644 packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-account.vue create mode 100644 packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-amount.vue create mode 100644 packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-fee.vue diff --git a/packages/extension/src/ui/action/assets/animation/send-checkmark.json b/packages/extension/src/ui/action/assets/animation/send-checkmark.json new file mode 100644 index 000000000..b0f055a23 --- /dev/null +++ b/packages/extension/src/ui/action/assets/animation/send-checkmark.json @@ -0,0 +1 @@ +{"v":"5.0.1","fr":30,"ip":0,"op":115.98,"w":128,"h":128,"assets":[],"layers":[{"ind":3,"nm":"check","ks":{"p":{"a":0,"k":[22,22]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":99,"s":[0],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[100]},{"t":100,"s":[100]}]}},"ao":0,"ip":0,"op":115.98,"st":0,"bm":0,"sr":1,"ty":4,"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[13.125,42],[32.375,61.25],[70.875,22.75]],"c":false},"hd":false}},{"ty":"st","c":{"a":0,"k":[0.02,0.753,0.647,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"ml":4,"d":[{"n":"d","nm":"dash","v":{"a":1,"k":[{"t":100,"s":[0],"i":{"x":[0.175],"y":[1]},"o":{"x":[0.77],"y":[0]},"e":[82]},{"t":114,"s":[82]}]}},{"n":"g","nm":"gap","v":{"a":1,"k":[{"t":100,"s":[82],"i":{"x":[0.175],"y":[1]},"o":{"x":[0.77],"y":[0]},"e":[82]},{"t":114,"s":[82]}]}},{"n":"o","nm":"offset","v":{"a":0,"k":0}}]},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"nm":"Object","hd":false}],"ln":"check"},{"ind":2,"nm":"spin","ks":{"p":{"a":0,"k":[64,64]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]},"r":{"a":1,"k":[{"t":0,"s":[0],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[720]},{"t":45,"s":[720],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[1080]},{"t":75,"s":[1080],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[1380]},{"t":100,"s":[1380],"i":{"x":[0.175],"y":[1]},"o":{"x":[0.77],"y":[0]},"e":[1620]},{"t":114,"s":[1620]}]},"o":{"a":1,"k":[{"t":100,"s":[100],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[100]},{"t":113,"s":[100],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[0]},{"t":114,"s":[0]}]}},"ao":0,"ip":0,"op":115.98,"st":0,"bm":0,"sr":1,"ty":4,"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":0,"k":{"i":[[0,0],[16.016,0],[0,16.016],[-16.016,0],[0,-16.016]],"o":[[0,16.016],[-16.016,0],[0,-16.016],[16.016,0],[0,0]],"v":[[29,0],[0,29],[-29,0],[0,-29],[29,0]],"c":true},"hd":false}},{"ty":"st","c":{"a":0,"k":[0.02,0.753,0.647,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"ml":4,"d":[{"n":"d","nm":"dash","v":{"a":1,"k":[{"t":0,"s":[130],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[10]},{"t":45,"s":[10],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[120]},{"t":100,"s":[120],"i":{"x":[0.175],"y":[1]},"o":{"x":[0.77],"y":[0]},"e":[0]},{"t":114,"s":[0]}]}},{"n":"g","nm":"gap","v":{"a":1,"k":[{"t":0,"s":[100],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[180]},{"t":45,"s":[180],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[106.667]},{"t":100,"s":[106.667],"i":{"x":[0.175],"y":[1]},"o":{"x":[0.77],"y":[0]},"e":[182]},{"t":114,"s":[182]}]}},{"n":"o","nm":"offset","v":{"a":1,"k":[{"t":100,"s":[0],"i":{"x":[0.175],"y":[1]},"o":{"x":[0.77],"y":[0]},"e":[0]},{"t":114,"s":[0]}]}}]},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"nm":"Object","hd":false}],"ln":"spin"},{"ind":1,"nm":"back","ks":{"p":{"a":0,"k":[64,64]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":100,"s":[20],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[0]},{"t":114,"s":[0]}]}},"ao":0,"ip":0,"op":115.98,"st":0,"bm":0,"sr":1,"ty":4,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[58,58]},"p":{"a":0,"k":[0,0]}},{"ty":"st","c":{"a":0,"k":[0.373,0.388,0.408,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":1,"lj":2,"ml":4},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"nm":"Object","hd":false}],"ln":"back"}]} diff --git a/packages/extension/src/ui/action/assets/animation/send-process.json b/packages/extension/src/ui/action/assets/animation/send-process.json new file mode 100644 index 000000000..517a4c9af --- /dev/null +++ b/packages/extension/src/ui/action/assets/animation/send-process.json @@ -0,0 +1 @@ +{"v":"5.0.1","fr":30,"ip":0,"op":105,"w":128,"h":128,"assets":[],"layers":[{"ind":2,"nm":"spin","ks":{"p":{"a":0,"k":[64,64]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]},"r":{"a":1,"k":[{"t":0,"s":[0],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[720]},{"t":45,"s":[720],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[1080]},{"t":75,"s":[1080],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[1440]},{"t":105,"s":[1440]}]},"o":{"a":0,"k":100}},"ao":0,"ip":0,"op":105,"st":0,"bm":0,"sr":1,"ty":4,"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":0,"k":{"i":[[0,0],[16.016,0],[0,16.016],[-16.016,0],[0,-16.016]],"o":[[0,16.016],[-16.016,0],[0,-16.016],[16.016,0],[0,0]],"v":[[29,0],[0,29],[-29,0],[0,-29],[29,0]],"c":true},"hd":false}},{"ty":"st","c":{"a":0,"k":[0.02,0.753,0.647,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"ml":4,"d":[{"n":"d","nm":"dash","v":{"a":1,"k":[{"t":0,"s":[130],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[10]},{"t":45,"s":[10],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[130]},{"t":105,"s":[130]}]}},{"n":"g","nm":"gap","v":{"a":1,"k":[{"t":0,"s":[100],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[180]},{"t":45,"s":[180],"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"e":[100]},{"t":105,"s":[100]}]}},{"n":"o","nm":"offset","v":{"a":0,"k":0}}]},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"nm":"Object","hd":false}],"ln":"spin"},{"ind":1,"nm":"back","ks":{"p":{"a":0,"k":[64,64]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":20}},"ao":0,"ip":0,"op":105,"st":0,"bm":0,"sr":1,"ty":4,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[58,58]},"p":{"a":0,"k":[0,0]}},{"ty":"st","c":{"a":0,"k":[0.373,0.388,0.408,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":1,"lj":2,"ml":4},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0}}],"nm":"Object","hd":false}],"ln":"back"}]} diff --git a/packages/extension/src/ui/action/icons/send/arrow-down.vue b/packages/extension/src/ui/action/icons/send/arrow-down.vue new file mode 100644 index 000000000..20b9333eb --- /dev/null +++ b/packages/extension/src/ui/action/icons/send/arrow-down.vue @@ -0,0 +1,23 @@ + + + diff --git a/packages/extension/src/ui/action/views/send-process/components/send-process-account.vue b/packages/extension/src/ui/action/views/send-process/components/send-process-account.vue new file mode 100644 index 000000000..0681a0c17 --- /dev/null +++ b/packages/extension/src/ui/action/views/send-process/components/send-process-account.vue @@ -0,0 +1,114 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/send-process/components/send-process-amount.vue b/packages/extension/src/ui/action/views/send-process/components/send-process-amount.vue new file mode 100644 index 000000000..c12f79446 --- /dev/null +++ b/packages/extension/src/ui/action/views/send-process/components/send-process-amount.vue @@ -0,0 +1,96 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/send-process/index.vue b/packages/extension/src/ui/action/views/send-process/index.vue new file mode 100644 index 000000000..8748bbaa7 --- /dev/null +++ b/packages/extension/src/ui/action/views/send-process/index.vue @@ -0,0 +1,125 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/transaction-fee/components/transaction-fee-item.vue b/packages/extension/src/ui/action/views/transaction-fee/components/transaction-fee-item.vue index e4e746f37..7d50791c9 100644 --- a/packages/extension/src/ui/action/views/transaction-fee/components/transaction-fee-item.vue +++ b/packages/extension/src/ui/action/views/transaction-fee/components/transaction-fee-item.vue @@ -20,7 +20,19 @@

{{ fee.price.description }}

-
+
+ -{{ $filters.currencyFormat(2.23, "USD") }} +
+ +
+ +{{ $filters.currencyFormat(1.23, "USD") }} +
@@ -80,6 +92,7 @@ const select = () => { text-decoration: none; padding: 4px 8px; box-sizing: border-box; + position: relative; &__block { display: flex; @@ -90,10 +103,6 @@ const select = () => { border-radius: 8px; width: 100%; - &.active { - background-color: @primary01; - } - svg { width: 24px; height: 24px; @@ -122,6 +131,30 @@ const select = () => { margin: 0; } } + + &-amount { + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 24px; + text-align: right; + color: @primary; + position: absolute; + right: 20px; + top: 16px; + + &.down { + color: @secondaryLabel; + } + } + + &.active { + background-color: @primary01; + + .transaction-fee-item__block-amount { + display: none; + } + } } } diff --git a/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-account.vue b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-account.vue new file mode 100644 index 000000000..f65de59d1 --- /dev/null +++ b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-account.vue @@ -0,0 +1,123 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-amount.vue b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-amount.vue new file mode 100644 index 000000000..33586ddca --- /dev/null +++ b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-amount.vue @@ -0,0 +1,97 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-fee.vue b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-fee.vue new file mode 100644 index 000000000..d5704d222 --- /dev/null +++ b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-fee.vue @@ -0,0 +1,72 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-network.vue b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-network.vue index bfb5b6e9a..638590ce6 100644 --- a/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-network.vue +++ b/packages/extension/src/ui/action/views/verify-transaction/components/verify-transaction-network.vue @@ -39,8 +39,7 @@ defineProps({ align-items: center; flex-direction: row; width: 100%; - height: 65px; - padding: 16px; + padding: 12px 16px; box-sizing: border-box; border-bottom: 1px solid @gray02; diff --git a/packages/extension/src/ui/action/views/verify-transaction/index.vue b/packages/extension/src/ui/action/views/verify-transaction/index.vue index f4ab47181..4bde705ce 100644 --- a/packages/extension/src/ui/action/views/verify-transaction/index.vue +++ b/packages/extension/src/ui/action/views/verify-transaction/index.vue @@ -16,6 +16,20 @@ v-show="!!selectedNetwork" :network="selectedNetwork" > + + + + +
@@ -27,6 +41,8 @@
+ + @@ -42,9 +58,14 @@ import { useRoute, useRouter } from "vue-router"; import CloseIcon from "@action/icons/common/close-icon.vue"; import BaseButton from "@action/components/base-button/index.vue"; import VerifyTransactionNetwork from "./components/verify-transaction-network.vue"; +import VerifyTransactionAccount from "./components/verify-transaction-account.vue"; +import VerifyTransactionAmount from "./components/verify-transaction-amount.vue"; +import VerifyTransactionFee from "./components/verify-transaction-fee.vue"; +import SendProcess from "@action/views/send-process/index.vue"; import TabState from "@/libs/tab-state"; import { NodeType } from "@/types/provider"; import { getAllNetworks } from "@/libs/utils/networks"; +import { ethereum, recommendedFee } from "@action/types/mock"; const tabstate = new TabState(); const route = useRoute(); @@ -53,6 +74,7 @@ const networks: NodeType[] = getAllNetworks(); const selected: string = route.params.id as string; let selectedNetwork = ref(undefined); +let isProcessing = ref(false); defineExpose({ selectedNetwork }); onMounted(async () => { @@ -69,7 +91,15 @@ const close = () => { }; const sendAction = () => { - console.log("sendAction"); + isProcessing.value = true; + + setTimeout(() => { + isProcessing.value = false; + }, 4000); + + setTimeout(() => { + router.go(-2); + }, 4500); }; From 74dbaf78b8aec85cbc808e6022822395aca16340 Mon Sep 17 00:00:00 2001 From: Mihail Polev Date: Mon, 25 Apr 2022 21:44:10 +0700 Subject: [PATCH 5/5] =?UTF-8?q?devop:=20=F0=9F=94=A7=20fix=20and=20update?= =?UTF-8?q?=20UI=20to=20actual=20design?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/extension/src/ui/action/App.vue | 35 +++-- .../components/header-accounts.vue | 4 + .../app-menu/components/app-menu-item.vue | 12 +- .../ui/action/components/app-menu/index.vue | 8 + .../action/components/base-search/index.vue | 58 ++++++- .../components/base-select-option.vue | 58 +++++++ .../action/components/base-select/index.vue | 142 ++++++++++++++++++ .../components/phrase-checkbox/index.vue | 4 +- .../src/ui/action/icons/common/clear-icon.vue | 23 +++ .../src/ui/action/icons/common/info-icon.vue | 6 +- .../ui/action/icons/common/right-arrow.vue | 20 +++ .../ui/action/icons/header/external-icon.vue | 25 +++ .../extension/src/ui/action/styles/color.less | 1 + .../components/accounts-list-item.vue | 14 +- .../accounts/components/add-account-form.vue | 6 +- .../src/ui/action/views/accounts/index.vue | 22 ++- .../components/add-network-header.vue | 51 +++---- .../components/add-network-item.vue | 3 +- .../components/add-network-search.vue | 65 ++++++++ .../src/ui/action/views/add-network/index.vue | 109 ++++++++++---- .../src/ui/action/views/deposit/index.vue | 35 +++-- .../network-activity-transaction.vue | 6 +- .../settings/components/settings-button.vue | 99 ++++++++++++ .../settings/components/settings-header.vue | 62 ++++++++ .../src/ui/action/views/settings/index.vue | 107 +++++++++++++ 25 files changed, 859 insertions(+), 116 deletions(-) create mode 100644 packages/extension/src/ui/action/components/base-select/components/base-select-option.vue create mode 100644 packages/extension/src/ui/action/components/base-select/index.vue create mode 100644 packages/extension/src/ui/action/icons/common/clear-icon.vue create mode 100644 packages/extension/src/ui/action/icons/common/right-arrow.vue create mode 100644 packages/extension/src/ui/action/icons/header/external-icon.vue create mode 100644 packages/extension/src/ui/action/views/add-network/components/add-network-search.vue create mode 100644 packages/extension/src/ui/action/views/settings/components/settings-button.vue create mode 100644 packages/extension/src/ui/action/views/settings/components/settings-header.vue create mode 100644 packages/extension/src/ui/action/views/settings/index.vue diff --git a/packages/extension/src/ui/action/App.vue b/packages/extension/src/ui/action/App.vue index 8fc9ee6ef..15dc35e8b 100644 --- a/packages/extension/src/ui/action/App.vue +++ b/packages/extension/src/ui/action/App.vue @@ -2,7 +2,7 @@
+ + + +
@@ -72,6 +72,8 @@ import LogoMin from "./icons/common/logo-min.vue"; import AddIcon from "./icons/common/add-icon.vue"; import SettingsIcon from "./icons/common/settings-icon.vue"; import HoldIcon from "./icons/common/hold-icon.vue"; +import AddNetwork from "./views/add-network/index.vue"; +import Settings from "./views/settings/index.vue"; import { useRouter, useRoute } from "vue-router"; import { WindowPromise } from "@/libs/window-promise"; import { NodeType } from "@/types/provider"; @@ -104,6 +106,8 @@ const defaultNetwork = networks.find( ) as NodeType; const currentNetwork = ref(defaultNetwork); const kr = new PublicKeyRing(); +const addNetworkShow = ref(false); +const settingsShow = ref(false); onMounted(async () => { const curNetwork = await tabstate.getSelectedNetWork(); @@ -165,8 +169,11 @@ const setNetwork = async (network: NodeType) => { } } }; -const addNetwork = () => { - router.push({ name: "add-network" }); +const addNetworkToggle = () => { + addNetworkShow.value = !addNetworkShow.value; +}; +const settingsToggle = () => { + settingsShow.value = !settingsShow.value; }; const onSelectedAddressChanged = async (newAccount: KeyRecord) => { accountHeaderData.value.selectedAccount = newAccount; @@ -199,6 +206,10 @@ const showNetworkMenu = () => { route.name == "dapps") ); }; + +const searchInput = (text: string) => { + console.log(text); +}; diff --git a/packages/extension/src/ui/action/components/app-menu/index.vue b/packages/extension/src/ui/action/components/app-menu/index.vue index e4bc16ef7..e07e16464 100644 --- a/packages/extension/src/ui/action/components/app-menu/index.vue +++ b/packages/extension/src/ui/action/components/app-menu/index.vue @@ -52,6 +52,14 @@ defineProps({ margin: auto; width: 100%; max-height: 400px; + + &.ps--active-y { + padding-right: 0 !important; + } + + .ps__rail-y { + right: 4px !important; + } } } diff --git a/packages/extension/src/ui/action/components/base-search/index.vue b/packages/extension/src/ui/action/components/base-search/index.vue index 359e32e20..3c84bfca2 100644 --- a/packages/extension/src/ui/action/components/base-search/index.vue +++ b/packages/extension/src/ui/action/components/base-search/index.vue @@ -1,13 +1,19 @@ @@ -18,36 +24,68 @@ export default { diff --git a/packages/extension/src/ui/action/components/base-select/components/base-select-option.vue b/packages/extension/src/ui/action/components/base-select/components/base-select-option.vue new file mode 100644 index 000000000..78f809958 --- /dev/null +++ b/packages/extension/src/ui/action/components/base-select/components/base-select-option.vue @@ -0,0 +1,58 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/components/base-select/index.vue b/packages/extension/src/ui/action/components/base-select/index.vue new file mode 100644 index 000000000..a2edc9a59 --- /dev/null +++ b/packages/extension/src/ui/action/components/base-select/index.vue @@ -0,0 +1,142 @@ + + + + + + + diff --git a/packages/extension/src/ui/action/components/phrase-checkbox/index.vue b/packages/extension/src/ui/action/components/phrase-checkbox/index.vue index 96753807f..4f0ebe025 100644 --- a/packages/extension/src/ui/action/components/phrase-checkbox/index.vue +++ b/packages/extension/src/ui/action/components/phrase-checkbox/index.vue @@ -1,7 +1,7 @@