diff options
| author | Shpuld Shpuldson <shp@cock.li> | 2020-07-02 18:03:02 +0300 |
|---|---|---|
| committer | Shpuld Shpuldson <shp@cock.li> | 2020-07-02 18:03:02 +0300 |
| commit | 961099d34a3852d1019a00d390ad638fe45118e4 (patch) | |
| tree | db8604d447f544f70d9f1045d44dafe1b4afa1ca /src/components/timeline_menu | |
| parent | e1cf6bd41ced8f1d85dde6ba557ca6ea28bd6028 (diff) | |
basic version done, needs cleanup from nav panel styles
Diffstat (limited to 'src/components/timeline_menu')
| -rw-r--r-- | src/components/timeline_menu/timeline_menu.js | 30 | ||||
| -rw-r--r-- | src/components/timeline_menu/timeline_menu.vue | 62 |
2 files changed, 92 insertions, 0 deletions
diff --git a/src/components/timeline_menu/timeline_menu.js b/src/components/timeline_menu/timeline_menu.js new file mode 100644 index 00000000..912dd79a --- /dev/null +++ b/src/components/timeline_menu/timeline_menu.js @@ -0,0 +1,30 @@ +import Popover from '../popover/popover.vue' +import { mapState } from 'vuex' + +const TimelineMenu = { + components: { + Popover + }, + created () { + if (this.currentUser && this.currentUser.locked) { + this.$store.dispatch('startFetchingFollowRequests') + } + }, + computed: { + ...mapState({ + currentUser: state => state.users.currentUser, + privateMode: state => state.instance.private, + federating: state => state.instance.federating + }), + timelineNamesForRoute () { + return { + 'friends': this.$t('nav.timeline'), + 'dms': this.$t('nav.dms'), + 'public-timeline': this.$t('nav.public_tl'), + 'public-external-timeline': this.$t('nav.twkn') + } + } + } +} + +export default TimelineMenu diff --git a/src/components/timeline_menu/timeline_menu.vue b/src/components/timeline_menu/timeline_menu.vue new file mode 100644 index 00000000..dfdf7180 --- /dev/null +++ b/src/components/timeline_menu/timeline_menu.vue @@ -0,0 +1,62 @@ +<template> + <Popover + trigger="click" + class="timeline-menu" + popover-class="nav-panel timeline-menu-popover" + > + <div slot="content"> + <ul> + <li v-if="currentUser"> + <router-link :to="{ name: 'friends' }"> + <i class="button-icon icon-home-2" /> {{ $t("nav.timeline") }} + </router-link> + </li> + <li v-if="currentUser"> + <router-link :to="{ name: 'dms', params: { username: currentUser.screen_name } }"> + <i class="button-icon icon-mail-alt" /> {{ $t("nav.dms") }} + </router-link> + </li> + <li v-if="currentUser || !privateMode"> + <router-link :to="{ name: 'public-timeline' }"> + <i class="button-icon icon-users" /> {{ $t("nav.public_tl") }} + </router-link> + </li> + <li v-if="federating && (currentUser || !privateMode)"> + <router-link :to="{ name: 'public-external-timeline' }"> + <i class="button-icon icon-globe" /> {{ $t("nav.twkn") }} + </router-link> + </li> + </ul> + </div> + <div + slot="trigger" + class="title timeline-menu-title" + > + {{ timelineNamesForRoute[$route.name] }} + <i class="icon-down-open" /> + </div> + </Popover> +</template> + +<script src="./timeline_menu.js" ></script> + +<style lang="scss"> +@import '../../_variables.scss'; + +.timeline-menu { + flex-grow: 1; + .timeline-menu-popover { + width: 20rem; + font-size: 1rem; + margin-left: -0.6em; + margin-top: 0.6em; + } + + .timeline-menu-title { + flex-grow: 0; + width: 20rem; + margin: 0; + } +} + +</style> |
