优化素材库多选操作 #114

Merged
kdletters merged 38 commits from fix/multi-select into master 2026-08-08 11:11:26 +08:00

38 Commits

Author SHA1 Message Date
k88936 e633039d11 合并主分支
Project CI / Repository checks (pull_request) Successful in 1m4s
Project CI / Frontend tests (pull_request) Successful in 3m32s
Project CI / Backend tests (pull_request) Successful in 4m10s
Project CI / Native shell tests (pull_request) Successful in 14m12s
解决合并冲突
2026-08-08 10:40:18 +08:00
k88936 1cac7a3004 合并主分支
Project CI / Repository checks (pull_request) Successful in 1m40s
Project CI / Frontend tests (pull_request) Successful in 2m59s
Project CI / Backend tests (pull_request) Successful in 3m47s
Project CI / Native shell tests (pull_request) Successful in 14m2s
处理合并冲突
2026-08-07 22:21:25 +08:00
kdletters fa23eb5220 合并主分支
处理合并冲突
2026-08-07 19:41:23 +08:00
k88936 e87228156c 修复私有序列帧批量导出去重
Project CI / Repository checks (pull_request) Successful in 1m10s
Project CI / Frontend tests (pull_request) Successful in 3m20s
Project CI / Backend tests (pull_request) Successful in 3m52s
Project CI / Native shell tests (pull_request) Successful in 15m43s
将帧级 assetObjectId、objectKey 与 imageSrc 纳入有边界的稳定导出身份
补充两个 objectKey-only 私有序列共同导出及 metadata 映射回归
同步角色动作集合导出去重契约文档
2026-08-07 15:25:06 +08:00
k88936 4911801ed6 修复项目切换清单竞态测试超时
Project CI / Repository checks (pull_request) Successful in 1m1s
Project CI / Frontend tests (pull_request) Successful in 3m28s
Project CI / Backend tests (pull_request) Successful in 4m1s
Project CI / Native shell tests (pull_request) Failing after 10m14s
等待事件监听注册后再触发 manifest 失效并以有界断言确认读取启动
将迟到响应收尾纳入异步 act 避免测试时序悬挂
补充 React 异步事件测试准则
2026-08-07 14:26:49 +08:00
k88936 ab5ec2c40f 合并主分支
Project CI / Repository checks (pull_request) Successful in 1m1s
Project CI / Frontend tests (pull_request) Failing after 2m35s
Project CI / Backend tests (pull_request) Successful in 4m10s
Project CI / Native shell tests (pull_request) Successful in 15m40s
解决简单合并冲突
2026-08-07 14:03:01 +08:00
k88936 6244f8eeb9 标注素材选择与导出待办
明确记录框选热路径的性能问题与优化边界
注明序列部分成功是 master 既有行为并等待契约讨论
2026-08-07 13:32:48 +08:00
k88936 f4131c0421 修复素材选择模式交互边界
阻断选择模式下的素材移动与外部文件投放并清理拖拽状态
固定隐藏素材删除确认目标并在选择范围漂移时关闭弹窗
收敛选择交互契约与素材行标签分支
修正短视口侧栏高度并补充定向回归测试和文档
2026-08-07 13:17:33 +08:00
k88936 d1a9b36104 修复素材多选与导出边界问题
修复触摸滚动、滚动框选坐标和抬手/取消语义
统一不可选素材行的交互与无障碍状态
支持仅帧来源的序列帧导出并统一导出互斥锁
补充定向回归测试并同步素材选择与导出文档
2026-08-07 12:11:17 +08:00
k88936 ef42374b44 合并主分支
Project CI / Repository checks (pull_request) Successful in 55s
Project CI / Frontend tests (pull_request) Successful in 3m0s
Project CI / Backend tests (pull_request) Successful in 3m43s
Project CI / Native shell tests (pull_request) Successful in 12m37s
无冲突
2026-08-06 18:44:56 +08:00
k88936 95f7bcde97 合并主线并保留素材多选导出修复
合并主线角色动作序列帧、完美像素、外部编辑器与 AI 游戏创作 Runtime 最新改动
保留 objectKey-only 私有素材多选、批量导出与统一时间戳语义
统一素材删除门禁、参考图上传锁和侧栏选择状态清理
同步图片画布技术方案与角色动作下载集成测试
2026-08-06 17:58:15 +08:00
k88936 9afd1ebfdb fix: 修复 objectKey-only 私有素材的多选与批量导出。
统一使用 src || objectKey 判断素材是否可读
已同步导出方案文档
2026-08-04 10:52:15 +08:00
k88936 3aefd70b5a Merge branch 'master' into fix/multi-select
Project CI / Repository checks (pull_request) Successful in 56s
Project CI / Frontend tests (pull_request) Successful in 3m11s
Project CI / Backend tests (pull_request) Successful in 4m17s
Project CI / Native shell tests (pull_request) Successful in 13m5s
2026-08-03 19:11:12 +08:00
k88936 83115ad9b2 Merge branch 'master' into fix/multi-select
Project CI / Repository checks (pull_request) Successful in 1m9s
Project CI / Frontend tests (pull_request) Successful in 3m19s
Project CI / Backend tests (pull_request) Successful in 3m57s
Project CI / Native shell tests (pull_request) Successful in 11m40s
2026-08-03 17:17:46 +08:00
k88936 1b942e174c Merge remote-tracking branch 'origin/master' into fix/multi-select
Project CI / Repository checks (pull_request) Successful in 56s
Project CI / Backend tests (pull_request) Successful in 3m46s
Project CI / Frontend tests (pull_request) Successful in 3m1s
Project CI / Native shell tests (pull_request) Failing after 5m15s
2026-08-03 15:59:57 +08:00
k88936 bc665c45d7 Merge remote-tracking branch 'origin/master' into fix/multi-select
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Failing after 20s
Project CI / Native shell tests (pull_request) Failing after 3m18s
2026-08-03 15:58:47 +08:00
k88936 31e0cb7456 style: 调整关闭按钮的图标样式,增加统一尺寸类名
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Failing after 20s
Project CI / Native shell tests (pull_request) Successful in 10m34s
2026-08-03 10:15:00 +08:00
k88936 7570134f00 修复素材框选捕获丢失后的状态清理
新增 lostpointercapture 指针匹配清理且不重复释放捕获
贯通素材选择 Hook 到素材列表的丢失捕获事件
补充生命周期回归测试和前端拆分文档
2026-07-31 20:17:30 +08:00
k88936 2da3dc0544 fix: 保留跨搜索/折叠选择,隐藏选择参与删除时必须明确确认。
更新行为文档
补充测试
2026-07-31 20:04:48 +08:00
k88936 8526063cea fix: 当选择模式激活时关闭上下文菜单
- 添加 `useEffect`,在 `isAssetSelectionMode` 为 true 时关闭菜单。
- 更新测试以覆盖新行为。
2026-07-31 19:46:44 +08:00
k88936 31900df2b8 fix: 修复多选逻辑
重构多选逻辑到一个单独的hook
不在最终提交时过滤, 只有选择操作会影响最终结果集合
2026-07-31 19:38:52 +08:00
k88936 7cd9aa790c perf: 改用map查询素材库中素材下载
考虑到整个素材库的规模可能很大, 改用map查询
2026-07-31 17:45:04 +08:00
k88936 cf1ee0e203 refactor: 抽取通用样式 2026-07-31 17:41:35 +08:00
k88936 b1cdafe619 Merge remote-tracking branch 'origin/master' into fix/multi-select
# Conflicts:
#	docs/technical/【前端架构】图片画布编辑器MVP接入方案-2026-06-11.md
#	src/components/image-editor/ImageCanvasAssetLibraryModel.test.ts
#	src/components/image-editor/ImageCanvasSidebarView.test.tsx
2026-07-31 17:16:06 +08:00
k88936 cd159163c5 fix: 合并回归问题
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Backend tests (pull_request) Failing after 8s
Project CI / Frontend tests (pull_request) Successful in 2m44s
Project CI / Native shell tests (pull_request) Successful in 12m14s
修复文件encoding要求
更新测试
2026-07-31 16:56:49 +08:00
k88936 1297ac192e Merge remote-tracking branch 'origin/master' into fix/multi-select
Project CI / Native shell tests (pull_request) Successful in 11m34s
Project CI / Frontend tests (pull_request) Failing after 12s
Project CI / Repository checks (pull_request) Failing after 46s
Project CI / Backend tests (pull_request) Failing after 2m37s
# Conflicts:
#	docs/project-memory/shared-memory/decision-log.md
2026-07-31 16:18:47 +08:00
k88936 59759360b7 同步素材多选导出技术口径
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Failing after 33s
Project CI / Native shell tests (pull_request) Successful in 1m51s
记录全选与取消全选清空范围锚点

