修复打卡页所有打卡/再打一次按钮点不动
回归原因: 合并视图引入 doCheck 时加了 `if (!item.canCheck || isFuture) return`. 但 canCheck 字段**只有 /day 接口返回**, 本视图数据取自 /habits, 该接口 不返回 canCheck → item.canCheck === undefined → !undefined === true → 每个按钮点击都在第一行直接 return, 表现为"点不动". 修复: doCheck 只按 isFuture 拦截, 与后端 POST /habits/:id/check 的校验 口径一致 (后端只拒绝未来日期与超过补打窗口的日期). 影响范围: 打卡按钮、再打一次按钮、环形点击 (三处共用 doCheck).
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user