From 960590d20b53d7173d553aa84010b81f30a7ffef Mon Sep 17 00:00:00 2001 From: Jamie Harding Date: Wed, 19 Feb 2025 16:55:27 +0100 Subject: [PATCH] move invalidate into refresh component --- .../src/__tests__/TanstackAppTable.test.ts | 26 +------------------ .../lib/components/TanstackAppTable.svelte | 5 ++-- .../detail/TanstackOrderQuote.svelte | 10 +++++-- .../src/lib/components/icon/Refresh.svelte | 12 +++++++++ .../tables/OrderTradesListTable.svelte | 7 ++++- 5 files changed, 29 insertions(+), 31 deletions(-) diff --git a/packages/ui-components/src/__tests__/TanstackAppTable.test.ts b/packages/ui-components/src/__tests__/TanstackAppTable.test.ts index d55017655..4337483ac 100644 --- a/packages/ui-components/src/__tests__/TanstackAppTable.test.ts +++ b/packages/ui-components/src/__tests__/TanstackAppTable.test.ts @@ -150,28 +150,4 @@ test('shows refresh icon', async () => { resolve(); await waitFor(() => expect(screen.getByTestId('refreshButton')).toBeInTheDocument()); -}); - -test('refetches data when refresh button is clicked', async () => { - const mockRefetch = vi.fn(); - const mockQuery = writable({ - status: 'success', - fetchStatus: 'idle', - refetch: mockRefetch - }); - - render(TanstackAppTableTest, { - query: mockQuery as unknown as CreateInfiniteQueryResult< - InfiniteData, - Error - >, - emptyMessage: 'No rows', - title: 'Test Table', - head: 'Test head' - }); - - const refreshButton = screen.getByTestId('refreshButton'); - await userEvent.click(refreshButton); - - expect(mockRefetch).toHaveBeenCalled(); -}); +}); \ No newline at end of file diff --git a/packages/ui-components/src/lib/components/TanstackAppTable.svelte b/packages/ui-components/src/lib/components/TanstackAppTable.svelte index 8742adff7..22df28fe4 100644 --- a/packages/ui-components/src/lib/components/TanstackAppTable.svelte +++ b/packages/ui-components/src/lib/components/TanstackAppTable.svelte @@ -11,6 +11,7 @@ export let query: CreateInfiniteQueryResult, Error>; export let emptyMessage: string = 'None found'; export let rowHoverable = true; + export let queryKey: string;
@@ -21,9 +22,7 @@ class="ml-2 h-8 w-5 cursor-pointer text-gray-400 dark:text-gray-400" data-testid="refreshButton" spin={$query.isLoading || $query.isFetching} - on:click={() => { - $query.refetch(); - }} + {queryKey} />
{#if $query.data?.pages[0].length === 0} diff --git a/packages/ui-components/src/lib/components/detail/TanstackOrderQuote.svelte b/packages/ui-components/src/lib/components/detail/TanstackOrderQuote.svelte index a82061292..04b29b563 100644 --- a/packages/ui-components/src/lib/components/detail/TanstackOrderQuote.svelte +++ b/packages/ui-components/src/lib/components/detail/TanstackOrderQuote.svelte @@ -17,6 +17,8 @@ Tooltip } from 'flowbite-svelte'; import { BugOutline, PauseSolid, PlaySolid } from 'flowbite-svelte-icons'; + import { useQueryClient } from '@tanstack/svelte-query'; + const queryClient = useQueryClient(); export let id: string; export let order: OrderSubgraph; @@ -37,7 +39,11 @@ let enabled = true; const refreshQuotes = () => { - $orderQuoteQuery.refetch(); + queryClient.invalidateQueries({ + queryKey: [QKEY_ORDER_QUOTE + id, id], + refetchType: 'all', + exact: false + }); }; $: orderQuoteQuery = createQuery({ @@ -70,8 +76,8 @@ {/if} { + queryClient.invalidateQueries({ + queryKey: [queryKey], + refetchType: 'all', + exact: false + }); + }; const ctx: { size: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; role: AriaRole | undefined } = getContext('iconCtx') ?? {}; @@ -19,6 +30,7 @@ - + {#if tradesCount !== undefined}
{tradesCount} Trades