feat(create): 创作工作台 - 支持参考内容层叠展开与拖拽排序

合并 PR #307。\n\n原作者:陈泽 <749959948@qq.com>
This commit is contained in:
zh15728828264
2026-08-26 14:05:00 +08:00
committed by GitHub
parent 2f3a813ccb
commit e2521424eb
3 changed files with 261 additions and 18 deletions

View File

@@ -54,12 +54,33 @@ describe("creation library button", () => {
expect(canvasSource).toContain("onClick={() => onInsert(reference)}");
});
test("promotes the first reference into the primary reference slot", () => {
test("参考内容层叠轨道支持折叠、展开和 Reorder 排序", () => {
const source = readFileSync(resolve(import.meta.dir, "../src/pages/create/index.tsx"), "utf8");
const styles = readFileSync(resolve(import.meta.dir, "../src/styles/globals.css"), "utf8");
expect(source).toContain("const [primaryAttachment, ...secondaryAttachments] = props.attachments");
expect(source).toContain("<CreationAttachmentThumbnail item={primaryAttachment} primary");
expect(source).toContain("secondaryAttachments.map((item) => <CreationAttachmentThumbnail");
expect(source).toContain('className={primary ? "creation-chat-reference is-paper creation-chat-reference-media" : "creation-chat-attachment"}');
expect(source).toContain('import { Reorder } from "motion/react"');
expect(source).toContain("<Reorder.Group");
expect(source).toContain('axis="x"');
expect(source).toContain("values={props.attachments}");
expect(source).toContain("onReorder={props.onReorderAttachments}");
expect(source).toContain("<Reorder.Item");
expect(source).toContain('layout="position"');
expect(source).toContain("isExpanded");
expect(source).toContain("handleTrackMouseEnter");
expect(source).toContain("handleTrackMouseLeave");
expect(source).toContain("handleTrackFocus");
expect(source).toContain("handleTrackBlur");
expect(source).toContain("creation-reference-track-wrapper");
expect(source).toContain("creation-reference-stack-card");
expect(source).toContain("creation-reference-add-button");
expect(source).toContain("creation-reference-track-button");
expect(source).toContain("CanvasPromptOptimizerDrawer");
expect(source).toContain("promptOptimizerOpen");
expect(source).toContain("provider={props.promptOptimizerProvider}");
expect(styles).toContain(".creation-reference-track");
expect(styles).toContain(".creation-reference-stack-card");
expect(styles).toContain("--stack-rotate: -7deg");
expect(styles).toContain(".creation-reference-track.is-expanded");
expect(styles).toContain("@media (hover: none)");
});
});