diff --git a/apps/dashboard/src/@/hooks/useEngine.ts b/apps/dashboard/src/@/hooks/useEngine.ts index 08914259459..ff838bc7288 100644 --- a/apps/dashboard/src/@/hooks/useEngine.ts +++ b/apps/dashboard/src/@/hooks/useEngine.ts @@ -379,12 +379,27 @@ export function useEngineTransactions(params: { page?: number; status?: EngineStatus; }; + id?: string; }) { - const { instanceUrl, autoUpdate, authToken } = params; + const { instanceUrl, autoUpdate, authToken, id } = params; return useQuery({ placeholderData: keepPreviousData, queryFn: async () => { + if (id) { + const res = await fetch(`${instanceUrl}transaction/${id}`, { + headers: getEngineRequestHeaders(authToken), + method: "GET", + }); + + const json = await res.json(); + const transaction = (json.result as Transaction) || {}; + return { + transactions: [transaction], + totalCount: 1, + }; + } + const url = new URL(`${instanceUrl}transaction/get-all`); if (params.queryParams) { for (const key in params.queryParams) { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/(instance)/[engineId]/overview/components/transactions-table.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/(instance)/[engineId]/overview/components/transactions-table.tsx index 66a9ff8506f..8142c4abf96 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/(instance)/[engineId]/overview/components/transactions-table.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/(instance)/[engineId]/overview/components/transactions-table.tsx @@ -1,3 +1,4 @@ +import { Input } from "@workspace/ui/components/input"; import { format, formatDistanceToNowStrict } from "date-fns"; import { ArrowLeftIcon, @@ -110,6 +111,7 @@ export function TransactionsTable(props: { const [autoUpdate, setAutoUpdate] = useState(true); const [page, setPage] = useState(1); const [status, setStatus] = useState(undefined); + const [filterId, setFilterId] = useState(undefined); const autoUpdateId = useId(); const pageSize = 10; const transactionsQuery = useEngineTransactions({ @@ -121,6 +123,7 @@ export function TransactionsTable(props: { page: page, status, }, + id: filterId, }); const transactions = transactionsQuery.data?.transactions ?? []; @@ -160,6 +163,16 @@ export function TransactionsTable(props: { onCheckedChange={(v) => setAutoUpdate(!!v)} /> + { + const value = e.target.value.trim(); + setFilterId(value || undefined); + setPage(1); + }} + placeholder="Filter by Queue ID" + value={filterId || ""} + /> { setStatus(v);