Opening an unsupported mime file freezes the UI
Describe the bug
Opening an unsupported mime file from the file view freeze on the wait icon, with no error message displayed to the user
To Reproduce
Run the following in console while browsing files:
OCA.Viewer.open({path:'/path/to/unuspported-mime.type'})
The console reports:
Viewer.vue:450 TypeError: Cannot read properties of undefined (reading 'theme')
at Viewer.vue:399:1
at u (runtime.js:63:40)
at Generator._invoke (runtime.js:294:22)
at Generator.next (runtime.js:119:21)
at Vm (Download.vue?b226:19:33)
at i (Download.vue?b226:19:33)
Probable fix
Seems that in Viewer.vue - https://github.com/nextcloud/viewer/blame/22e47429df029eeb2f36e2361f49e59768dec725/src/views/Viewer.vue#L559 , the use of the handler variable should be swapped with its verification:
this.theme = handler.theme ?? 'dark' // Moving that after the if to bring back error message
// if we don't have a handler for this mime, abort
if (!handler) {
logger.error('The following file could not be displayed', { fileInfo })
showError(t('viewer', 'There is no plugin available to display this file type'))
this.close()
return
}
Hi, I am new to Open Source and I want to contribute to this project, so could you please assign this issue to me ? I am excited to work towards resolving it.
@Pushyajain There's no need to get "assigned" it - if you have a proposed implementation submit it as PR from your own fork of the repository.
Hello, having the same issue.
Opening from my app using this code. With a filePath pointing to a file with a mimetype not supported.
OCA.Viewer.open({path: filePath,});
Give me this error in console.
Viewer.vue:639 Could not open file /LICENSE.md TypeError: Cannot read properties of undefined (reading 'theme') at o.openFileInfo (Viewer.vue:675:1) at o.openFile (Viewer.vue:632:1)
How can I deal with that from my app ?