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:
Claude Agent
2026-01-12 12:36:45 +00:00
parent dc137711ae
commit 4c5d2956d8
10 changed files with 146 additions and 207 deletions

View File

@@ -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)