import * as Types from '../generated';
import { UserFragmentFragment } from './users.generated';
import gql from 'graphql-tag';
import { UserFragmentFragmentDoc } from './users.generated';
import * as Apollo from '@apollo/client';
import { NextPage } from 'next';
import { NextRouter, useRouter } from 'next/router'
import { QueryHookOptions, useQuery } from '@apollo/client';
import type React from 'react';
import { getApolloClient} from '../withApollo';
import type { NormalizedCacheObject } from '@apollo/client';
export type DocumentFragmentFragment = (
{ __typename?: 'Document' }
& Pick<Types.Document, 'id' | 'name' | 'fileName' | 'type' | 'fileType' | 'sourceUrl' | 'lastModifiedAt' | 'createdAt'>
& { user: (
{ __typename?: 'User' }
& UserFragmentFragment
) }
);
export type DocumentsQueryVariables = Types.Exact<{
clientId: Types.Scalars['ID'];
applicationId?: Types.Maybe<Types.Scalars['ID']>;
}>;
export type DocumentsQuery = (
{ __typename?: 'Query' }
& { documents: Array<(
{ __typename?: 'Document' }
& DocumentFragmentFragment
)> }
);
export type CreateDocumentMutationVariables = Types.Exact<{
input: Types.CreateDocumentInput;
}>;
export type CreateDocumentMutation = (
{ __typename?: 'Mutation' }
& { createDocument?: Types.Maybe<(
{ __typename?: 'CreateDocumentPayload' }
& { document: (
{ __typename?: 'Document' }
& DocumentFragmentFragment
) }
)> }
);
export const DocumentFragmentFragmentDoc = gql`
fragment DocumentFragment on Document {
id
name
fileName
type
fileType
sourceUrl
lastModifiedAt
createdAt
user {
...UserFragment
}
}
${UserFragmentFragmentDoc}`;
export const DocumentsDocument = gql`
query Documents($clientId: ID!, $applicationId: ID) {
documents(clientId: $clientId, applicationId: $applicationId) {
...DocumentFragment
}
}
${DocumentFragmentFragmentDoc}`;
/**
* __useDocumentsQuery__
*
* To run a query within a React component, call `useDocumentsQuery` and pass it any options that fit your needs.
* When your component renders, `useDocumentsQuery` returns an object from Apollo Client that contains loading, error, and data properties
* you can use to render your UI.
*
* @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
*
* @example
* const { data, loading, error } = useDocumentsQuery({
* variables: {
* clientId: // value for 'clientId'
* applicationId: // value for 'applicationId'
* },
* });
*/
export function useDocumentsQuery(baseOptions: Apollo.QueryHookOptions<DocumentsQuery, DocumentsQueryVariables>) {
return Apollo.useQuery<DocumentsQuery, DocumentsQueryVariables>(DocumentsDocument, baseOptions);
}
export function useDocumentsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions<DocumentsQuery, DocumentsQueryVariables>) {
return Apollo.useLazyQuery<DocumentsQuery, DocumentsQueryVariables>(DocumentsDocument, baseOptions);
}
export type DocumentsQueryHookResult = ReturnType<typeof useDocumentsQuery>;
export type DocumentsLazyQueryHookResult = ReturnType<typeof useDocumentsLazyQuery>;
export type DocumentsQueryResult = Apollo.QueryResult<DocumentsQuery, DocumentsQueryVariables>;
export const CreateDocumentDocument = gql`
mutation CreateDocument($input: CreateDocumentInput!) {
createDocument(input: $input) {
document {
...DocumentFragment
}
}
}
${DocumentFragmentFragmentDoc}`;
export type CreateDocumentMutationFn = Apollo.MutationFunction<CreateDocumentMutation, CreateDocumentMutationVariables>;
/**
* __useCreateDocumentMutation__
*
* To run a mutation, you first call `useCreateDocumentMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useCreateDocumentMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [createDocumentMutation, { data, loading, error }] = useCreateDocumentMutation({
* variables: {
* input: // value for 'input'
* },
* });
*/
export function useCreateDocumentMutation(baseOptions?: Apollo.MutationHookOptions<CreateDocumentMutation, CreateDocumentMutationVariables>) {
return Apollo.useMutation<CreateDocumentMutation, CreateDocumentMutationVariables>(CreateDocumentDocument, baseOptions);
}
export type CreateDocumentMutationHookResult = ReturnType<typeof useCreateDocumentMutation>;
export type CreateDocumentMutationResult = Apollo.MutationResult<CreateDocumentMutation>;
export type CreateDocumentMutationOptions = Apollo.BaseMutationOptions<CreateDocumentMutation, CreateDocumentMutationVariables>;
export const DocumentsDocument = gql`
query Documents($clientId: ID!, $applicationId: ID) {
documents(clientId: $clientId, applicationId: $applicationId) {
...DocumentFragment
}
}
${DocumentFragmentFragmentDoc}`;
export async function getServerPageDocuments
(options: Omit<Apollo.QueryOptions<DocumentsQueryVariables>, 'query'>, ctx? :any ){
const apolloClient = getApolloClient(ctx);
const data = await apolloClient.query<DocumentsQuery>({ ...options, query:Operations.DocumentsDocument });
const apolloState = apolloClient.cache.extract();
return {
props: {
apolloState,
data: data?.data,
error: data?.error ?? data?.errors ?? null,
},
};
}
export const useDocuments = (
optionsFunc?: (router: NextRouter)=> QueryHookOptions<DocumentsQuery, DocumentsQueryVariables>) => {
const router = useRouter();
const options = optionsFunc ? optionsFunc(router) : {};
return useQuery(Operations.DocumentsDocument, options);
};
export type PageDocumentsComp = React.FC<{data?: DocumentsQuery, error?: Apollo.ApolloError}>;
export const withPageDocuments = (optionsFunc?: (router: NextRouter)=> QueryHookOptions<DocumentsQuery, DocumentsQueryVariables>) => (WrappedComponent:PageDocumentsComp) : NextPage => (props) => {
const router = useRouter()
const options = optionsFunc ? optionsFunc(router) : {};
const {data, error } = useQuery(Operations.DocumentsDocument, options)
return <WrappedComponent {...props} data={data} error={error} /> ;
};
export const ssrDocuments = {
getServerPage: getServerPageDocuments,
withPage: withPageDocuments,
usePage: useDocuments,
}
export const CreateDocumentDocument = gql`
mutation CreateDocument($input: CreateDocumentInput!) {
createDocument(input: $input) {
document {
...DocumentFragment
}
}
}
${DocumentFragmentFragmentDoc}`;