This commit is contained in:
2026-05-06 00:10:45 +08:00
parent 2e3eb4b8f8
commit 916a4f5ffc
19 changed files with 2431 additions and 723 deletions
+14 -8
View File
@@ -29,13 +29,10 @@ export default async function AdminSubscriptionsPage() {
<main className="page-stack">
<section className="hero-panel">
<div className="hero-copy">
<span className="eyebrow">SUBSCRIPTIONS</span>
<span className="eyebrow">订阅</span>
<h2>订阅与模板</h2>
<p className="page-lede">
管理 Clash 基础模板、订阅文件名、代理分组以及管理员默认不限量订阅链接。
</p>
<div className="badge-row">
<span className="status-pill status-pill--ok">动态 proxies</span>
<span className="status-pill status-pill--ok">节点 {nodes.length}</span>
<span className="status-pill status-pill--ink">分组 {settings.proxyGroups.length}</span>
</div>
</div>
@@ -69,11 +66,20 @@ export default async function AdminSubscriptionsPage() {
<section className="panel-card">
<div className="section-title section-title--top">
<div className="stack-tight">
<h3>Proxy Groups</h3>
<p className="muted">已选列表从上到下的顺序,就是写入 Clash 配置时的节点顺序。</p>
<h3>代理分组</h3>
</div>
</div>
<div className="stack-lg">
<ProxyGroupEditor
mode="main"
group={{
id: "main",
name: settings.profileName,
memberSlugs: settings.mainProxyGroupMemberSlugs,
}}
nodes={proxyGroupNodes}
/>
{settings.proxyGroups.map((group) => (
<ProxyGroupEditor key={group.id} group={group} nodes={proxyGroupNodes} />
))}
@@ -84,7 +90,7 @@ export default async function AdminSubscriptionsPage() {
<section className="panel-card">
<div className="section-title">
<h3>Clash 模板</h3>
<h3>订阅模板</h3>
</div>
<form action={saveSubscriptionSettingsAction} className="stack-lg">
<label className="field">