Skip to content

Releases: zuojinxin/dsh-sidebar-manager

v0.10.1

Choose a tag to compare

@zuojinxin zuojinxin released this 02 Nov 09:48

新增

  • 编辑态整行即开关、整行即拖拽源。此前只有 16×16 的勾选框和细手柄能点,手机与窄屏上极难点中;点偏几像素会落到宿主的 button[role="tab"] / panelRow 上,触发视图切换或面板选中,对话区整块重渲染而勾选框纹丝不动。现在编辑态下点整行就切换该入口 / 视图标签的显示,拖整行就调整顺序——勾选框与手柄照旧可用。
  • 顶部视图标签行(只有 25px 高)同样支持整行点击与整行拖动。
  • 拖动要越过阈值才进入排序态(整行 8px、手柄 4px),5px 内的抖动仍算点击。

修复

顺带修掉四处既有隐患:

  • 退出编辑态或热更新时,keydown 监听器泄漏叠加(匿名函数无法 removeEventListener)。
  • 整行拖动时 rememberOrder 找不到 .snc-ctl 而静默不保存顺序。
  • 多指同时按下时两个手势互相覆盖内部状态。
  • pointercancel 被当作正常松手提交排序。

另外加了两道守卫:只对插件自己注册过的 nav 生效(宿主的本地会话列表不会被装饰或写入 savedOrder),且条带必须仍处于编辑态。

其它

  • 编辑态下拖拽不再留下文字选区。
  • 拖动过程中被宿主重渲染移除的行不会回插。

版本说明

0.10.0 的内容与本次完全一致,但它在 npm 上留有一条 staged publish 记录占住版本号,approve / reject 端点均返回 404 无法清除。因此改用 0.10.1 发布同一份代码,仅版本号递增。

v0.9.1

Choose a tag to compare

@zuojinxin zuojinxin released this 26 Oct 08:53

新增

  • 手机 / 窄屏下的折叠视图终于能隐藏了。会话顶部视图行只保留 max(1, floor((行宽 - 48) / 120)) 个标签,手机上就是 2 个,其余全部折叠进「更多会话视图」菜单。此前复选框只装饰 role="tab",被折叠的视图在菜单里没有任何开关;现在菜单里的每个视图行都有显示 / 隐藏复选框。
  • 菜单末尾宿主的两个动作行(「浏览更多插件」「创建你的插件」)同样纳入开关,记在独立的 actions 列表里,与视图的 views 互不影响;旧状态记录缺这个字段时按空处理,无需迁移。

修复

  • 菜单行的复选框在捕获阶段吞掉点击:不会触发行本身的「切换视图并关闭菜单」,也不会误触宿主的插件入口。
  • 菜单被 portal 到 header 之外,编辑态标记同步到 <html data-snc-editing>,菜单里的两条 CSS 规则才读得到;退出插件时一并清掉。
  • 退出编辑态后被隐藏的菜单行 display: none,编辑态内以 0.45 透明度保留,方便勾回来。

约束

  • 当前正在看的视图不能从菜单里隐藏——标签行把它折叠走之后,这一行是它唯一的手柄。

v0.8.9

Choose a tag to compare

@zuojinxin zuojinxin released this 24 Oct 08:54

0.8.9

修复

  • 编辑态展开右侧边栏后,顶部与侧边栏一起变空白。 编辑模式不再把宿主的行、标签包进插件自己的元素:React 仍持有被包裹节点的引用,下一次重渲染执行 removeChild 时会抛 NotFoundError,整块区域被卸载。勾选框与拖拽手柄改为插进宿主行内部,退出编辑时一并移除。
  • 「更多」行的勾选框与其它行不在一条竖线上。 宿主把「更多」包在 anchor 里,10px 的内缩在内部 button 上而非 anchor 上;现在给控件补回同样的内缩、并从 button 上减掉,标签位置不变。

新增

  • 支持宿主新增的侧边栏「更多」行:可以隐藏、恢复,也可以和其它行一样拖动排序。
  • 支持会话视图顶部的「…」(更多会话视图):可以隐藏。它的 aria-label 会随当前视图变化(更多会话视图 · 画廊),统一归一为同一个键;标签顺序归标签栏管,所以它不给拖拽手柄。

其它

  • 控件点击在捕获期被拦截(stopPropagation,但不 preventDefault),不会误触发面板切换或视图切换,勾选行为照常。
  • 新增 test/browser-check.mjs:headless Edge 注入真实 lib/client.js,断言真实几何、:has() 级联,以及「宿主重渲染时不抛错」。