refactor: share path-root query predicate (WealthLedger/frontend#142) (#154)
Frontend verify / commits (push) Skipped
Frontend verify / security (push) Successful in 10s
Frontend verify / verify (push) Failing after 7m42s

This commit was merged in pull request #154.
This commit is contained in:
2026-11-04 22:58:58 +03:00
parent 2db39f25d9
commit cadba8d075
5 changed files with 56 additions and 26 deletions
@@ -2,19 +2,18 @@ import type { QueryClient } from "@tanstack/react-query";
import {
apiQueryClient,
isGetUnder,
type paths,
} from "@/shared/api";
type TbankConnectionStatus
= paths["/api/v1/tbank-connection"]["get"]["responses"][200]["content"]["application/json"];
function isInvestmentPath(path: string) {
return [
"/api/v1/brokerage-accounts",
"/api/v1/stocks",
"/api/v1/bonds",
].some(root => path === root || path.startsWith(`${root}/`));
}
const investmentGetPredicate = isGetUnder([
"/api/v1/brokerage-accounts",
"/api/v1/stocks",
"/api/v1/bonds",
]);
const tbankConnectionQueryOptions = () =>
apiQueryClient.queryOptions("get", "/api/v1/tbank-connection");
@@ -27,15 +26,7 @@ function commitTbankConnectionBoundary(
) {
queryClient.setQueryData(tbankConnectionQueryKey, status);
void queryClient.resetQueries({
predicate: ({ queryKey }) => {
const [method, path] = queryKey;
return (
method === "get"
&& typeof path === "string"
&& isInvestmentPath(path)
);
},
predicate: ({ queryKey }) => investmentGetPredicate(queryKey),
});
}