2 Commits
Author SHA1 Message Date
jif2.zhang 42acf72f1e 合并 dev-0.2 到 master: 修复打卡按钮点不动
Docker Build and Push / build-image (push) Successful in 4m9s
2026-10-24 09:53:14 +08:00
jif2.zhang e57b7902be 修复打卡页所有打卡/再打一次按钮点不动
回归原因: 合并视图引入 doCheck 时加了 `if (!item.canCheck || isFuture) return`.
但 canCheck 字段**只有 /day 接口返回**, 本视图数据取自 /habits, 该接口
不返回 canCheck → item.canCheck === undefined → !undefined === true
→ 每个按钮点击都在第一行直接 return, 表现为"点不动".

修复: doCheck 只按 isFuture 拦截, 与后端 POST /habits/:id/check 的校验
口径一致 (后端只拒绝未来日期与超过补打窗口的日期).

影响范围: 打卡按钮、再打一次按钮、环形点击 (三处共用 doCheck).
2026-10-24 09:53:08 +08:00
+3 -1
View File
@@ -101,7 +101,9 @@ export default function MergedView({ date, onDateChange }) {
// ---------- 打卡 / 撤销 (乐观更新) ----------
async function doCheck(item) {
if (!item.canCheck || isFuture) return
// 只按"是否未来日期"拦截. 不能判 item.canCheck —— 该字段仅 /day 接口返回,
// 本视图数据来自 /habits (不含 canCheck), 用它会把所有打卡按钮全部禁用.
if (isFuture) return
const before = detail
setDetail((d) => ({
...d,