feat(mobile-navigation-improvements): Complete US-213 - Actualizare Hamburger Menu în toate paginile
Implemented by Ralph autonomous loop. Iteration: 10 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
:selection-active="mobileSelectionMode"
|
||||
:actions="mobileTopBarActions"
|
||||
@back-click="exitMobileSelectionMode"
|
||||
@menu-click="toggleMobileMenu"
|
||||
@menu-click="showDrawer = true"
|
||||
@action-click="handleTopBarAction"
|
||||
/>
|
||||
|
||||
@@ -128,28 +128,12 @@
|
||||
<!-- Mobile More Menu -->
|
||||
<Menu ref="moreMenuRef" :model="moreMenuItems" :popup="true" />
|
||||
|
||||
<!-- Mobile Hamburger Menu -->
|
||||
<Sidebar v-model:visible="mobileMenuVisible" position="left" class="mobile-sidebar">
|
||||
<template #header>
|
||||
<div class="sidebar-header">
|
||||
<span class="sidebar-title">ROA2WEB</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="sidebar-menu">
|
||||
<router-link to="/data-entry" class="sidebar-item active">
|
||||
<i class="pi pi-receipt"></i>
|
||||
<span>Bonuri</span>
|
||||
</router-link>
|
||||
<router-link to="/reports/dashboard" class="sidebar-item">
|
||||
<i class="pi pi-chart-bar"></i>
|
||||
<span>Rapoarte</span>
|
||||
</router-link>
|
||||
<router-link to="/settings" class="sidebar-item">
|
||||
<i class="pi pi-cog"></i>
|
||||
<span>Setări</span>
|
||||
</router-link>
|
||||
</div>
|
||||
</Sidebar>
|
||||
<!-- Mobile Drawer Menu (replaces old Sidebar) -->
|
||||
<MobileDrawerMenu
|
||||
v-model="showDrawer"
|
||||
:user="authStore.user"
|
||||
@logout="handleLogout"
|
||||
/>
|
||||
|
||||
<!-- Main Card -->
|
||||
<!-- Page Header (centered, no icon) - Desktop only -->
|
||||
@@ -971,14 +955,14 @@ import { useRouter } from 'vue-router'
|
||||
import { useToast } from 'primevue/usetoast'
|
||||
import { useConfirm } from 'primevue/useconfirm'
|
||||
import { useReceiptsStore } from '@data-entry/stores/receiptsStore'
|
||||
import { useCompanyStore } from '@data-entry/stores/sharedStores'
|
||||
import { useCompanyStore, useAuthStore } from '@data-entry/stores/sharedStores'
|
||||
import { useBatchProgressStore } from '@data-entry/stores/batchProgressStore'
|
||||
import Menu from 'primevue/menu'
|
||||
import Dialog from 'primevue/dialog'
|
||||
import Textarea from 'primevue/textarea'
|
||||
import Dropdown from 'primevue/dropdown'
|
||||
import Checkbox from 'primevue/checkbox'
|
||||
import Sidebar from 'primevue/sidebar' // US-040: Mobile hamburger menu
|
||||
import MobileDrawerMenu from '@shared/components/mobile/MobileDrawerMenu.vue'
|
||||
import DragDropOverlay from '@data-entry/components/bulk/DragDropOverlay.vue'
|
||||
// US-103: Mobile Material Design common components
|
||||
import MobileTopBar from '@shared/components/mobile/MobileTopBar.vue'
|
||||
@@ -996,6 +980,7 @@ const confirm = useConfirm()
|
||||
const store = useReceiptsStore()
|
||||
const companyStore = useCompanyStore()
|
||||
const batchProgressStore = useBatchProgressStore()
|
||||
const authStore = useAuthStore()
|
||||
|
||||
// Rejection dialog state
|
||||
const rejectDialogVisible = ref(false)
|
||||
@@ -1053,15 +1038,16 @@ const handleResize = () => {
|
||||
}
|
||||
|
||||
// US-040: Mobile Android-Native Layout State
|
||||
const mobileMenuVisible = ref(false)
|
||||
const showDrawer = ref(false)
|
||||
const moreMenuRef = ref(null)
|
||||
const fabVisible = ref(true)
|
||||
let lastScrollY = 0
|
||||
let scrollTimeout = null
|
||||
|
||||
// US-040: Toggle mobile hamburger menu
|
||||
const toggleMobileMenu = () => {
|
||||
mobileMenuVisible.value = !mobileMenuVisible.value
|
||||
// Handle logout from drawer menu
|
||||
const handleLogout = async () => {
|
||||
await authStore.logout()
|
||||
router.push('/login')
|
||||
}
|
||||
|
||||
// US-040: Toggle more menu (3-dot menu)
|
||||
|
||||
Reference in New Issue
Block a user