@abstract-foundation/agw-react
Version:
Abstract Global Wallet React Components
61 lines (55 loc) • 1.75 kB
text/typescript
import type { MutateOptions, MutationOptions } from "@tanstack/query-core";
import type { Compute } from "@wagmi/core/internal";
import type { WriteContractErrorType } from "viem";
import type { Config } from "wagmi";
import {
type CreateSessionParameters,
type CreateSessionReturnType,
createSession,
} from "../actions/createSession.js";
export function createSessionMutationOptions<config extends Config>(
config: config,
) {
return {
mutationFn: async (variables) => {
return createSession(config, variables);
},
mutationKey: ["createSession"],
} as const satisfies MutationOptions<
CreateSessionData,
WriteContractErrorType,
CreateSessionVariables<config, config["chains"][number]["id"]>
>;
}
export type CreateSessionVariables<
config extends Config,
chainId extends config["chains"][number]["id"],
> = CreateSessionParameters<config, chainId>;
export type CreateSessionData = Compute<CreateSessionReturnType>;
export type CreateSessionMutate<config extends Config, context = unknown> = <
chainId extends config["chains"][number]["id"],
>(
variables: CreateSessionVariables<config, chainId>,
options?:
| MutateOptions<
CreateSessionData,
WriteContractErrorType,
CreateSessionVariables<config, chainId>,
context
>
| undefined,
) => void;
export type CreateSessionMutateAsync<
config extends Config,
context = unknown,
> = <chainId extends config["chains"][number]["id"]>(
variables: CreateSessionVariables<config, chainId>,
options?:
| MutateOptions<
CreateSessionData,
WriteContractErrorType,
CreateSessionVariables<config, chainId>,
context
>
| undefined,
) => Promise<CreateSessionData>;