diff --git a/adminforth/spa/src/components/ResourceListTable.vue b/adminforth/spa/src/components/ResourceListTable.vue index d940068b..ea9bfab2 100644 --- a/adminforth/spa/src/components/ResourceListTable.vue +++ b/adminforth/spa/src/components/ResourceListTable.vue @@ -418,8 +418,12 @@ const rowHeights = ref([]); const columnWidths = ref([]); watch(() => props.rows, (newRows) => { // rows are set to null when new records are loading - rowHeights.value = newRows || !rowRefs.value ? [] : rowRefs.value.map((el: HTMLElement) => el.offsetHeight); - columnWidths.value = newRows || !headerRefs.value ? [] : [48, ...headerRefs.value.map((el: HTMLElement) => el.offsetWidth)]; +if (!newRows) return; + + nextTick(() => { + if (rowRefs.value) rowHeights.value = rowRefs.value.map((el: HTMLElement) => el.offsetHeight); + if (headerRefs.value) columnWidths.value = [48, ...headerRefs.value.map((el: HTMLElement) => el.offsetWidth)]; + }); }); function addToCheckedValues(id: string) { diff --git a/adminforth/spa/src/components/ResourceListTableVirtual.vue b/adminforth/spa/src/components/ResourceListTableVirtual.vue index 900ecba9..fb952a8c 100644 --- a/adminforth/spa/src/components/ResourceListTableVirtual.vue +++ b/adminforth/spa/src/components/ResourceListTableVirtual.vue @@ -441,10 +441,18 @@ const rowRefs = useTemplateRef('rowRefs'); const headerRefs = useTemplateRef('headerRefs'); const rowHeights = ref([]); const columnWidths = ref([]); +const columnWidth = 48; watch(() => props.rows, (newRows) => { // rows are set to null when new records are loading - rowHeights.value = newRows || !rowRefs.value ? [] : rowRefs.value.map((el: HTMLElement) => el.offsetHeight); - columnWidths.value = newRows || !headerRefs.value ? [] : [48, ...headerRefs.value.map((el: HTMLElement) => el.offsetWidth)]; + if (!newRows) return; +nextTick(() => { + if (rowRefs.value) { + rowHeights.value = rowRefs.value.map((el: HTMLElement) => el.offsetHeight); + } + if (headerRefs.value) { + columnWidths.value = [columnWidth, ...headerRefs.value.map((el: HTMLElement) => el.offsetWidth)]; + } + }); }); function addToCheckedValues(id: any) {