[优化] 优化界面

This commit is contained in:
ryan
2026-06-01 10:54:26 +08:00
parent fd745d33cb
commit 77bdb8bf0e
13 changed files with 56 additions and 14 deletions
@@ -10,6 +10,7 @@ export function Toaster({ ...props }: ToasterProps) {
return ( return (
<Sonner <Sonner
position="bottom-right"
theme={resolvedTheme as ToasterProps['theme']} theme={resolvedTheme as ToasterProps['theme']}
className="toaster group" className="toaster group"
toastOptions={{ toastOptions={{
@@ -116,7 +116,11 @@ export function OriginDetailPage({ originId }: { originId: string }) {
/> />
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<div className="grid gap-4 xl:grid-cols-4"> <div className="grid gap-4 xl:grid-cols-4">
@@ -1252,7 +1252,11 @@ export function ProxyRouteConfigPage({
/> />
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<div className="grid gap-6 xl:grid-cols-[280px_minmax(0,1fr)]"> <div className="grid gap-6 xl:grid-cols-[280px_minmax(0,1fr)]">
@@ -2004,7 +2004,11 @@ export function SettingsPage() {
<PageHeader title="设置" /> <PageHeader title="设置" />
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<div className="flex flex-wrap gap-3"> <div className="flex flex-wrap gap-3">
@@ -166,7 +166,11 @@ export function TlsCertificatesPage() {
/> />
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<AppCard <AppCard
@@ -159,7 +159,11 @@ export function TunnelsPage() {
/> />
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<AppCard <AppCard
@@ -305,7 +305,11 @@ export function UsersPage() {
/> />
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<AppCard <AppCard
@@ -752,9 +752,6 @@ export function WAFIPGroupsPage() {
</div> </div>
</div> </div>
)} )}
<div className="rounded-2xl bg-[var(--surface-muted)] p-4 text-xs text-[var(--foreground-secondary)] leading-relaxed">
💡 提示:抓取记录持久化存储在 IP 组的 <code>ext_ips</code> 扩展字段中。未来如需为已抓取到的 IP 记录更多维度的扩展元数据,可直接在此 JSON 对象中添加字段以供扩展。
</div>
</div> </div>
</AppModal> </AppModal>
) : null} ) : null}
@@ -340,7 +340,11 @@ export function WAFPage() {
/> />
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<div className="grid gap-5 xl:grid-cols-[360px_minmax(0,1fr)]"> <div className="grid gap-5 xl:grid-cols-[360px_minmax(0,1fr)]">
@@ -163,7 +163,11 @@ export function CertificateApplyModal({
> >
<form className="space-y-5" onSubmit={onSubmit}> <form className="space-y-5" onSubmit={onSubmit}>
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<div className="grid gap-4 md:grid-cols-2"> <div className="grid gap-4 md:grid-cols-2">
@@ -147,7 +147,11 @@ export function CertificateImportModal({
> >
<div className="space-y-6"> <div className="space-y-6">
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<div className="inline-flex rounded-2xl border border-[var(--border-default)] bg-[var(--surface-elevated)] p-1"> <div className="inline-flex rounded-2xl border border-[var(--border-default)] bg-[var(--surface-elevated)] p-1">
@@ -279,7 +279,11 @@ export function WebsiteDetailPage({ websiteId }: { websiteId: string }) {
/> />
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<div className="grid gap-4 xl:grid-cols-4"> <div className="grid gap-4 xl:grid-cols-4">
@@ -113,7 +113,11 @@ export function WebsitesPage() {
/> />
{feedback ? ( {feedback ? (
<InlineMessage tone={feedback.tone} message={feedback.message} /> <InlineMessage
tone={feedback.tone}
message={feedback.message}
onClear={() => setFeedback(null)}
/>
) : null} ) : null}
<AppCard <AppCard