38 lines
884 B
TypeScript
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}
|
|
`;
|