From ac68091d3e7dd3eda8201926c0840b7739d575d2 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Wed, 8 Jul 2026 15:20:00 +0200 Subject: [PATCH] add secondary name sorting as tie breaker in client and project tables --- resources/js/Components/Common/Client/ClientTable.vue | 3 +++ resources/js/Components/Common/Project/ProjectTable.vue | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/resources/js/Components/Common/Client/ClientTable.vue b/resources/js/Components/Common/Client/ClientTable.vue index 3e7b5cf1..fe0cf50c 100644 --- a/resources/js/Components/Common/Client/ClientTable.vue +++ b/resources/js/Components/Common/Client/ClientTable.vue @@ -44,11 +44,14 @@ const projectCountMap = computed(() => { return map; }); +// Name is always the secondary sort so rows with equal values render +// alphabetically instead of in API (created_at) order. const sorting = computed(() => [ { id: props.sortColumn, desc: props.sortDirection === 'desc', }, + ...(props.sortColumn !== 'name' ? [{ id: 'name', desc: false }] : []), ]); const columns = computed(() => [ diff --git a/resources/js/Components/Common/Project/ProjectTable.vue b/resources/js/Components/Common/Project/ProjectTable.vue index 32044fe4..b4c53b7e 100644 --- a/resources/js/Components/Common/Project/ProjectTable.vue +++ b/resources/js/Components/Common/Project/ProjectTable.vue @@ -57,12 +57,15 @@ const clientNameMap = computed(() => { return map; }); -// Convert sort props to TanStack Table format +// Convert sort props to TanStack Table format. +// Name is always the secondary sort so rows with equal values render +// alphabetically instead of in API (created_at) order. const sorting = computed(() => [ { id: props.sortColumn, desc: props.sortDirection === 'desc', }, + ...(props.sortColumn !== 'name' ? [{ id: 'name', desc: false }] : []), ]); // Define column accessors for sorting.