记录四路并发读取、同步互斥和确定性 ZIP 顺序验收
2026-07-27 17:10:08 +08:00
k88936 1a216501a9 原子维护素材选择与锚点
将选中素材集合和范围锚点合并到同一个状态

让单击、全选、可见协调、框选和模式切换返回纯状态转移

新增可见范围协调后 Shift 选择的回归测试
2026-07-27 16:56:32 +08:00
k88936 35cb6888f9 清理素材批量选择锚点
全选或取消全选前清空上次单项选择锚点

覆盖全选清空后 Shift 点击不扩展旧范围的回归场景
2026-07-27 16:43:16 +08:00
k88936 f7a191b3d9 并发读取素材导出内容
使用共享四路并发读取器限制素材和序列帧网络读取

预先稳定规划去重文件名并按规划顺序写入 ZIP

覆盖外层素材并发、并发上限和逆序完成帧顺序
2026-07-27 16:42:03 +08:00
k88936 880ed529eb 补齐单选素材导出成功提示
让单素材导出返回浏览器下载是否已触发

仅在选中素材下载成功后展示成功状态

新增单选下载成功提示断言
2026-07-27 16:37:43 +08:00
k88936 3b4b6cac85 修复素材导出并发竞态
使用同步 ref 互斥量保护集合导出和单选导出

