diff --git a/components/use.submission.ts b/components/use.submission.ts index 2c4a6bd..fed587f 100644 --- a/components/use.submission.ts +++ b/components/use.submission.ts @@ -11,6 +11,11 @@ import { SubmissionStartMutationData, SubmissionStartMutationVariables, } from '../graphql/mutation/submission.start.mutation' +import { + SUBMISSION_FINISH_MUTATION, + SubmissionFinishMutationData, + SubmissionFinishMutationVariables, +} from '../graphql/mutation/submission.finish.mutation' const logger = debug('useSubmission') @@ -29,6 +34,9 @@ export const useSubmission = (formId: string): Submission => { const [save] = useMutation( SUBMISSION_SET_FIELD_MUTATION ) + const [submit] = useMutation( + SUBMISSION_FINISH_MUTATION + ) useEffect(() => { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment @@ -76,8 +84,11 @@ export const useSubmission = (formId: string): Submission => { const finish = useCallback(async () => { logger('finish submission!!', formId) - - await Promise.resolve() + await submit({ + variables: { + submission: submission.id, + }, + }) }, [submission]) return { diff --git a/graphql/mutation/submission.finish.mutation.ts b/graphql/mutation/submission.finish.mutation.ts index 4f24da1..57c9470 100644 --- a/graphql/mutation/submission.finish.mutation.ts +++ b/graphql/mutation/submission.finish.mutation.ts @@ -1,8 +1,19 @@ import { gql } from '@apollo/client/core' +export interface SubmissionFinishMutationData { + submission: { + id: string + percentageComplete: string + } +} + +export interface SubmissionFinishMutationVariables { + submission: string +} + export const SUBMISSION_FINISH_MUTATION = gql` - mutation submissionSetField($submission: ID!, $field: SubmissionSetFieldInput!) { - submission: submissionSetField(submission: $submission, field: $field) { + mutation submissionFinish($submission: ID!) { + submission: submissionFinish(submission: $submission) { id percentageComplete }