Files
mole404 e5e925c579 fix(delete): 删完把卡片从 DragSelect 的两个集合里摘掉
症状(老师报的):选中图片删除后顶部选中状态不重置 —— 操作栏不收回,
之后任何一次重画又会显示「已选择 N 张图片」,再选一张时计数虚高(实测 1 张显示成 2 张)。

根因:删除成功那支只做 $(item).remove(),没把卡片从 DragSelect 的 SelectedSet /
SelectableSet 里摘掉。DS 的 getSelection() 就是 `return SelectedSet.elements`,
全库没有一处 isConnected 判断 → 已删卡片成为「幽灵选中项」;而顶部标题与操作栏
完全由 bindOperates() 按 getSelection() 渲染(挂在 elementselect/elementunselect 上),
所以之后任何一次重画都会带着幽灵重画。

修法(实测两个候选,取更干净的 A):
  ds.removeSelectables(selected);   // 从可选集合摘掉
  ds.removeSelection(selected);     // 从选中集合摘掉(发 Selected:removed → 自动重画)
  bindOperates();                   // 兜底,顶部统一回「未选中」

验收(真 jQuery + 真 ds.min.js + 逐字抽出的本文件代码,jsdom):
  删完 → 标题「我的图片」、可见操作项只剩 [refresh]、getSelection()=0、getSelectables()=2;
  重画后仍正确;再选一张显示「已选择 1 张图片」。

同步:Dockerfile 两处 blade md5(自证段 + .code-revision 生成段)重钉为
d9ffacb2bbd8905703c279965a07ddbf;patches/ios-longpress.patch 重生成(并把此前记错的
「上游原文件 md5」更正为 22c896eb7322ec2ff37d5eddd7ca0dec)。
2026-10-04 14:39:00 +08:00
..