feat(search): 后台可以自己添加搜索引擎

- 搜索引擎 id 放宽:小写字母/数字/-/_,1–30 位,internal 保留;最多 10 个
- 后台搜索框面板加「添加搜索引擎」(id 自动生成 custom-xxx)与每行「删除」
- 自定义引擎用组件库 EngineIcon 的通用地球图标(@stash/ui 0.3.3)
- 搜索地址仍要求 http(s):// + {query},默认项被删/停用时回落到站内搜索
This commit is contained in:
2026-11-06 12:19:06 +08:00
parent 9f1a8863f4
commit 281f04b060
6 changed files with 108 additions and 35 deletions
+2 -3
View File
@@ -10,7 +10,6 @@ import {
SearchField,
Space,
Toaster,
type EngineIconName,
type MenuItem,
} from '@stash/ui'
import { useEffect, useMemo, useRef, useState } from 'react'
@@ -931,7 +930,7 @@ export default function AppNext() {
}
onClick={() => setEngineOpen((open) => !open)}
>
<EngineIcon name={searchEngine.id as EngineIconName} size={14} />
<EngineIcon name={searchEngine.id} size={14} />
<span>{searchEngine.name}</span>
</button>
@@ -978,7 +977,7 @@ export default function AppNext() {
className={`engine-option${engine.id === searchEngine.id ? ' is-active' : ''}`}
onClick={() => chooseEngine(engine.id)}
>
<EngineIcon name={engine.id as EngineIconName} size={18} />
<EngineIcon name={engine.id} size={18} />
<span>{engine.name}</span>
</button>
))}