diff --git a/src/App.vue b/src/App.vue index 5314a5f..9ceb4b3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,55 +1,54 @@ @@ -58,40 +57,76 @@ import Header from "@/views/main/Header.vue"; import Footer from "@/views/main/Footer.vue"; import SideBar from "@/views/main/SideBar.vue"; -import {useRoute} from 'vue-router' -import {ref, onMounted, onUnmounted, computed} from 'vue'; +import {ref, onMounted, onUnmounted} from 'vue'; import StripePayment from "@/views/StripePayment.vue"; +import {eventBus} from '@/eventBus.js'; -const route = useRoute() -const hideSideBar = computed(() => route.meta.hideSideBar === true) - -// Reactive variable to control the visibility of the popup +const hideSideBar = ref(false); const showPopup = ref(false); const popup = ref(null); const popupButton = ref(null); +let closeSidebarTimer = null; -// Function to toggle the popup visibility -const togglePopup = () => { - showPopup.value = !showPopup.value +const toggleSidebar = () => { + hideSideBar.value = !hideSideBar.value; +}; + +const openSidebar = () => { + clearCloseSidebarTimer(); + hideSideBar.value = false; +}; + +const startCloseSidebarTimer = () => { + closeSidebarTimer = setTimeout(() => { + hideSideBar.value = true; + }, 500); +}; + +const clearCloseSidebarTimer = () => { + clearTimeout(closeSidebarTimer); +}; + +const togglePopup = () => { + showPopup.value = !showPopup.value; }; -// Function to handle clicks outside the popup const handleClickOutside = (event) => { - if (popup.value - && !popup.value.contains(event.target) - && !popupButton.value.contains(event.target)) { + if ( + popup.value && + !popup.value.contains(event.target) && + !popupButton.value.contains(event.target) && + !event.target.closest('.bg-purple') + ) { showPopup.value = false; } + if ( + !event.target.closest('.w-48') && + !event.target.closest('.v-app-bar-nav-icon') + ) { + hideSideBar.value = true; + } }; -// Add event listener for clicks outside the popup when component is mounted onMounted(() => { document.addEventListener('click', handleClickOutside); + eventBus.value.toggleSidebar = toggleSidebar; }); -// Remove event listener when component is unmounted onUnmounted(() => { document.removeEventListener('click', handleClickOutside); + eventBus.value.toggleSidebar = null; }); - + + diff --git a/src/eventBus.js b/src/eventBus.js new file mode 100644 index 0000000..024f9c3 --- /dev/null +++ b/src/eventBus.js @@ -0,0 +1,3 @@ +import { ref } from 'vue'; + +export const eventBus = ref({}); \ No newline at end of file diff --git a/src/views/main/Header.vue b/src/views/main/Header.vue index c0755ff..2952349 100644 --- a/src/views/main/Header.vue +++ b/src/views/main/Header.vue @@ -1,129 +1,74 @@  - \ No newline at end of file +import SiteMenu from "@/views/main/SiteMenu.vue"; + diff --git a/src/views/main/SiteMenu.vue b/src/views/main/SiteMenu.vue index 0944c5d..924bf1f 100644 --- a/src/views/main/SiteMenu.vue +++ b/src/views/main/SiteMenu.vue @@ -1,81 +1,50 @@  \ No newline at end of file +.extra-small-text { + font-size: 0.6rem; /* Ajustez cette valeur selon vos besoins */ +} + + \ No newline at end of file diff --git a/src/views/manualusers/ARPS.vue b/src/views/manualusers/ARPS.vue index d78ba99..c9034cf 100644 --- a/src/views/manualusers/ARPS.vue +++ b/src/views/manualusers/ARPS.vue @@ -1,9 +1,9 @@ \ No newline at end of file + +.v-btn--active { + background-color: #1976D2; + color: white; +} +