[Extensions UI] Support for initializing an extension from URL.
continuous-integration/drone/push Build was killed Details

This commit is contained in:
Fabio Manganiello 2023-10-18 03:00:17 +02:00
parent 137855b4fc
commit 922297bf58
Signed by: blacklight
GPG Key ID: D90FBA7F76362774
1 changed files with 16 additions and 2 deletions

View File

@ -93,19 +93,24 @@ export default {
},
methods: {
onInput(input, setFilter = true) {
onInput(input, setFilter = true, setUrlArgs = true) {
if (setFilter) {
this.filter = input
}
const name = input?.toLowerCase()?.trim()
if (name?.length && name !== this.selectedExtension && this.extensions[name]) {
if (name?.length && this.extensions[name]) {
this.selectedExtension = name
if (setUrlArgs)
this.setUrlArgs({extension: name})
const el = this.$el.querySelector(`.extensions-container .item[data-name="${name}"]`)
if (el)
el.scrollIntoView({behavior: 'smooth'})
} else {
this.selectedExtension = null
if (setUrlArgs)
this.setUrlArgs({})
}
},
@ -129,11 +134,20 @@ export default {
} finally {
this.loading = false
}
this.loadExtensionFromUrl()
this.$watch('$route.hash', () => this.loadExtensionFromUrl())
},
async loadConfigFile() {
this.configFile = await this.request('config.get_config_file')
},
loadExtensionFromUrl() {
const extension = this.getUrlArgs().extension
if (extension)
this.$nextTick(() => this.onInput(extension, false, false))
},
},
mounted() {