在导出 finally 中释放互斥量并保留 state 作为忙碌 UI

新增同一事件循环连续导出的回归测试
2026-07-27 16:37:08 +08:00
k88936 ea1813fcc4 整理素材全选标签推导
在 JSX 前推导全选动作词和已选数量标签

移除批量工具栏中的嵌套三元表达式
2026-07-27 16:36:09 +08:00
k88936 f622a3d6f2 修复素材批量栏网格列数
为下载、删除和取消按钮定义三条等宽显式列轨

避免窄侧栏生成尺寸不一致的隐式列
2026-07-27 16:35:16 +08:00
k88936 dfc1a91590 整理素材行操作状态渲染
使用显式条件分支构建互斥操作区

保持选择、上传、重命名和普通状态行为不变
2026-07-27 16:34:16 +08:00
k88936 df8d1320f5 修复素材键盘选择来源判定
根据 click detail 识别键盘激活并提前清理残留指针类型

新增触摸手势后键盘选择的回归测试
2026-07-27 16:32:52 +08:00
k88936 21143f9ff5 format 2026-07-27 16:06:44 +08:00
k88936 aab0b7849b 实现画布素材多选与批量下载
重写素材库的普通点击、Ctrl/Cmd 追加和 Shift 连续范围选择。

清理退出选择模式后的选中状态,并让整行素材统一响应选择操作。

支持单素材直接下载和多素材 ZIP 下载,文件名精确到秒。

固定批量操作栏并修复移动端素材列表可操作空间。

补充选择、导出、侧栏交互测试以及对应技术文档。
2026-07-27 16:04:15 +08:00