Skip to content

Commit

Permalink
feat: added router transitions and lazy loading routes / fixed accoun…
Browse files Browse the repository at this point in the history
…t swap filter to have same address
  • Loading branch information
bradleySuira committed Dec 7, 2022
1 parent 2f1dd27 commit 5d74343
Show file tree
Hide file tree
Showing 17 changed files with 503 additions and 126 deletions.
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"build:staging": "vue-cli-service build --mode staging",
"clean": "rm -rf node_modules",
"dev": "vue-cli-service build --mode development --watch",
"dev:tools": "vue-devtools & vue-cli-service build --mode development --watch",
"jest": "jest",
"postinstall": "husky install",
"sync-versions": "node script/sync-versions.js",
Expand All @@ -18,7 +19,8 @@
"test:mainnet:prodagent": "NODE_ENV=mainnet NODE_AGENT=prodagent node_modules/mocha/bin/mocha --grep 'MAINNET'",
"test:mainnet:prodagent:release": "NODE_ENV=mainnet NODE_AGENT=prodagent node_modules/mocha/bin/mocha --grep 'MAINNET_RELEASE'",
"test:pullrequest": "node_modules/mocha/bin/mocha --grep 'PULL_REQUEST_TEST'",
"test-full-regression": "node_modules/mocha/bin/mocha"
"test-full-regression": "node_modules/mocha/bin/mocha",
"devtools": "node_modules/.bin/vue-devtools"
},
"dependencies": {
"@liquality/cryptoassets": "2.1.0-next.2",
Expand Down Expand Up @@ -76,6 +78,7 @@
"@vue/cli-plugin-unit-jest": "^4.5.8",
"@vue/cli-plugin-vuex": "4.5.15",
"@vue/cli-service": "4.5.15",
"@vue/devtools": "^6.4.5",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/test-utils": "1.3.3",
"babel-eslint": "^10.1.0",
Expand Down
21 changes: 10 additions & 11 deletions src/App.vue
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
<template>
<Lazy id="app">
<div id="app">
<template v-if="brokerReady && localesLoaded">
<Head v-if="unlockedAt" :show-dapp-connections="showDappConnections" />
<Lazy>
<template v-if="unlockedAt && termsAcceptedAt">
<Head :show-dapp-connections="showDappConnections" />
<GlobalModals />
</template>
<transition name="fade" mode="out-in">
<router-view />
</Lazy>
<GlobalModals v-if="unlockedAt && termsAcceptedAt" />
</transition>
</template>
<div class="login-wrapper spinner-container" v-else>
<SpinnerIcon class="btn-loading" />
</div>
</Lazy>
</div>
</template>

<script>
import { mapState, mapActions } from 'vuex'
import Head from '@/components/Head.vue'
import Lazy from '@/components/Lazy.vue'
import GlobalModals from '@/components/GlobalModals.vue'
import SpinnerIcon from '@/assets/icons/spinner.svg'
export default {
components: {
Lazy,
Head,
GlobalModals,
GlobalModals: () => import('@/components/GlobalModals.vue'),
SpinnerIcon
},
data() {
Expand Down Expand Up @@ -54,7 +53,7 @@ export default {
...mapActions(['initializeAnalytics']),
...mapActions('app', ['setLocalePreference', 'getBrowserLocale', 'setWhatsNewModalContent'])
},
async created() {
async mounted() {
this.initializeAnalytics()
if (this.locale) {
await this.changeLocale(this.locale)
Expand Down
9 changes: 9 additions & 0 deletions src/assets/scss/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -981,3 +981,12 @@ svg.qr-icon {
.custom-control-input:checked ~ .custom-control-label::after {
background-image: none !important;
}

.fade-enter-active,
.fade-leave-active {
transition: opacity 0.1s ease;
}
.fade-enter-from,
.fade-leave-to {
opacity: 0;
}
6 changes: 2 additions & 4 deletions src/components/GlobalModals.vue
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
<template>
<Lazy>
<div>
<AnalyticsOptInModal />
<WhatsNewModal />
<BuyCryptoModal />
<BuyCryptoOverviewModal />
</Lazy>
</div>
</template>

<script>
import AnalyticsOptInModal from '@/components/AnalyticsOptInModal.vue'
import WhatsNewModal from '@/components/WhatsNewModal.vue'
import BuyCryptoModal from '@/components/BuyCrypto/BuyCryptoModal.vue'
import BuyCryptoOverviewModal from '@/components/BuyCrypto/BuyCryptoOverviewModal.vue'
import Lazy from '@/components/Lazy.vue'
export default {
components: {
Lazy,
AnalyticsOptInModal,
WhatsNewModal,
BuyCryptoModal,
Expand Down
16 changes: 8 additions & 8 deletions src/components/Head.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<template>
<Lazy class="head">
<div class="head">
<router-link to="/wallet" class="head_logo ml-3" id="wallet_header_logo">
<LogoIcon />
</router-link>
Expand Down Expand Up @@ -29,7 +29,7 @@
class="head_connection-drawer"
v-click-away="hideConnectionDrawer"
/>
</Lazy>
</div>
</template>

<script>
Expand All @@ -42,14 +42,12 @@ import ChevronDownIcon from '@/assets/icons/chevron_down.svg'
import ConnectionDisconnected from '@/assets/icons/connection_disconnected.svg'
import ConnectionConnected from '@/assets/icons/connection_connected.svg'
import ConnectionDrawer from '@/components/ConnectionDrawer.vue'
import Lazy from '@/components/Lazy.vue'
export default {
directives: {
clickAway
},
components: {
Lazy,
ChevronUpIcon,
ChevronDownIcon,
LogoIcon,
Expand Down Expand Up @@ -82,6 +80,7 @@ export default {
},
methods: {
...mapActions(['changeActiveNetwork']),
...mapActions('app', ['settingsModalOpen']),
toggleShowNetworks() {
this.showNetworks = !this.showNetworks
if (this.showNetworks) {
Expand All @@ -96,19 +95,20 @@ export default {
if (this.showConnectionDrawer) {
this.showNetworks = false
}
this.settingsModalOpen(false)
},
hideConnectionDrawer() {
this.showConnectionDrawer = false
},
async switchNetwork(network) {
await this.changeActiveNetwork({ network })
switchNetwork(network) {
this.changeActiveNetwork({ network })
if (this.$route.name !== 'WalletAssets') {
await this.$router.replace({ name: 'WalletAssets' })
this.$router.replace({ name: 'WalletAssets' })
}
this.showNetworks = false
}
},
created() {
mounted() {
if (this.showDappConnections) {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
if (tabs.length > 0) {
Expand Down
20 changes: 0 additions & 20 deletions src/components/Lazy.vue

This file was deleted.

7 changes: 3 additions & 4 deletions src/components/NavBar.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<template>
<Lazy>
<div>
<div class="navbar">
<router-link
v-if="showBack"
Expand Down Expand Up @@ -61,7 +61,7 @@
</li>
</ul>
</div>
</Lazy>
</div>
</template>

<script>
Expand All @@ -79,14 +79,12 @@ import LedgerIcon from '@/assets/icons/ledger_menu_icon.svg'
import KeyIcon from '@/assets/icons/key.svg'
import { ChainId } from '@liquality/cryptoassets'
import { version as walletVersion } from '../../package.json'
import Lazy from '@/components/Lazy.vue'
export default {
directives: {
clickAway
},
components: {
Lazy,
ChevronLeftIcon,
HamburgerIcon,
LockIcon,
Expand Down Expand Up @@ -115,6 +113,7 @@ export default {
},
computed: {
...mapState(['experiments', 'activeNetwork']),
...mapGetters('app', ['isSettingsModalOpen']),
...mapGetters(['accountItem']),
account() {
if (this.$route.params.accountId) {
Expand Down
5 changes: 5 additions & 0 deletions src/main.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import devtools from '@vue/devtools'
import Vue from 'vue'
import App from './App.vue'
import store from './store'
Expand All @@ -18,3 +19,7 @@ new Vue({
store,
render: (h) => h(App)
}).$mount('#app')

if (process.env.NODE_ENV === 'development') {
devtools.connect()
}
10 changes: 5 additions & 5 deletions src/router/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,22 +74,22 @@ const routes = [
{
path: '/wallet',
name: 'Wallet',
component: () => import('@/views/Wallet/Wallet.vue'),
component: () => import(/* webpackPrefetch: true */ '@/views/Wallet/Wallet.vue'),
meta: { protect: true },
children: [
{
path: 'assets',
component: () => import('@/views/Wallet/WalletAssets.vue'),
component: () => import(/* webpackPrefetch: true */ '@/views/Wallet/WalletAssets.vue'),
name: 'WalletAssets'
},
{
path: 'activity',
component: () => import('@/views/Wallet/WalletActivity.vue'),
component: () => import(/* webpackPrefetch: true */ '@/views/Wallet/WalletActivity.vue'),
name: 'WalletActivity'
},
{
path: 'nfts',
component: () => import('@/views/Wallet/WalletNFTs.vue'),
component: () => import(/* webpackPrefetch: true */ '@/views/Wallet/WalletNFTs.vue'),
name: 'WalletNFTs'
},
{
Expand Down Expand Up @@ -146,7 +146,7 @@ const routes = [
// Accounts
{
path: '/accounts/management',
component: import('@/views/Accounts/Manage.vue'),
component: () => import('@/views/Accounts/Manage.vue'),
name: 'ManageAccounts',
props: true,
meta: { protect: true }
Expand Down
15 changes: 12 additions & 3 deletions src/views/Splash.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<div class="splash_tagline">
<NewWalletText class="mt-4" />
</div>
<div class="footer-container">
<div class="footer-container" v-if="showFooter">
<router-link :to="{ path: '/onboarding/home', query: { isImport: true } }"
><p class="text-center" id="import_with_seed_phrase_option">
{{ $t('pages.splash.importWithSeedPhrase') }}
Expand All @@ -19,7 +19,7 @@
</button></router-link
>
</p>
<p v-if="!keyUpdatedAt">
<p v-else>
<router-link
:to="{
path: termsAcceptedAt ? '/onboarding/setup' : '/onboarding/home',
Expand All @@ -45,11 +45,20 @@ export default {
NewWalletText
},
computed: mapState(['keyUpdatedAt', 'termsAcceptedAt', 'unlockedAt']),
async created() {
data() {
return {
showFooter: false
}
},
mounted() {
if (this.unlockedAt) {
this.$router.replace('/wallet')
} else if (this.keyUpdatedAt) {
this.$router.replace('/open')
} else {
this.$nextTick(() => {
this.showFooter = true
})
}
}
}
Expand Down
39 changes: 19 additions & 20 deletions src/views/Swap/Accounts.vue
Original file line number Diff line number Diff line change
Expand Up @@ -35,39 +35,38 @@ import { isEvmChain } from '@liquality/cryptoassets'
export default {
computed: {
props: {
account: Object,
toAccount: Object,
assetSelection: String,
excludeAsset: String
},
...mapState(['activeNetwork']),
...mapGetters(['accountsData', 'accountsWithBalance', 'chainAssets']),
accounts() {
return (this.assetSelection === 'from' ? this.accountsWithBalance : this.accountsData).map(
(acc) => {
return (this.assetSelection === 'from' ? this.accountsWithBalance : this.accountsData)
.filter((acc) => {
if (isEvmChain(this.activeNetwork, acc.chain)) {
const _account = this.assetSelection === 'to' ? this.account : this.toAccount
if (_account) {
return _account.addresses[0] === acc.addresses[0] && acc.assets?.length > 0
}
}
return acc.assets?.length > 0
})
.map((acc) => {
const assets = this.chainAssets[acc.chain].filter((asset) => asset !== this.excludeAsset)
return {
...acc,
assets
}.filter((acc) => {
if (isEvmChain(this.activeNetwork, acc.chain)) {
const _account = this.assetSelection === 'from' ? this.account : this.toAccount
if (_account) {
return _account.addresses[0] === acc.addresses[0] && acc.assets?.length > 0
}
}
return acc.assets?.length > 0
})
}
)
}
})
}
},
components: {
WalletAccounts,
SearchIcon
},
props: ['excludeAsset', 'assetSelection'],
props: {
account: Object,
toAccount: Object,
assetSelection: String,
excludeAsset: String
},
data() {
return {
search: ''
Expand Down
2 changes: 1 addition & 1 deletion src/views/Swap/Swap.vue
Original file line number Diff line number Diff line change
Expand Up @@ -538,10 +538,10 @@ import ArrowDown from '@/assets/icons/arrow-down.svg'
import DetailsContainer from '@/components/DetailsContainer'
import SendInput from './SendInput'
import ReceiveInput from './ReceiveInput'
import Accounts from './Accounts'
import QuotesModal from './QuotesModal'
import SwapProvidersInfoModal from './SwapProvidersInfoModal'
import SwapInfo from './SwapInfo'
import Accounts from './Accounts'
import SwapProviderLabel from '@/components/SwapProviderLabel'
import LedgerSignRequestModal from '@/components/LedgerSignRequestModal'
import OperationErrorModal from '@/components/OperationErrorModal'
Expand Down
Loading

0 comments on commit 5d74343

Please sign in to comment.