Piped/src/components/Menu.vue
2021-10-11 10:15:11 +01:00

40 lines
1 KiB
Vue

<template>
<MenuDesktop :collapsed="collapsed" :toggleCollapsed="toggleCollapsedDebounced" v-if="!isMobile" />
<MenuMobile :collapsed="collapsed" :toggleCollapsed="toggleCollapsedDebounced" v-else />
</template>
<script>
import MenuDesktop from "./MenuDesktop.vue";
import MenuMobile from "./MenuMobile.vue";
import { useIsMobile } from "../store";
export default {
components: {
MenuDesktop,
MenuMobile,
},
props: {
collapsed: Boolean,
toggleCollapsed: Function,
},
data() {
return { toggleCollapsedDisabled: false };
},
setup() {
const isMobile = useIsMobile();
return { isMobile };
},
methods: {
toggleCollapsedDebounced() {
if (!this.toggleCollapsedDisabled) {
this.toggleCollapsed();
this.toggleCollapsedDisabled = true;
setTimeout(() => {
this.toggleCollapsedDisabled = false;
}, 500);
}
},
},
};
</script>