Skip to content

feat: 货币可填任意三字母代码,付款周期可填任意月数或年数 - #71

Merged
stqfdyr merged 6 commits into
mainfrom
feat/custom-billing
Sep 28, 2026
Merged

stqfdyr merged 6 commits into
mainfrom
feat/custom-billing

Conversation

@stqfdyr

@stqfdyr stqfdyr commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

续费设置里的货币和付款周期不再限定几个选项。

  • 货币改为输入框,填三个字母的代码(TWD、HKD 等),大小写都行;标签旁的问号说明填法并举例,输入框下方显示识别出的中文名,不认识的代码提示「照原样显示」
  • 付款周期改为「数字 + 月 / 年 / 一次性」,最长 100 年,如 5 年、18 个月
  • hub 校验两者:货币须为三个字母,存大写;周期存为 <n>m,其中 1、3、6、12、24、36 个月仍存原来的名字,旧主题照常显示
  • 自动续期按任意月数顺延

cargo test、面板 lint / test / build 通过;浏览器实测填 TWD + 5 年保存、回显、0 年报错、一次性、未知代码提示,问号的悬停、点击、轻触与键盘聚焦,1280 与 390 宽、深浅色。配套 monitor-probe/monitor-theme-default#17、monitor-probe/monitor-theme-serverstatus#16、monitor-probe/monitor-document#31。

Closes #69

@stqfdyr
stqfdyr merged commit 5409112 into main Sep 28, 2026
1 check passed
@stqfdyr
stqfdyr deleted the feat/custom-billing branch September 28, 2026 02:09
jacob-bytes referenced this pull request in spot-probe/monitor Sep 29, 2026
一次独立复核(把上游三份 diff 逐 hunk 与我们的树核对)找到一处真的漏移植,以及
三处被简化掉的东西:

1. `theme::archive` **读响应体**那一步漏了代理感知的说明——上游是
   `response.bytes().await.with_context(unreachable)?`。过滤网络最典型的失败方式就是
   传到一半断掉,那时面板显示的是 reqwest 自己的英文句子,而不是「换一个代理,或
   清空代理让 hub 直连」。校验和那一步的 `.text()` 同样补上。
   顺带修掉一处重复:`error_for_status()` 后面曾连着两层同样的 context,于是
   「release 里没有 sha256」那条路(404)会把同一句话显示两遍。
2. 付款周期的数字框补 `step={1}` 与 `aria-label="周期长度"`:前者挡住小数(`1.5m`
   会被 hub 拒成「要是整月」,用户看到的是自己的输入被拒),后者原本是个没有名字的
   输入框。
3. 货币框补 `autoCapitalize="characters"` 与 `spellCheck={false}`(上游有):手机上
   自动大写,也别给货币代码画红波浪线。

另补一条上游的断言:五年周期按自己的月数顺延(`60m` → 2031-03-10),以及具名长度
`36m` 走同一个函数。
jacob-bytes referenced this pull request in spot-probe/monitor Sep 30, 2026
之前因为没有 Tooltip 原语,`#71` 的货币说明与 `#75` 的地址说明都写成了可见文字。
现在补上原语并把说明收进悬停问号,与上游一致。

**没有新增依赖**:上游用的是 `@radix-ui/react-tooltip`,而我们面板依赖的是
`radix-ui@^1.6.7`(总包,现有 `select`/`dialog`/`switch` 都从它导入)——它本身就
再导出了 `@radix-ui/react-tooltip`,所以 `import { Tooltip } from "radix-ui"` 即可,
另加一个直接依赖只会多一份 Radix 来源。

- `components/ui/tooltip.tsx`:按我们的房屋风格写(`radix-ui` + `cn` + `data-slot` +
  `tw-animate-css` 的进出场动画)
- `Help`:点按也打开(轻触没有悬停),并 `preventDefault` 掉触发器和**标签**的默认行为
  ——问号在我们的 `Field` 里位于包住控件的 `<label>` 内,不拦就会被点成「聚焦输入框」
- `Field` 多一个 `help`,货币一栏的填法与例子回到 `help` 里(`hint` 只留动态识别出的中文名)
- 主题页的四行说明收进标题旁的问号;「请只安装可信来源」按上游保持常显

**实测**(真浏览器):点击问号 → tooltip 内容与上游一致、`document.activeElement`
仍是 BODY(没被标签抢去聚焦输入框);真实指针悬停同样出 tooltip;主题页那个含五行
且安全提示仍常显。
jacob-bytes referenced this pull request in spot-probe/monitor Sep 30, 2026
feat: SQLite 临时目录、货币与周期放开、从 GitHub 装主题、说清拒绝安装的原因(上游 #78/#71/#75)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

价格建议支持自定义货币及五年付

1 participant