fix: polish chat interaction states

This commit is contained in:
Jesse_Chen
2026-07-17 15:31:39 +08:00
parent 129033787d
commit 45acb8278b
6 changed files with 171 additions and 6 deletions
+2 -2
View File
@@ -108,7 +108,7 @@ button:disabled { cursor: default; opacity: .45; }
.session-nav { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.chevron { width: 18px; height: 18px; color: var(--color-ink-tertiary); }
.chat-header strong, .chat-header span { display: block; }
.credit-button span { display: block; margin: 0; color: inherit; font-size: inherit; }
.credit-button span { display: inline-flex; align-items: center; margin: 0; color: inherit; font-size: inherit; line-height: 1; }
.credit-button .credit-icon { width: 16px; height: 16px; flex: 0 0 auto; }
.welcome-mark { margin-bottom: 20px; }
.welcome h1, .auth-panel h1, .admin-header h1 { margin: 0; font-size: clamp(30px, 4vw, 42px); font-weight: 600; letter-spacing: -.035em; line-height: 1.1; }
@@ -348,7 +348,7 @@ button:disabled { cursor: default; opacity: .45; }
.model-selector-trigger svg { width: 16px; height: 16px; flex: 0 0 auto; color: var(--color-ink-tertiary); transition: transform 120ms ease-out; }
.model-selector-trigger[data-popup-open] svg { transform: rotate(180deg); }
.model-selector-positioner { z-index: 30; outline: 0; }
.model-selector-popup { width: min(360px, calc(100vw - var(--space-6))); border: 1px solid var(--color-border); padding: var(--space-3); border-radius: var(--radius-lg); background: var(--color-canvas); box-shadow: var(--shadow-elevated); transform-origin: var(--transform-origin); transition: opacity 120ms ease-out, transform 120ms var(--ease-out); }
.model-selector-popup { width: min(180px, calc(100vw - var(--space-6))); border: 1px solid var(--color-border); padding: var(--space-3); border-radius: var(--radius-lg); background: var(--color-canvas); box-shadow: var(--shadow-elevated); transform-origin: var(--transform-origin); transition: opacity 120ms ease-out, transform 120ms var(--ease-out); }
.model-selector-popup[data-starting-style], .model-selector-popup[data-ending-style] { opacity: 0; transform: translateY(var(--space-1)); }
.model-selector-title { margin: 0; color: var(--color-ink); font-family: var(--font-display); font-size: var(--type-title-sm); font-weight: 400; }
.model-selector-options { display: grid; gap: var(--space-1); margin: var(--space-2) 0 0; padding: 0; border: 0; }
+2 -3
View File
@@ -1507,7 +1507,6 @@ export default function Home() {
setComposerNotice("");
setMobileSidebarOpen(false);
}}
disabled={Boolean(pendingSessionId) || cancellationPending}
aria-current={session.id === activeSession?.id ? "page" : undefined}
>
<span>{session.title}</span>
@@ -1586,7 +1585,7 @@ export default function Home() {
{!profileComplete && onboardingStep === "name" && accountError && <p className="form-error onboarding-inline-error" role="alert">{accountError}</p>}
{profileComplete && presetMessageFinished && !draft.trim() && (onboardingPending ? (
{profileComplete && presetMessageFinished && (onboardingPending ? (
<div className="starter-loading" role="status">正在准备三个入门问题…</div>
) : (
<div className="starter-list" aria-label="Jyotisha 推荐的初始问题">
@@ -1634,7 +1633,7 @@ export default function Home() {
</div>
<div className="composer-wrap">
{activeSuggestions.length > 0 && !draft.trim() && !isLoading && !cancellationPending && (
{activeSuggestions.length > 0 && !isLoading && !cancellationPending && (
<div className="composer-suggestions" aria-label="推荐继续提问">
{activeSuggestions.map((question) => (
<button key={question} type="button" disabled={!account || !modelCatalog || cancellationPending} onClick={() => chooseSuggestedQuestion(question)}>{question}</button>