From 695cd7b4008c038ebe70b01a01f7d94330241bf7 Mon Sep 17 00:00:00 2001 From: Petr Kachanovsky Date: Fri, 7 Mar 2025 15:01:37 +0200 Subject: [PATCH] fix: prevent row height jump on page change --- .../spa/src/components/ResourceListTable.vue | 9 +++++++-- adminforth/spa/src/components/SkeleteLoader.vue | 14 +++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/adminforth/spa/src/components/ResourceListTable.vue b/adminforth/spa/src/components/ResourceListTable.vue index e35f1cf47..02cd239d9 100644 --- a/adminforth/spa/src/components/ResourceListTable.vue +++ b/adminforth/spa/src/components/ResourceListTable.vue @@ -18,15 +18,16 @@ -
+
- +
@@ -65,6 +66,7 @@ :columns="resource?.columns.filter(c => c.showIn.list).length + 2" :rows="rowHeights.length || 3" :row-heights="rowHeights" + :column-widths="columnWidths" /> @@ -376,10 +378,13 @@ watch(() => props.page, (newPage) => { }); const rowRefs = useTemplateRef('rowRefs'); +const headerRefs = useTemplateRef('headerRefs'); 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) => el.offsetHeight); + columnWidths.value = newRows || !headerRefs.value ? [] : [48, ...headerRefs.value.map((el) => el.offsetWidth)]; }); function addToCheckedValues(id) { diff --git a/adminforth/spa/src/components/SkeleteLoader.vue b/adminforth/spa/src/components/SkeleteLoader.vue index d723d4b6f..308cb6c37 100644 --- a/adminforth/spa/src/components/SkeleteLoader.vue +++ b/adminforth/spa/src/components/SkeleteLoader.vue @@ -1,10 +1,16 @@