1
1
const DiskFileList = generateFileList ( 'disk' )
2
2
const BoardFileList = generateFileList ( 'board' )
3
3
4
- function generateFileList ( source , selectedFiles ) {
4
+ function generateFileList ( source ) {
5
5
6
6
return function FileList ( state , emit ) {
7
7
function onKeyEvent ( e ) {
@@ -13,7 +13,10 @@ function generateFileList(source, selectedFiles) {
13
13
e . target . blur ( )
14
14
}
15
15
}
16
+ selectedFiles = state . selectedFiles
17
+ isConnected = state . isConnected
16
18
19
+ console . log ( 'generating' , source , '| selectedFiles' , selectedFiles )
17
20
/* template for new file item, with focussed input
18
21
ESC to cancel, ENTER to finish */
19
22
const newFileItem = html `
@@ -72,12 +75,19 @@ function generateFileList(source, selectedFiles) {
72
75
state . itemActionMenu = null
73
76
emit ( 'render' )
74
77
}
75
-
78
+ // let allowTransfer = false
79
+ // if (source === 'disk') {
80
+ // return canUpload(isConnected, selectedFiles)
81
+ // else {
82
+ // return canDownload(isConnected, selectedFiles)
83
+ // }
84
+ const allowTransfer = source === 'disk' ? canUpload ( { isConnected, selectedFiles} ) : canDownload ( { isConnected, selectedFiles} )
85
+ const allowRename = selectedFiles . length === 1
76
86
function ItemActions ( item , i ) {
77
87
const popupMenu = html `
78
88
< div class ="popup-menu ">
79
- < div class ="popup-menu-item ${ state . isConnected ? '' : 'disabled' } " onclick =${ triggerTransfer } > < img src ="media/${ source === 'disk' ? 'upload' : 'download' } .svg " /> </ div >
80
- < div class ="popup-menu-item " onclick =${ ( ) => triggerRename ( item ) } > < img src ="media/cursor.svg " /> </ div >
89
+ < div class ="popup-menu-item ${ allowTransfer ? '' : 'disabled' } " onclick =${ triggerTransfer } > < img src ="media/${ source === 'disk' ? 'upload' : 'download' } .svg " /> </ div >
90
+ < div class ="popup-menu-item ${ allowRename ? '' : 'disabled' } " " onclick=${ ( ) => triggerRename ( item ) } > < img src ="media/cursor.svg " /> </ div >
81
91
< div class ="popup-menu-item " onclick =${ triggerRemove } > < img src ="media/delete.svg " /> </ div >
82
92
< div class ="popup-menu-item " onclick =${ ( e ) => { dismissContextMenu ( e , item ) } } > < img src ="media/arrow-right-white.svg " /> </ div >
83
93
</ div > `
@@ -113,8 +123,6 @@ function generateFileList(source, selectedFiles) {
113
123
function toggleActionsMenu ( item , source , e ) {
114
124
e . stopPropagation ( )
115
125
console . log ( "show file options" , item , source , e )
116
- // const popupMenu = e.currentTarget.parentElement.querySelector('.popup-menu')
117
- // popupMenu.classList.add('visible')
118
126
emit ( 'file-context-menu' , item , source , e )
119
127
}
120
128
@@ -130,17 +138,13 @@ function generateFileList(source, selectedFiles) {
130
138
fileName = renamingFileItem
131
139
}
132
140
133
- // a context menu has been triggered
134
- const contextMenuOpen = state . itemActionMenu != null
135
-
136
141
// only show the action menu on current item
137
- const showActionMenu = state . itemActionMenu && state . itemActionMenu . fileName === item . fileName && state . itemActionMenu . source === source
142
+ const showActionMenu = state . itemActionMenu
143
+ && state . itemActionMenu . fileName === item . fileName
144
+ && state . itemActionMenu . source === source
138
145
139
- // let actionMenuHtml = html``
140
- // if (showActionMenu) {
141
146
const actionMenuHtml = showActionMenu ? html `${ ItemActions ( item , i ) } ` : html ``
142
- // }
143
-
147
+
144
148
if ( item . type === 'folder' ) {
145
149
return html `
146
150
< div
@@ -160,7 +164,6 @@ function generateFileList(source, selectedFiles) {
160
164
</ div >
161
165
`
162
166
} else {
163
- //<div class="options" onclick=${(e) => {contextualMenu(e, item)}}>
164
167
return html `
165
168
< div
166
169
class ="item ${ isChecked ? 'selected' : '' } ${ showActionMenu ? 'actionable' : '' } "
@@ -180,7 +183,7 @@ function generateFileList(source, selectedFiles) {
180
183
`
181
184
}
182
185
}
183
- //
186
+
184
187
// XXX: Use `source` to filter an array of files with a `source` as proprety
185
188
const files = state [ `${ source } Files` ] . sort ( ( a , b ) => {
186
189
const nameA = a . fileName . toUpperCase ( )
0 commit comments