返回 DeepSeek-Reasonix
useSessionOperations.ts
根目录 / desktop / frontend / src / app-runtime / useSessionOperations.ts
1 import { useMemo } from "react";
2 import { useResourceOperations, type SessionResource } from "./useResourceOperations";
3 export type { SessionResource, SessionOperationAuthority } from "./useResourceOperations";
4
5 function bindSessions(operations: ReturnType<typeof useResourceOperations>) {
6 return <Input, Result>(target: SessionResource, channel: string, input: Input,
7 execute: (input: Input, authority: import("./useResourceOperations").SessionOperationAuthority) => Result) => (
8 operations({ kind: "session", ...target }, channel, input, execute)
9 );
10 }
11
12 export function useSessionOperations(input: { visible: SessionResource; resources: readonly SessionResource[] }) {
13 const operations = useResourceOperations({ visible: input.visible, resources: input.resources.map(resource => ({ kind: "session", ...resource })) });
14 return useMemo(() => bindSessions(operations), [operations]);
15 }
16
16 lines TYPESCRIPT