From 660dcd081973416ee971c9340b4f0a90c8e34923 Mon Sep 17 00:00:00 2001 From: Connor Abbas Date: Sat, 17 May 2025 20:40:28 +0000 Subject: [PATCH] more composable fixes --- resources/js/composables/usePaginatedData.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/resources/js/composables/usePaginatedData.ts b/resources/js/composables/usePaginatedData.ts index 4b45dc65..0683b935 100644 --- a/resources/js/composables/usePaginatedData.ts +++ b/resources/js/composables/usePaginatedData.ts @@ -116,7 +116,7 @@ export function usePaginatedData( }); } - function paginate(event: PageState | DataTablePageEvent): void { + function paginate(event: PageState | DataTablePageEvent): Promise> { if (event.rows !== pagination.value.rows) { pagination.value.page = 1; } else { @@ -125,18 +125,23 @@ export function usePaginatedData( pagination.value.rows = event.rows; - fetchData({ + return fetchData({ onFinish: () => { scrollToTop(); }, }); } - function filter(): void { + function filter(options: InertiaRouterFetchCallbacks = {}): Promise> { + const { onFinish: onFinishCallback, onSuccess, onError } = options; + pagination.value.page = 1; - fetchData({ + return fetchData({ + onSuccess, + onError, onFinish: () => { scrollToTop(); + onFinishCallback?.(); }, }); } @@ -156,6 +161,8 @@ export function usePaginatedData( const { onSuccess, onError, onFinish } = options; return new Promise((resolve, reject) => { + processing.value = true; + router.visit(window.location.pathname, { method: 'get', preserveUrl: false, @@ -171,6 +178,7 @@ export function usePaginatedData( reject(errors); }, onFinish() { + processing.value = false; onFinish?.(); }, });