mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-25 19:01:38 +01:00
- Convert biome-ignore to oxlint-disable-next-line across client app - Fix no-base-to-string with type narrowing instead of suppressions - Fix no-floating-promises with fireAndForget() in proxy app - Fix restrict-template-expressions with String() wrapping - Resolve leftover merge conflict markers in manager.rs - Remove duplicate cmd_plugin_init_errors from lib.rs - Add graphql as explicit dependency in yaak-client Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
24 lines
871 B
TypeScript
24 lines
871 B
TypeScript
import { type UseQueryOptions, useQueryClient } from "@tanstack/react-query";
|
|
import type { RpcEventSchema, RpcSchema } from "@yaakapp-internal/proxy-lib";
|
|
import type { Req, Res } from "../lib/rpc";
|
|
import { useRpcEvent } from "./useRpcEvent";
|
|
import { useRpcQuery } from "./useRpcQuery";
|
|
|
|
/**
|
|
* Combines useRpcQuery with an event listener that invalidates the query
|
|
* whenever the specified event fires, keeping data fresh automatically.
|
|
*/
|
|
export function useRpcQueryWithEvent<
|
|
K extends keyof RpcSchema,
|
|
E extends keyof RpcEventSchema & string,
|
|
>(cmd: K, payload: Req<K>, event: E, opts?: Omit<UseQueryOptions<Res<K>>, "queryKey" | "queryFn">) {
|
|
const queryClient = useQueryClient();
|
|
const query = useRpcQuery(cmd, payload, opts);
|
|
|
|
useRpcEvent(event, () => {
|
|
void queryClient.invalidateQueries({ queryKey: [cmd, payload] });
|
|
});
|
|
|
|
return query;
|
|
}
|