add page navigation
This commit is contained in:
58
docs/src/components/PageNavigation/index.vue
Normal file
58
docs/src/components/PageNavigation/index.vue
Normal file
@@ -0,0 +1,58 @@
|
||||
<template>
|
||||
<nav class="page-navigation">
|
||||
<div class="page-navigation__previous">
|
||||
<g-link
|
||||
class="page-navigation__link"
|
||||
exact
|
||||
:to="previousPage.link"
|
||||
v-if="previousPage"
|
||||
>
|
||||
← {{ previousPage.title }}
|
||||
</g-link>
|
||||
</div>
|
||||
<div class="page-navigation__next">
|
||||
<g-link
|
||||
class="page-navigation__link"
|
||||
exact
|
||||
:to="nextPage.link"
|
||||
v-if="nextPage"
|
||||
>
|
||||
{{ nextPage.title }} →
|
||||
</g-link>
|
||||
</div>
|
||||
</nav>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import linkGroups from '@/data/links.yaml'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
linkGroups,
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
items() {
|
||||
return this.linkGroups.reduce((acc, group) => (acc.push(...group.items), acc), [])
|
||||
},
|
||||
|
||||
currentIndex() {
|
||||
return this.items.findIndex(item => {
|
||||
return item.link.replace(/\/$/, '') === this.$route.path.replace(/\/$/, '')
|
||||
})
|
||||
},
|
||||
|
||||
nextPage() {
|
||||
return this.items[this.currentIndex + 1]
|
||||
},
|
||||
|
||||
previousPage() {
|
||||
return this.items[this.currentIndex - 1]
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" src="./style.scss" scoped></style>
|
||||
5
docs/src/components/PageNavigation/style.scss
Normal file
5
docs/src/components/PageNavigation/style.scss
Normal file
@@ -0,0 +1,5 @@
|
||||
.page-navigation {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 3rem 0;
|
||||
}
|
||||
Reference in New Issue
Block a user