本文档详细概述了Screenshot-to-Code应用程序的用户界面组件。重点介绍了用户直接交互的UI元素之间的结构、关系和交互。有关为这些组件提供支持的状态管理信息,请参阅状态管理。
Screenshot-to-Code的前端采用了一种由状态驱动的架构,其中根据当前应用程序状态显示不同的UI组件。主要的应用程序状态定义在AppState枚举中,该枚举包括INITIAL、CODING和CODE_READY状态。
来源: frontend/src/store/app-store.ts1-31 frontend/src/components/sidebar/Sidebar.tsx1-179 frontend/src/components/preview/PreviewPane.tsx1-99
应用程序UI组织在两个主要容器组件中,它们根据应用程序状态管理各种UI元素的显示
来源: frontend/src/components/preview/PreviewPane.tsx1-99 frontend/src/components/sidebar/Sidebar.tsx1-179
该应用程序为用户提供了三种输入内容以生成代码的方法
ImageUpload组件允许用户通过拖放或文件选择来上传屏幕截图或视频录制。
主要功能
react-dropzone进行拖放文件上传react-hot-toast显示上传进度和错误消息来源: frontend/src/components/ImageUpload.tsx1-195
UrlInputSection组件允许用户输入URL以捕获屏幕截图以生成代码。
主要功能
/api/screenshot端点发送请求来源: frontend/src/components/UrlInputSection.tsx1-78
ImportCodeSection组件允许用户导入现有的HTML代码进行修改。
主要功能
来源: frontend/src/components/ImportCodeSection.tsx1-76
PreviewPane组件是用于以不同格式查看生成代码输出的主显示区域。
主要功能
来源: frontend/src/components/preview/PreviewPane.tsx1-99 frontend/src/components/ui/tabs.tsx1-53
Sidebar组件是几个关键UI元素的容器,这些元素会根据应用程序状态而变化。
关键状态和组件
CODING状态下:显示加载指示器、执行状态和取消按钮CODE_READY状态下:显示更新说明输入、更新按钮和重新生成选项来源: frontend/src/components/sidebar/Sidebar.tsx1-179
当处于CODE_READY状态时,侧边栏会显示一个界面,供用户输入用于更新生成代码的说明。
主要功能
来源: frontend/src/components/sidebar/Sidebar.tsx87-121 frontend/src/store/app-store.ts9-25
UI组件由Zustand存储中保存的状态驱动。控制UI的关键存储是
INITIAL、CODING、CODE_READY)和UI模式来源: frontend/src/store/app-store.ts1-31 frontend/src/components/sidebar/Sidebar.tsx31-34 frontend/src/components/preview/PreviewPane.tsx25-36
以下图表说明了通过应用程序UI的典型用户交互流程
来源: frontend/src/components/sidebar/Sidebar.tsx1-179 frontend/src/components/preview/PreviewPane.tsx1-99 frontend/src/store/app-store.ts1-31
| 组件 | 文件路径 | 目的 | 主要属性 |
|---|---|---|---|
| ImageUpload | frontend/src/components/ImageUpload.tsx | 处理图像/视频上传 | setReferenceImages |
| UrlInputSection | frontend/src/components/UrlInputSection.tsx | 从URL捕获屏幕截图 | screenshotOneApiKey, doCreate |
| ImportCodeSection | frontend/src/components/ImportCodeSection.tsx | 导入现有代码 | importFromCode |
| PreviewPane | frontend/src/components/preview/PreviewPane.tsx | 以各种模式显示生成的代码 | doUpdate, reset, settings |
| 侧边栏 | frontend/src/components/sidebar/Sidebar.tsx | 包含控件和附加信息 | doUpdate, regenerate, cancelCodeGeneration |
| 变体 | frontend/src/components/variants/Variants.tsx | 显示代码变体 | (使用项目存储) |
| HistoryDisplay | frontend/src/components/history/HistoryDisplay.tsx | 显示提交历史 | shouldDisableReverts |
来源: frontend/src/components/ImageUpload.tsx54-59 frontend/src/components/UrlInputSection.tsx7-11 frontend/src/components/ImportCodeSection.tsx17-19 frontend/src/components/preview/PreviewPane.tsx18-22 frontend/src/components/sidebar/Sidebar.tsx16-21
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(ff18ae)