@@ -435,22 +435,25 @@ export default types
435
435
} ) ;
436
436
}
437
437
438
+ function setTaskHistory ( taskHistory ) {
439
+ self . taskHistory = taskHistory ;
440
+ }
441
+
438
442
/**
439
443
*
440
444
* @param {* } taskObject
441
445
* @param {*[] } taskHistory
442
446
*/
443
- function assignTask ( taskObject , taskHistory ) {
447
+ function assignTask ( taskObject ) {
444
448
if ( taskObject && ! Utils . Checkers . isString ( taskObject . data ) ) {
445
449
taskObject = {
446
450
...taskObject ,
447
451
data : JSON . stringify ( taskObject . data ) ,
448
452
} ;
449
453
}
450
454
self . task = Task . create ( taskObject ) ;
451
- if ( taskHistory ) {
452
- self . taskHistory = taskHistory ;
453
- } else if ( ! self . taskHistory . some ( ( x ) => x . taskId === self . task . id ) ) {
455
+
456
+ if ( ! self . taskHistory . some ( ( x ) => x . taskId === self . task . id ) ) {
454
457
self . taskHistory . push ( {
455
458
taskId : self . task . id ,
456
459
annotationId : null ,
@@ -734,9 +737,11 @@ export default types
734
737
}
735
738
}
736
739
737
- function prevTask ( ) {
738
- if ( self . canGoPrevTask ) {
739
- const { taskId, annotationId } = self . taskHistory [ self . taskHistory . findIndex ( ( x ) => x . taskId === self . task . id ) - 1 ] ;
740
+ function prevTask ( e , shouldGoBack = false ) {
741
+ const length = shouldGoBack ? self . taskHistory . length - 1 : self . taskHistory . findIndex ( ( x ) => x . taskId === self . task . id ) - 1 ;
742
+
743
+ if ( self . canGoPrevTask || shouldGoBack ) {
744
+ const { taskId, annotationId } = self . taskHistory [ length ] ;
740
745
741
746
getEnv ( self ) . events . invoke ( 'prevTask' , taskId , annotationId ) ;
742
747
}
@@ -772,6 +777,7 @@ export default types
772
777
773
778
skipTask,
774
779
unskipTask,
780
+ setTaskHistory,
775
781
submitDraft,
776
782
submitAnnotation,
777
783
updateAnnotation,
0 commit comments