ln/app/client/hooks/useUserOneQuery.tsx
2025-06-01 20:11:57 +03:00

38 lines
884 B
TypeScript

import { ApolloError, ApolloQueryResult, gql, OperationVariables, useQuery } from '@apollo/client';
import { UserOneQuery } from '@generated/types';
import { userFragment } from '../fragments';
export function useUserOneQuery({
input,
skip
}: {
readonly input: { readonly id: string } | { readonly username: string };
readonly skip?: boolean;
}): {
data: UserOneQuery | undefined;
loading: boolean;
error: ApolloError | undefined;
refetch: (
variables?: Partial<OperationVariables> | undefined
) => Promise<ApolloQueryResult<UserOneQuery>>;
} {
const { data, loading, error, refetch } = useQuery<UserOneQuery>(query, {
variables: { input },
skip
});
return {
data,
loading,
error,
refetch
};
}
const query = gql`
query UserOne($input: UserOneInput!) {
userOne(input: $input) {
...User
}
}
${userFragment}
`;