8197-VnCardMain #1044

Merged
alexm merged 31 commits from 8197-VnCardMain into beta 2024-12-24 10:29:04 +00:00
2 changed files with 22 additions and 9 deletions
Showing only changes of commit dc665d43fe - Show all commits

View File

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

View File

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

Para que quieres una variable que solo se usa en 1 sitio?

Para que quieres una variable que solo se usa en 1 sitio?
Outdated
Review

Antes de poner lo del ref la usaba 2 veces, lo quito

Antes de poner lo del ref la usaba 2 veces, lo quito
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

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

template en lugar de div es posible?

template en lugar de div es posible?
Outdated
Review

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
Outdated
Review

No puede ser template, deja de funcionar

No puede ser template, deja de funcionar
<LeftMenu v-if="!hasContent" />
</QScrollArea>
</QDrawer>
<QPageContainer>