8197-VnCardMain #1044
|
@ -1,12 +1,9 @@
|
|||
<script setup>
|
||||
import LeftMenu from '../LeftMenu.vue';
|
||||
import { useStateStore } from 'stores/useStateStore';
|
||||
import RightMenu from './RightMenu.vue';
|
||||
import VnSearchbar from 'components/ui/VnSearchbar.vue';
|
||||
import VnTableFilter from '../VnTable/VnTableFilter.vue';
|
||||
import { onBeforeMount } from 'vue';
|
||||
import { useArrayData } from 'src/composables/useArrayData';
|
||||
const stateStore = useStateStore();
|
||||
|
||||
const $props = defineProps({
|
||||
section: {
|
||||
|
@ -58,10 +55,6 @@ onBeforeMount(() => {
|
|||
/>
|
||||
</slot>
|
||||
|
||||
<Teleport to="#left-panel" v-if="stateStore.isHeaderMounted()">
|
||||
<LeftMenu v-if="section == $route.name" />
|
||||
</Teleport>
|
||||
|
||||
<RightMenu>
|
||||
<template #right-panel v-if="$slots['rightMenu'] || rightFilter">
|
||||
<slot name="rightMenu">
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
<script setup>
|
||||
import { useStateStore } from 'stores/useStateStore';
|
||||
import { onMounted } from 'vue';
|
||||
import { onMounted, ref } from 'vue';
|
||||
import { useQuasar } from 'quasar';
|
||||
import LeftMenu from '../LeftMenu.vue';
|
||||
|
||||
const stateStore = useStateStore();
|
||||
const $props = defineProps({
|
||||
|
@ -13,12 +14,31 @@ const $props = defineProps({
|
|||
onMounted(
|
||||
() => (stateStore.leftDrawer = useQuasar().screen.gt.xs ? $props.leftDrawer : false)
|
||||
);
|
||||
|
||||
const targetId = 'left-panel';
|
||||
alexm marked this conversation as resolved
Outdated
|
||||
const teleportRef = ref({});
|
||||
const hasContent = ref();
|
||||
let observer;
|
||||
|
||||
onMounted(() => {
|
||||
if (teleportRef.value) {
|
||||
const checkContent = () => {
|
||||
hasContent.value = teleportRef.value.innerHTML.trim() !== '';
|
||||
};
|
||||
|
||||
observer = new MutationObserver(checkContent);
|
||||
alexm marked this conversation as resolved
Outdated
jorgep
commented
El hook update o alguno de esos no sirve? Entiendo que no, pero por si acaso pregunto El hook update o alguno de esos no sirve? Entiendo que no, pero por si acaso pregunto
|
||||
observer.observe(teleportRef.value, { childList: true, subtree: true });
|
||||
|
||||
checkContent();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<QDrawer v-model="stateStore.leftDrawer" show-if-above :width="256">
|
||||
<QScrollArea class="fit text-grey-8">
|
||||
<div id="left-panel"></div>
|
||||
<div :id="targetId" ref="teleportRef"></div>
|
||||
alexm marked this conversation as resolved
Outdated
jorgep
commented
template en lugar de div es posible? template en lugar de div es posible?
alexm
commented
Al ser para un teleport siempre lo he visto con div, lo pruebo Al ser para un teleport siempre lo he visto con div, lo pruebo
alexm
commented
No puede ser template, deja de funcionar No puede ser template, deja de funcionar
|
||||
<LeftMenu v-if="!hasContent" />
|
||||
</QScrollArea>
|
||||
</QDrawer>
|
||||
<QPageContainer>
|
||||
|
|
Loading…
Reference in New Issue
Para que quieres una variable que solo se usa en 1 sitio?
Antes de poner lo del ref la usaba 2 veces, lo quito