diff --git a/app/assets/javascripts/repository/file_tree_browser/components/tree_list.vue b/app/assets/javascripts/repository/file_tree_browser/components/tree_list.vue index 1380f332b4407c6122e93bb3d68938b99a7421d0..20035b2d563b785a6becc39d53d197beaeebe432 100644 --- a/app/assets/javascripts/repository/file_tree_browser/components/tree_list.vue +++ b/app/assets/javascripts/repository/file_tree_browser/components/tree_list.vue @@ -299,7 +299,7 @@ export default { await expand(); }, - toggleDirectory(normalizedPath) { + toggleDirectory(normalizedPath, { toggleClose = true } = {}) { if (!this.expandedPathsMap[normalizedPath]) { // If directory is collapsed, expand it this.expandedPathsMap = { @@ -307,8 +307,8 @@ export default { [normalizedPath]: true, }; this.fetchDirectory(normalizedPath); - } else { - // If directory is already expanded, collapse it + } else if (toggleClose) { + // If directory is already expanded and toggleClose=true, collapse it const newExpandedPaths = { ...this.expandedPathsMap }; delete newExpandedPaths[normalizedPath]; this.expandedPathsMap = newExpandedPaths; @@ -413,7 +413,8 @@ export default { :level="item.level" :opened="item.opened" :loading="item.loading" - :tabindex="item.loading ? -1 : 0" + show-tree-toggle + tabindex="-1" :aria-current="isCurrentPath(item.path)" role="treeitem" :aria-expanded="item.opened" @@ -428,7 +429,7 @@ export default { }" class="gl-relative !gl-mx-0" truncate-middle - @clickTree="toggleDirectory(item.path)" + @clickTree="(options) => toggleDirectory(item.path, options)" @showMore="fetchDirectory(item.parentPath)" /> diff --git a/app/assets/javascripts/vue_shared/components/file_row.vue b/app/assets/javascripts/vue_shared/components/file_row.vue index aede0f21d15ff26df97b919a3bf7a8e27e5e45ee..2a42c9d70957089d52aa54f70fae6997ce2d984e 100644 --- a/app/assets/javascripts/vue_shared/components/file_row.vue +++ b/app/assets/javascripts/vue_shared/components/file_row.vue @@ -1,6 +1,7 @@