From bc35daa1105e3f5d4c36db9d5aef6c9e39cd2b58 Mon Sep 17 00:00:00 2001
From: letr <123731298+letr007@users.noreply.github.com>
Date: Wed, 27 May 2026 11:59:06 +0800
Subject: [PATCH] fix(webui): restore mobile provider source deletion (#8321)
* fix(webui): restore mobile provider source deletion
* fix(webui): improve provider source delete accessibility
---
.../provider/ProviderSourcesPanel.vue | 32 +++++++++++++++++++
.../i18n/locales/en-US/features/provider.json | 1 +
.../i18n/locales/ru-RU/features/provider.json | 1 +
.../i18n/locales/zh-CN/features/provider.json | 1 +
4 files changed, 35 insertions(+)
diff --git a/dashboard/src/components/provider/ProviderSourcesPanel.vue b/dashboard/src/components/provider/ProviderSourcesPanel.vue
index abf43ca6e..c2c7c9d2f 100644
--- a/dashboard/src/components/provider/ProviderSourcesPanel.vue
+++ b/dashboard/src/components/provider/ProviderSourcesPanel.vue
@@ -55,6 +55,18 @@
+
+
@@ -181,6 +195,9 @@ const emit = defineEmits([
])
const selectedId = computed(() => props.selectedProviderSource?.id || null)
+const canDeleteSelectedSource = computed(() =>
+ Boolean(props.selectedProviderSource && !props.selectedProviderSource.isPlaceholder)
+)
const isActive = (source) => {
if (source.isPlaceholder) return false
@@ -211,6 +228,12 @@ const emitAddSource = (type) => emit('add-provider-source', type)
const emitSelectSource = (source) => emit('select-provider-source', source)
const emitDeleteSource = (source) => emit('delete-provider-source', source)
+const deleteSelectedSource = () => {
+ if (canDeleteSelectedSource.value) {
+ emitDeleteSource(props.selectedProviderSource)
+ }
+}
+
const selectSourceByValue = (value) => {
const option = sourceOptions.value.find((item) => item.value === value)
if (option?.source) {
@@ -263,6 +286,11 @@ const selectSourceByValue = (value) => {
flex: 1;
}
+.provider-sources-mobile-delete {
+ display: none;
+ flex-shrink: 0;
+}
+
.provider-source-select-value {
min-width: 0;
display: inline-flex;
@@ -375,6 +403,10 @@ const selectSourceByValue = (value) => {
display: block;
}
+ .provider-sources-mobile-delete {
+ display: inline-flex;
+ }
+
.provider-sources-controls {
width: 100%;
}
diff --git a/dashboard/src/i18n/locales/en-US/features/provider.json b/dashboard/src/i18n/locales/en-US/features/provider.json
index 26e2b167f..4310e22dd 100644
--- a/dashboard/src/i18n/locales/en-US/features/provider.json
+++ b/dashboard/src/i18n/locales/en-US/features/provider.json
@@ -93,6 +93,7 @@
"providerSources": {
"title": "Provider Sources",
"add": "Add",
+ "delete": "Delete provider source",
"empty": "No provider sources",
"selectHint": "Please select a provider source",
"selectCreated": "Select created provider source",
diff --git a/dashboard/src/i18n/locales/ru-RU/features/provider.json b/dashboard/src/i18n/locales/ru-RU/features/provider.json
index 8a4311283..0ce704aea 100644
--- a/dashboard/src/i18n/locales/ru-RU/features/provider.json
+++ b/dashboard/src/i18n/locales/ru-RU/features/provider.json
@@ -94,6 +94,7 @@
"providerSources": {
"title": "Источник провайдера",
"add": "Добавить",
+ "delete": "Удалить источник провайдера",
"empty": "Источники не найдены",
"selectHint": "Пожалуйста, выберите источник провайдера",
"selectCreated": "Выбрать существующий источник",
diff --git a/dashboard/src/i18n/locales/zh-CN/features/provider.json b/dashboard/src/i18n/locales/zh-CN/features/provider.json
index 5ca6bf7f8..d7bd1c631 100644
--- a/dashboard/src/i18n/locales/zh-CN/features/provider.json
+++ b/dashboard/src/i18n/locales/zh-CN/features/provider.json
@@ -94,6 +94,7 @@
"providerSources": {
"title": "提供商源",
"add": "新增",
+ "delete": "删除提供商源",
"empty": "暂无提供商源",
"selectHint": "请选择一个提供商源",
"selectCreated": "选择已创建的提供商源",