diff --git a/adminforth/spa/src/components/ResourceListTable.vue b/adminforth/spa/src/components/ResourceListTable.vue index 48030b79..e806e99a 100644 --- a/adminforth/spa/src/components/ResourceListTable.vue +++ b/adminforth/spa/src/components/ResourceListTable.vue @@ -63,7 +63,8 @@ @@ -80,6 +81,7 @@ -import { computed, onMounted, ref, watch, type Ref } from 'vue'; +import { computed, onMounted, ref, watch, useTemplateRef, type Ref } from 'vue'; import { callAdminForthApi } from '@/utils'; import { useI18n } from 'vue-i18n'; import ValueRenderer from '@/components/ValueRenderer.vue'; @@ -347,6 +349,13 @@ watch(() => props.page, (newPage) => { page.value = newPage; }); +const rowRefs = useTemplateRef('rowRefs'); +const rowHeights = ref([]); +watch(() => props.rows, (newRows) => { + // rows are set to null when new records are loading + rowHeights.value = newRows ? [] : rowRefs.value.map((el) => el.offsetHeight); +}); + function addToCheckedValues(id) { if (checkboxesInternal.value.includes(id)) { checkboxesInternal.value = checkboxesInternal.value.filter((item) => item !== id); diff --git a/adminforth/spa/src/components/SkeleteLoader.vue b/adminforth/spa/src/components/SkeleteLoader.vue index e6a2684d..d723d4b6 100644 --- a/adminforth/spa/src/components/SkeleteLoader.vue +++ b/adminforth/spa/src/components/SkeleteLoader.vue @@ -1,6 +1,10 @@