跳转到内容

Save 按钮消失且目录被意外保存 - cc-switch

Quick fix

让自动保存仅提交已持久化的目录值,并在设置刷新及并发保存时保留尚未点击 Save 的目录草稿。

报错原文
The successful mutation refetch makes the path look saved and removes its **Save** button, even though the directory-specific Save flow was never invoked.

`useSettings.autoSaveSettings()` 会把整个草稿表单放入提交给 `settingsApi.save()` 的 payload。因此,切换 `Show profile switcher` 等无关偏好时,尚未点击 **Save** 的配置目录也会被一并写入。

保存成功后的 refetch 会让新路径看起来已经保存,并移除 **Save** 按钮。把现有 override 重置为默认值也有同一问题:下一次无关偏好自动保存会删除已持久化的 override。

  1. 调整即时自动保存逻辑,使其 payload 对配置目录使用已持久化的值,而不是当前尚未保存的草稿值。

  2. 在查询刷新后保留 dirty 状态的配置目录草稿,避免成功 mutation 的 refetch 将草稿误判为已保存。

  3. 处理目录 Save 与偏好 toggle 重叠执行的情况,并覆盖全部八个目录字段、重复自动保存、显式 Save、恢复默认值、取消或还原、保存或 refetch 失败以及 Save 被中断等测试场景。

Toolcc-switch
Version受影响:372b1698968ced988ce046d705732cb799000533(v7 settings redesign 后的 current main)
PlatformsLinux
把已有的配置目录 override 重置为默认值,也会被无关设置的自动保存意外提交吗?
会。issue 复现说明,下一次无关偏好保存会移除已持久化的 override。
不点击 Save,直接取消、还原或卸载页面时也会提交目录修改吗?
该 issue 的基线测试显示,取消、还原以及未保存就卸载页面的控制场景均通过;问题由其他偏好的自动保存触发。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。