diff --git a/webapp/components/AvatarMenu/AvatarMenu.vue b/webapp/components/AvatarMenu/AvatarMenu.vue
new file mode 100644
index 000000000..96d26f210
--- /dev/null
+++ b/webapp/components/AvatarMenu/AvatarMenu.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
diff --git a/webapp/layouts/default.vue b/webapp/layouts/default.vue
index 35af4d25f..091bfb7c8 100644
--- a/webapp/layouts/default.vue
+++ b/webapp/layouts/default.vue
@@ -71,52 +71,7 @@
-
+
@@ -144,21 +99,19 @@ import LocaleSwitch from '~/components/LocaleSwitch/LocaleSwitch'
import SearchInput from '~/components/SearchInput.vue'
import Modal from '~/components/Modal'
import NotificationMenu from '~/components/notifications/NotificationMenu/NotificationMenu'
-import Dropdown from '~/components/Dropdown'
-import HcAvatar from '~/components/Avatar/Avatar.vue'
import seo from '~/mixins/seo'
import FilterPosts from '~/components/FilterPosts/FilterPosts.vue'
import CategoryQuery from '~/graphql/CategoryQuery.js'
import PageFooter from '~/components/PageFooter/PageFooter'
+import AvatarMenu from '~/components/AvatarMenu/AvatarMenu'
export default {
components: {
- Dropdown,
LocaleSwitch,
SearchInput,
Modal,
NotificationMenu,
- HcAvatar,
+ AvatarMenu,
FilterPosts,
PageFooter,
},
@@ -172,49 +125,10 @@ export default {
},
computed: {
...mapGetters({
- user: 'auth/user',
isLoggedIn: 'auth/isLoggedIn',
- isModerator: 'auth/isModerator',
- isAdmin: 'auth/isAdmin',
quickSearchResults: 'search/quickResults',
quickSearchPending: 'search/quickPending',
}),
- userName() {
- const { name } = this.user || {}
- return name || this.$t('profile.userAnonym')
- },
- routes() {
- if (!this.user.slug) {
- return []
- }
- let routes = [
- {
- name: this.$t('profile.name'),
- path: `/profile/${this.user.slug}`,
- icon: 'user',
- },
- {
- name: this.$t('settings.name'),
- path: `/settings`,
- icon: 'cogs',
- },
- ]
- if (this.isModerator) {
- routes.push({
- name: this.$t('moderation.name'),
- path: `/moderation`,
- icon: 'balance-scale',
- })
- }
- if (this.isAdmin) {
- routes.push({
- name: this.$t('admin.name'),
- path: `/admin`,
- icon: 'shield',
- })
- }
- return routes
- },
showFilterPostsDropdown() {
const [firstRoute] = this.$route.matched
return firstRoute && firstRoute.name === 'index'
@@ -239,13 +153,6 @@ export default {
})
})
},
- matcher(url, route) {
- if (url.indexOf('/profile') === 0) {
- // do only match own profile
- return this.$route.path === url
- }
- return this.$route.path.indexOf(url) === 0
- },
toggleMobileMenuView() {
this.toggleMobileMenu = !this.toggleMobileMenu
},
@@ -289,45 +196,6 @@ export default {
.main-navigation-right .desktop-view {
float: right;
}
-.avatar-menu {
- margin: 2px 0px 0px 5px;
-}
-.avatar-menu-trigger {
- user-select: none;
- display: flex;
- align-items: center;
- padding-left: $space-xx-small;
-}
-.avatar-menu-popover {
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
- hr {
- color: $color-neutral-90;
- background-color: $color-neutral-90;
- }
- .logout-link {
- margin-left: -$space-small;
- margin-right: -$space-small;
- margin-top: -$space-xxx-small;
- margin-bottom: -$space-x-small;
- padding: $space-x-small $space-small;
- // subtract menu border with from padding
- padding-left: $space-small - 2;
- color: $text-color-base;
- &:hover {
- color: $text-color-link-active;
- }
- }
- nav {
- margin-left: -$space-small;
- margin-right: -$space-small;
- margin-top: -$space-xx-small;
- margin-bottom: -$space-xx-small;
- a {
- padding-left: 12px;
- }
- }
-}
@media only screen and (min-width: 960px) {
.mobile-hamburger-menu {
display: none;