@@ -16,8 +16,7 @@ import {
1616 formatDateTimeShortTime ,
1717 userIdentifier ,
1818} from './helpers' ;
19- import { AI_PROCESS_QUIZ_IMAGES , QUIZ , QUIZZES } from './queries/quiz' ;
20- import { MARK_QUIZ_ILLEGIBLE } from './queries/quiz' ;
19+ import { AI_PROCESS_QUIZ_IMAGES , MARK_INACCURATE_OCR , MARK_QUIZ_ILLEGIBLE , QUIZ , QUIZZES } from './queries/quiz' ;
2120import { userCanPerformAction } from './services/authorization' ;
2221import { Quiz as QuizType } from './types/quiz' ;
2322
@@ -44,6 +43,9 @@ export default function Quiz() {
4443 navigate ( '/' ) ;
4544 } ,
4645 } ) ;
46+ const [ markInaccurateOCR , { loading : isMarkingQuizInaccurateOCR } ] = useMutation ( MARK_INACCURATE_OCR , {
47+ refetchQueries : [ { query : QUIZ , variables : { id } } ] ,
48+ } ) ;
4749 const [ aiProcessQuizImages , { loading : isProcessingQuizImages } ] = useMutation ( AI_PROCESS_QUIZ_IMAGES , {
4850 refetchQueries : [ { query : QUIZ , variables : { id } } ] ,
4951 } ) ;
@@ -78,7 +80,9 @@ export default function Quiz() {
7880 </ div >
7981 ) }
8082 </ dl >
81- { data . quiz . questions . length > 0 ? < QuizQuestions questions = { data . quiz . questions } /> : null }
83+ { data . quiz . questions . length > 0 ? (
84+ < QuizQuestions questions = { data . quiz . questions } reportedInaccurateOCR = { data . quiz . reportedInaccurateOCR } />
85+ ) : null }
8286 { [ ...data . quiz . images ]
8387 . sort ( ( a , b ) => {
8488 return imageTypeSortValues [ a . type ] - imageTypeSortValues [ b . type ] ;
@@ -93,13 +97,23 @@ export default function Quiz() {
9397 < Button onClick = { ( ) => markQuizIllegible ( { variables : { id } } ) } disabled = { isMarkingQuizIllegible } warning >
9498 Mark Quiz Illegible
9599 </ Button >
100+ { ! data . quiz . reportedInaccurateOCR && (
101+ < Button
102+ onClick = { ( ) => markInaccurateOCR ( { variables : { id } } ) }
103+ disabled = { isMarkingQuizInaccurateOCR }
104+ warning
105+ >
106+ Mark Inaccurate OCR
107+ </ Button >
108+ ) }
109+
96110 { userCanPerformAction ( user , 'TRIGGER_AI_PROCESSING' ) && data . quiz . aiProcessingState !== 'QUEUED' && (
97111 < Button
98112 onClick = { ( ) => aiProcessQuizImages ( { variables : { id } } ) }
99113 disabled = { isProcessingQuizImages }
100114 warning
101115 >
102- { isProcessingQuizImages ? 'Processing...' : ' Trigger AI Processing' }
116+ Trigger AI Processing
103117 </ Button >
104118 ) }
105119 </ div >
0 commit comments