Breadcrumb navigation links

Make it possible to use `route.params` inside the breadcrumb.
Use it to link to `/:chain/staking` and `/:chain/blocks`.
This commit is contained in:
Andre Miras 2022-11-30 20:14:34 +01:00
parent 9a39d87c3f
commit d4d058b9cd
2 changed files with 15 additions and 7 deletions

View File

@ -31,7 +31,7 @@
{{ chainname }}
</b-breadcrumb-item>
<b-breadcrumb-item
v-for="item in $route.meta.breadcrumb"
v-for="item in breadcrumb"
:key="item.text"
:active="item.active"
:to="item.to"
@ -75,6 +75,14 @@ export default {
chainname() {
return this.$store?.state?.chains?.selected?.chain_name
},
/**
* Invoke `route.meta.breadcrumb($route)` if breadcrumb is callable.
*/
breadcrumb() {
const { breadcrumb } = this.$route.meta
const breadcrumbIsCallable = typeof breadcrumb === 'function'
return breadcrumbIsCallable ? breadcrumb(this.$route) : breadcrumb
},
},
}
</script>

View File

@ -249,16 +249,16 @@ const router = new VueRouter({
component: () => import('@/views/StakingValidator.vue'),
meta: {
pageTitle: 'Staking Validator',
breadcrumb: [
breadcrumb: route => ([
{
text: 'Staking',
active: true,
to: `/${route.params.chain}/staking`,
},
{
text: 'Validator',
active: true,
},
],
]),
},
},
{
@ -317,16 +317,16 @@ const router = new VueRouter({
component: () => import('@/views/Block.vue'),
meta: {
pageTitle: 'Block',
breadcrumb: [
breadcrumb: route => ([
{
text: 'Blocks',
active: true,
to: `/${route.params.chain}/blocks`,
},
{
text: 'Block',
active: true,
},
],
]),
},
},
{