Repository navigation
Releases: zuojinxin/dsh-sidebar-manager
Releases · zuojinxin/dsh-sidebar-manager
Release list
v0.10.1
新增
- 编辑态整行即开关、整行即拖拽源。此前只有 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
新增
- 手机 / 窄屏下的折叠视图终于能隐藏了。会话顶部视图行只保留
max(1, floor((行宽 - 48) / 120))个标签,手机上就是 2 个,其余全部折叠进「更多会话视图」菜单。此前复选框只装饰role="tab",被折叠的视图在菜单里没有任何开关;现在菜单里的每个视图行都有显示 / 隐藏复选框。 - 菜单末尾宿主的两个动作行(「浏览更多插件」「创建你的插件」)同样纳入开关,记在独立的
actions列表里,与视图的views互不影响;旧状态记录缺这个字段时按空处理,无需迁移。
修复
- 菜单行的复选框在捕获阶段吞掉点击:不会触发行本身的「切换视图并关闭菜单」,也不会误触宿主的插件入口。
- 菜单被 portal 到 header 之外,编辑态标记同步到
<html data-snc-editing>,菜单里的两条 CSS 规则才读得到;退出插件时一并清掉。 - 退出编辑态后被隐藏的菜单行
display: none,编辑态内以 0.45 透明度保留,方便勾回来。
约束
- 当前正在看的视图不能从菜单里隐藏——标签行把它折叠走之后,这一行是它唯一的手柄。
v0.8.9
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()级联,以及「宿主重渲染时不抛错」。