mirror of
https://github.com/nextcloud/server.git
synced 2026-06-11 01:30:50 -04:00
Merge pull request #42444 from nextcloud/fix/41877/files--move-focus-to-sidebar-on-open
This commit is contained in:
commit
66bd27f5c6
6 changed files with 27 additions and 16 deletions
|
|
@ -35,7 +35,6 @@
|
|||
<NcActions ref="actionsMenu"
|
||||
:boundaries-element="getBoundariesElement"
|
||||
:container="getBoundariesElement"
|
||||
:disabled="isLoading || loading !== ''"
|
||||
:force-name="true"
|
||||
type="tertiary"
|
||||
:force-menu="enabledInlineActions.length === 0 /* forceMenu only if no inline actions */"
|
||||
|
|
@ -272,6 +271,11 @@ export default Vue.extend({
|
|||
},
|
||||
|
||||
async onActionClick(action, isSubmenu = false) {
|
||||
// Skip click on loading
|
||||
if (this.isLoading || this.loading !== '') {
|
||||
return
|
||||
}
|
||||
|
||||
// If the action is a submenu, we open it
|
||||
if (this.enabledSubmenuActions[action.id]) {
|
||||
this.openedSubmenu = action
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@
|
|||
ref="sidebar"
|
||||
v-bind="appSidebar"
|
||||
:force-menu="true"
|
||||
tabindex="0"
|
||||
@close="close"
|
||||
@update:active="setActiveTab"
|
||||
@[defaultActionListener].stop.prevent="onDefaultAction"
|
||||
|
|
@ -471,6 +470,10 @@ export default {
|
|||
throw new Error(`Invalid path '${path}'`)
|
||||
}
|
||||
|
||||
// Only focus the tab when the selected file/tab is changed in already opened sidebar
|
||||
// Focusing the sidebar on first file open is handled by NcAppSidebar
|
||||
const focusTabAfterLoad = !!this.Sidebar.file
|
||||
|
||||
// update current opened file
|
||||
this.Sidebar.file = path
|
||||
|
||||
|
|
@ -489,19 +492,23 @@ export default {
|
|||
view.setFileInfo(this.fileInfo)
|
||||
})
|
||||
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.tabs) {
|
||||
this.$refs.tabs.updateTabs()
|
||||
}
|
||||
this.setActiveTab(this.Sidebar.activeTab || this.tabs[0].id)
|
||||
})
|
||||
await this.$nextTick()
|
||||
|
||||
this.setActiveTab(this.Sidebar.activeTab || this.tabs[0].id)
|
||||
|
||||
this.loading = false
|
||||
|
||||
await this.$nextTick()
|
||||
|
||||
if (focusTabAfterLoad) {
|
||||
this.$refs.sidebar.focusActiveTabContent()
|
||||
}
|
||||
} catch (error) {
|
||||
this.loading = false
|
||||
this.error = t('files', 'Error while loading the file data')
|
||||
console.error('Error while loading the file data', error)
|
||||
|
||||
throw new Error(error)
|
||||
} finally {
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
4
dist/files-main.js
vendored
4
dist/files-main.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-main.js.map
vendored
2
dist/files-main.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files-sidebar.js
vendored
4
dist/files-sidebar.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-sidebar.js.map
vendored
2
dist/files-sidebar.js.map
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue