feat(web): 生成器 ThinkingIndicator/空结果态/数量校验 + 文风页 PageHeader + Codex 分段控件 + RefineView role 修正

This commit is contained in:
Yaojia Wang
2026-06-30 08:56:23 +02:00
parent 68606b84dc
commit 9d67f237a2
7 changed files with 126 additions and 46 deletions

View File

@@ -1,6 +1,8 @@
"use client";
import { AppShell } from "@/components/AppShell";
import { PageHeader } from "@/components/ui/PageHeader";
import { SectionHeader } from "@/components/ui/SectionHeader";
import type { ProjectResponse } from "@/lib/api/types";
import { useStyleLearn } from "@/lib/style/useStyleLearn";
import type { Fingerprint, StyleLearnMode } from "@/lib/style/style";
@@ -27,21 +29,31 @@ export function StylePage({ project, initialFingerprint }: StylePageProps) {
projectId={project.id}
activeNav="style"
>
<div className="flex min-h-[calc(100vh-var(--chrome,4rem))] flex-col lg:grid lg:h-[calc(100vh-var(--chrome,4rem))] lg:min-h-0 lg:grid-cols-[28rem_1fr]">
<section className="flex flex-col border-line bg-panel px-6 py-6 lg:overflow-auto lg:border-r">
<h1 className="mb-3 font-serif text-lg text-ink"></h1>
<StyleUpload
busy={learn.busy}
pollStatus={learn.pollStatus === "idle" ? "idle" : learn.pollStatus}
progress={learn.progress}
hasFingerprint={learn.fingerprint !== null}
onLearn={onLearn}
<div className="flex min-h-[calc(100vh-var(--chrome,4rem))] flex-col">
<div className="px-6 pt-6">
<PageHeader
title="文风指纹"
description="上传你的代表作样本,让 AI 学出十六维文风指纹,作为后续写作与第四审的对照标尺。"
/>
</section>
</div>
<div className="flex flex-1 flex-col lg:grid lg:min-h-0 lg:grid-cols-[28rem_1fr]">
<section className="flex flex-col border-line bg-panel px-6 py-6 lg:overflow-auto lg:border-r">
<SectionHeader title="学习文风" className="mb-3" />
<StyleUpload
busy={learn.busy}
pollStatus={
learn.pollStatus === "idle" ? "idle" : learn.pollStatus
}
progress={learn.progress}
hasFingerprint={learn.fingerprint !== null}
onLearn={onLearn}
/>
</section>
<section className="bg-bg px-6 py-6 lg:overflow-auto">
<FingerprintView fingerprint={learn.fingerprint} />
</section>
<section className="bg-bg px-6 py-6 lg:overflow-auto">
<FingerprintView fingerprint={learn.fingerprint} />
</section>
</div>
</div>
</AppShell>
);