@@ -77,6 +77,7 @@ async function store(state, emitter) {
77
77
state . selectedFiles = [ ]
78
78
state . selectedBoardFiles = [ ]
79
79
state . selectedDiskFiles = [ ]
80
+ state . lastSelectedFile = null
80
81
state . editingFile = null
81
82
state . creatingFile = null
82
83
state . creatingFolder = null
@@ -578,18 +579,22 @@ async function store(state, emitter) {
578
579
return ! ( f . fileName === file . fileName && f . source === source )
579
580
} )
580
581
} else {
581
-
582
+ const newSelectedFiles = selectRange ( state . lastSelectedFile , index , source ) . forEach ( ( f ) => {
583
+ } )
584
+ state . lastSelectedFile = index
582
585
state . selectedFiles . push ( {
583
586
fileName : file . fileName ,
584
587
type : file . type ,
585
588
source : source ,
586
589
parentFolder : file . parentFolder
587
590
} )
588
591
}
592
+
589
593
state . selectedDiskFiles = state . selectedFiles . filter ( ( f ) => f . source === 'disk' )
590
594
state . selectedBoardFiles = state . selectedFiles . filter ( ( f ) => f . source === 'board' )
591
595
emitter . emit ( 'render' )
592
596
} )
597
+
593
598
emitter . on ( 'open-single-file' , async ( file , source ) => {
594
599
state . selectedFiles = [ ]
595
600
state . selectedFiles . push ( {
@@ -600,6 +605,7 @@ async function store(state, emitter) {
600
605
} )
601
606
emitter . emit ( 'open-selected-files' )
602
607
} )
608
+
603
609
emitter . on ( 'open-selected-files' , async ( ) => {
604
610
let files = [ ]
605
611
for ( let i in state . selectedFiles ) {
@@ -1044,45 +1050,59 @@ function deselectFilesFromSource(source, selectedFiles) {
1044
1050
return selectedFiles . filter ( ( f ) => f . source !== source )
1045
1051
}
1046
1052
1047
- function toggleFileSelection ( { fileName, source, selectedFiles } ) {
1048
- let result = [ ]
1049
- let file = selectedFiles . find ( ( f ) => {
1050
- return f . fileName === fileName && f . source === source
1051
- } )
1052
- if ( file ) {
1053
- // filter file out
1054
- result = selectedFiles . filter ( ( f ) => {
1055
- return f . fileName !== fileName && f . source !== source
1056
- } )
1057
- } else {
1058
- // push file
1059
- selectedFiles . push ( { fileName, source } )
1060
- }
1061
- return result
1062
- }
1053
+
1054
+ /* NOT USED >> CLEAN UP LATER */
1055
+ // function toggleFileSelection({ fileName, source, selectedFiles }) {
1056
+ // let result = []
1057
+ // let file = selectedFiles.find((f) => {
1058
+ // return f.fileName === fileName && f.source === source
1059
+ // })
1060
+ // if (file) {
1061
+ // // filter file out
1062
+ // result = selectedFiles.filter((f) => {
1063
+ // return f.fileName !== fileName && f.source !== source
1064
+ // })
1065
+ // } else {
1066
+ // // push file
1067
+ // selectedFiles.push({ fileName, source })
1068
+ // }
1069
+ // return result
1070
+ // }
1063
1071
1064
1072
1065
1073
function range ( start , stop , step ) {
1066
1074
return Array . from ( { length : ( stop - start ) / step + 1 } , ( _ , i ) => start + i * step ) ;
1067
1075
}
1068
1076
1069
- function selectRange ( start , stop , source ) {
1070
- const rangeStart = Math . min ( start , stop )
1071
- const rangeEnd = Math . max ( start , stop )
1077
+ function clearSelection ( state , source ) {
1078
+ if ( source === 'disk' ) {
1079
+ deselectFilesFromSource ( 'disk' , state . selectedDiskFiles )
1080
+ state . selectedDiskFiles = [ ]
1081
+ }
1082
+ if ( source === 'board' ) {
1083
+ deselectFilesFromSource ( 'board' , state . selectedBoardFiles )
1084
+ state . selectedBoardFiles = [ ]
1085
+ }
1086
+ }
1087
+
1088
+ function selectRange ( itemA , itemB , source ) {
1089
+ const rangeStart = Math . min ( itemA , itemB )
1090
+ const rangeEnd = Math . max ( itemA , itemB )
1072
1091
if ( source === 'disk' ) {
1073
1092
return range ( rangeStart , rangeEnd , 1 ) . map ( ( i ) => {
1074
1093
return {
1075
1094
fileName : i ,
1076
1095
source : source
1077
1096
}
1078
1097
} )
1079
- } else {
1098
+ }
1099
+ else ( source === 'board' ) {
1080
1100
return range ( rangeStart , rangeEnd , 1 ) . map ( ( i ) => {
1081
1101
return {
1082
1102
fileName : i ,
1083
1103
source : source
1084
1104
}
1085
1105
} )
1086
1106
}
1087
- }
1088
1107
1108
+ }
0 commit comments