Documentation Index
Fetch the complete documentation index at: https://tech.illasoft.com/llms.txt
Use this file to discover all available pages before exploring further.
概述
根据屏幕尺寸加载不同布局组件,实现 PC 和移动端的差异化体验。2026-03+ 对移动端做了大量重构,引入了独立的 mobile tool panel + 动态 safe-area。组件目录结构
components/feature
common
chat
generator
feed
home
pc
mobile
generator
tool
mobile-adjust-selector.tsx
mobile-crop-selector.tsx
feed
home
setting
布局切换
GeneratorThreadLayout 根据 isMobile 内部切换 PC / Mobile 分支。
移动端重构(2026-03+)
新增核心组件
| 组件 | 文件 | 用途 |
|---|---|---|
MobileHeader | mobile/generator/tool/mobile-header.tsx | 顶部 Tab(mobileViewMode: chat / tool) |
MobileToolPanel | mobile/generator/tool/mobile-tool-panel.tsx | 底部工具面板(含 basic / audio / video 三个子 tab) |
MobileAudioToolBar | mobile/generator/tool/mobile-audio-tool-bar.tsx | 音频专用工具栏 |
MobileAddButton | mobile/generator/tool/mobile-add-button.tsx | FAB 新建按钮 |
mobileViewMode 切换
移动端通过mobileViewMode: "chat" | "tool" 做聊天输入栏 vs 工具栏互斥显示,避免软键盘和工具栏同时出现。
动态 safe-area
移动端重构了安全区计算,放弃了”静态推断”的旧方案:- 使用
dvh(dynamic viewport height) CSS 单位代替固定vh- 例:
h-dvh/max-h-[calc(100dvh-70px)]
- 例:
- 使用
env(safe-area-inset-*)处理刘海屏 / 底部手势条
没有自定义
useSafeArea hook。safe-area 完全通过 CSS 原生单位实现(dvh + env())。聊天输入栏 collapsed / expanded
移动端聊天输入栏有独立的”折叠高度”语义,展开输入不影响主画布安全区(通过绝对定位 + overlay)。PC vs 移动端差异
| 特性 | PC | 移动端 |
|---|---|---|
| 布局 | 左右分栏(侧栏+主画布+聊天) | mobileViewMode 切换(chat 或 tool) |
| 工具栏 | 固定右侧 | MobileToolPanel 底部弹层 |
| Header | 顶部一行 | MobileHeader + Tab |
| Selector | PCAdjust / PCCrop 独立 | MobileAdjust / MobileCrop 独立 |
| 画布 | 大区域,鼠标滚轮缩放 | dvh 动态安全区,双指缩放 |
共享逻辑
- 业务逻辑在
common/ - 平台特定 UI 在
pc//mobile/ - hooks 和 store 完全共享
最佳实践
- 移动端优先考虑触摸交互
- PC 和 Mobile 共享业务逻辑,只拆分布局/Selector
- 使用
useIsMobile()(来自IsMobileProvider) - 尺寸用
dvh/env(safe-area-inset-*),不自建 safe-area hook