From a37b47a660ff45f7891d17b1931af46a6170116a Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Wed, 8 Jul 2026 11:53:17 +0700 Subject: [PATCH] feat: implement subtle loading bar in DataTable and enhance search functionality with debounce in DataTableToolbar for improved user experience --- resources/css/app.css | 13 +++++++++ .../js/components/data-table/DataTable.vue | 13 ++++----- .../data-table/DataTableToolbar.vue | 28 ++++++++++++++++--- resources/js/composables/useDataTableQuery.ts | 12 ++++---- .../table/RawMaterialGroupedTable.vue | 12 ++++---- 5 files changed, 55 insertions(+), 23 deletions(-) diff --git a/resources/css/app.css b/resources/css/app.css index f5f9177..72eb988 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -222,3 +222,16 @@ .toaster [data-sonner-toast][data-type="info"] { .toaster [data-sonner-toast][data-type="info"] [data-icon] { color: rgb(59 130 246) !important; } + +/* DataTable loading bar */ +@keyframes loading-bar { + 0% { + transform: translateX(-100%); + } + 50% { + transform: translateX(150%); + } + 100% { + transform: translateX(400%); + } +} diff --git a/resources/js/components/data-table/DataTable.vue b/resources/js/components/data-table/DataTable.vue index 9fb4f44..19386e9 100644 --- a/resources/js/components/data-table/DataTable.vue +++ b/resources/js/components/data-table/DataTable.vue @@ -149,13 +149,12 @@ function resolveRowSpan(row: TData, columnId: string): number | undefined { :search-placeholder="searchPlaceholder" @filter-change="(key, value) => emit('filter-change', key, value)" @filters-reset="emit('filters-reset')" /> -
- -
-
- - Memuat data... -
+
+
+
diff --git a/resources/js/components/data-table/DataTableToolbar.vue b/resources/js/components/data-table/DataTableToolbar.vue index 454d467..fb139c1 100644 --- a/resources/js/components/data-table/DataTableToolbar.vue +++ b/resources/js/components/data-table/DataTableToolbar.vue @@ -1,7 +1,7 @@