|
|
<template lang='pug'> v-toolbar(color='black', dark, app, clipped-left, fixed, flat, dense) v-menu(open-on-hover, offset-y, bottom, left, nudge-top='-18', min-width='250') v-toolbar-side-icon(slot='activator') v-icon view_module v-list(dense).py-0 v-list-tile(avatar, href='/') v-list-tile-avatar: v-icon(color='blue') home v-list-tile-content Home v-list-tile(avatar, @click='') v-list-tile-avatar: v-icon(color='green') add_box v-list-tile-content New Page v-divider.my-0 v-subheader Current Page v-list-tile(avatar, @click='') v-list-tile-avatar: v-icon(color='indigo') edit v-list-tile-content Edit v-list-tile(avatar, @click='') v-list-tile-avatar: v-icon(color='indigo') history v-list-tile-content History v-list-tile(avatar, @click='') v-list-tile-avatar: v-icon(color='indigo') code v-list-tile-content View Source v-list-tile(avatar, @click='') v-list-tile-avatar: v-icon(color='indigo') forward v-list-tile-content Move / Rename v-list-tile(avatar, @click='') v-list-tile-avatar: v-icon(color='red darken-2') delete v-list-tile-content Delete v-divider.my-0 v-subheader Assets v-list-tile(avatar, @click='') v-list-tile-avatar: v-icon(color='blue-grey') burst_mode v-list-tile-content Images & Files v-toolbar-title span.subheading {{title}} v-spacer transition(name='navHeaderSearch') v-text-field( ref='searchField', v-if='searchIsShown', v-model='search', clearable, color='blue', label='Search...', single-line, hide-details, append-icon='search', :append-icon-cb='searchEnter', :loading='searchIsLoading', @keyup.enter='searchEnter', @keyup.esc='searchToggle' ) v-progress-linear( indeterminate, slot='progress', height='2', color='blue' ) v-spacer v-progress-circular.mr-3(indeterminate, color='blue', :size='22', :width='2' v-show='isLoading') slot(name='actions') transition(name='navHeaderSearch') v-btn(icon, @click='searchToggle', v-if='!searchIsShown') v-icon(color='grey') search v-btn(icon, href='/a') v-icon(color='grey') settings v-menu(offset-y, min-width='300') v-btn(icon, slot='activator') v-icon(color='grey') account_circle v-list.py-0 v-list-tile.py-3(avatar) v-list-tile-avatar v-avatar.red(:size='40'): span.white--text.subheading JD v-list-tile-content v-list-tile-title John Doe v-list-tile-sub-title john.doe@example.com v-divider.my-0 v-list-tile(href='/p') v-list-tile-action: v-icon(color='red') person v-list-tile-title Profile v-list-tile(href='/logout') v-list-tile-action: v-icon(color='red') exit_to_app v-list-tile-title Logout </template>
<script> import { mapGetters } from 'vuex'
/* global siteConfig */
export default { data() { return { menuIsShown: true, searchIsLoading: false, searchIsShown: false, search: '' } }, computed: { ...mapGetters(['isLoading']), title() { return siteConfig.title } }, methods: { searchToggle() { this.searchIsLoading = false this.searchIsShown = !this.searchIsShown if (this.searchIsShown) { this.$nextTick(() => { this.$refs.searchField.focus() }) } }, searchEnter() { this.searchIsLoading = true } } } </script>
<style lang='scss'> .navHeaderSearch { &-enter-active, &-leave-active { transition: opacity .25s ease, transform .25s ease; opacity: 1; } &-enter-active { transition-delay: .25s; } &-enter, &-leave-to { opacity: 0; transform: translateY(-25px); } } </style>
|