35 Commits

Author SHA1 Message Date
ddshi
864051a65b feat: 优化列表滚动和输入框交互体验
- 纪念日/提醒列表添加动态底部填充,避免被 AI 输入框遮挡
- AI 输入框在弹窗和右键菜单打开时自动隐藏
- 优化输入框样式,提升在浅色背景上的可见度

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:20:04 +08:00
ddshi
5f1c6208df feat: 优化 AI 对话框交互体验
- 重构 AI 输入框为底部悬浮式,聚焦展开
- 添加预览卡片支持编辑重复、颜色等选项
- 优化时区显示和日期格式化
- 添加 loading 状态和 Toast 提示
- 支持确认后自动关闭并显示成功通知

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-13 11:53:16 +08:00
ddshi
bc627544d8 feat: 实现滴答清单风格的时间选择器
- 新增 TimePicker 组件,支持 30 分钟间隔选择和数字输入
- 删除旧的 PopoverTimePicker 组件
- 修复无效日期导致的 RangeError 错误
- 时间选择器 UI 与表单其他输入项保持一致

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 16:38:26 +08:00
ddshi
ddd8ef88bf fix: 修复 Popover 导入缺失问题
- 添加缺失的 Popover 组件导入
- 确保时间选择器正常运行

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 15:16:47 +08:00
ddshi
62aa5cd54c feat: 优化提醒时间选择器和 SW 宽限期
- 缩短 SW 宽限期从10分钟改为3分钟
- 新增 PopoverTimePicker 弹出式时间选择器
- 支持数字输入和30分钟间隔选择
- 替换原有的 WheelTimePicker

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 14:54:17 +08:00
ddshi
2feb02becf feat: 实现浏览器通知提醒功能
- 添加 Service Worker 支持后台定时检查提醒
- 实现浏览器通知 API 集成
- 添加设置页面通知开关和测试功能
- 创建同步服务自动将提醒同步到 SW
- 优化提醒检查逻辑(30秒间隔,10分钟宽限期)

文件变更:
- public/sw.js: Service Worker 主文件
- public/sw-register.ts: SW 注册脚本
- public/manifest.json: PWA 清单文件
- src/services/notification.ts: 通知权限管理
- src/services/swSync.ts: 提醒同步服务
- src/stores/index.ts: 添加同步调用
- src/pages/SettingsPage.tsx: 添加通知开关和测试按钮

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 14:42:36 +08:00
ddshi
ab12b0717f feat: 添加网站图标和浏览器标题
- 添加 favicon.png
- 更新浏览器标题为"掐日子 - AI 纪念日提醒"
- 在 HomePage 标题旁添加 logo 图标

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 11:22:14 +08:00
ddshi
9a46aead11 revert: 主标题样式回退 2026-02-11 11:06:53 +08:00
ddshi
289d81180d refactor: 优化主标题书法风格
- 使用柔和的 text-shadow 模拟书法笔触效果
- 调整字重和字间距
- 保持简洁不做过度设计

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 11:04:46 +08:00
ddshi
69953c43cf refactor: 简化 landing page 优化字体样式
- 回退复杂的功能介绍区域,保留简洁设计
- 优化副标题可读性:添加柔和背景 + serif 字体
- 保持整体禅意风格不变

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 17:22:27 +08:00
ddshi
25f999cb1f feat: 优化 landing page 字体样式和功能介绍
- 主标题使用更优雅的字体样式和柔和阴影
- 副标题添加半透明背景提升可读性
- 新增四个功能模块的详细介绍卡片(纪念日/提醒/AI/便签)
- 使用毛玻璃效果增强视觉层次
- 响应式布局适配不同屏幕

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 17:15:23 +08:00
ddshi
6fd1acc999 docs: 添加 CLAUDE.md 项目说明文档
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 11:11:31 +08:00
ddshi
b39bc5c8bc fix: 修复提醒时间相关的 UTC 时区和继承问题
主要修复:
1. 时间存储格式统一使用 UTC 时区
   - HomePage.tsx: 修复 formDate 处理,使用 new Date() 自动转换
   - 解决用户设置"14:00"保存后显示"22:00"问题

2. 重复计算函数统一使用 UTC
   - calculateNextDueDate: 使用 getUTC*() 和 Date.UTC()
   - calculateReminderTimes: 使用 UTC 时间计算提醒点
   - getReminderValueFromTimes: 使用 UTC 时间戳反推选项

3. 修复重复提醒创建时继承 reminder_times
   - createNextRecurringEventData: 根据新日期重新计算 reminder_times
   - 修改接口类型支持 reminder_times 为 null
   - 解决原提醒"提前15分钟"新提醒变"准时"问题

影响:
- 提醒时间显示正确(无时区偏差)
- 跨天/跨月提醒计算正确
- 重复提醒自动创建时正确继承提醒设置

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 11:07:38 +08:00
ddshi
79ef45b4ad fix: 优化事件编辑体验
- 时间选择器使用滚轮选择,隐藏滚动条
- 内容输入框替换为原生 textarea
- 删除图标移到时间输入框内
- 修复日期选择器位置问题
- Tab 键不再导致页面跳转
2026-02-06 16:19:23 +08:00
ddshi
9f67ae50ed fix: 修复日期选择器样式和中文支持
- 添加 @mantine/dates 样式导入
- 添加 dayjs 中文语言包
- 使用 DatePickerInput 直接点击展开日历
- 日期时间选择器统一使用 Input 组件样式
2026-02-06 13:55:31 +08:00
ddshi
306cb41516 feat: 优化编辑窗口UI
- 优化日期时间选择器为组合布局(同一行按钮)
- 优先级改名为颜色
- 提醒类型移除农历选项
- 使用Popover优化选择器交互
2026-02-06 13:44:07 +08:00
ddshi
f0cbd0e33c feat: 完善提醒卡片右键菜单功能
- 优化checkbox样式:缩小尺寸(14px)、移除阴影、添加白色填充
- 调整布局:标题和内容左对齐
- 重构右键菜单为垂直分类布局:调整时间/颜色/操作
- 添加菜单边缘保护:自动计算位置避免超出浏览器
- 添加点击外部和ESC键关闭菜单
- 编辑弹窗优先级改为颜色圆点选择器
- 添加priority类型定义

🤖 Generated with Claude Code
2026-02-05 17:51:59 +08:00
ddshi
1559e603b0 feat: 实现重复提醒完成移除设置、逾期列表展开收起功能
- 重复提醒完成流程优化:
  - 勾选完成重复提醒后,自动移除repeat_type、repeat_interval、next_reminder_date
  - 自动创建下一周期的新提醒记录
  - 合并API调用,确保状态更新原子性

- 逾期列表展开/收起功能:
  - 默认收起,最多显示3条逾期提醒
  - 超过3条时显示"还有 X 个逾期提醒..."链接
  - 展开后底部显示"收起"按钮

- 时间显示优化:
  - 无时间提醒(00:00)只显示日期,不显示时间
  - 归档列表同样适用此规则

- 其他优化:
  - 归档抖动动画反馈
  - 分类折叠功能

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 13:51:38 +08:00
ddshi
3fdee5cab4 feat: 优化提醒卡片样式和列表滚动功能
- 调整正常提醒卡片布局:左侧 checkbox+标题+内容,右侧日期时间
- 移除正常卡片悬停时的编辑按钮
- 纪念日/提醒/便签列表支持独立滚动
- 页面整体禁用滚动,支持 Ctrl+滚轮缩放
- 滚动条样式优化:默认隐藏,悬停时显示淡雅样式

Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
2026-02-03 16:29:25 +08:00
ddshi
7b0afbb27b feat: 优化提醒时间显示和顺延功能
- 修复时间显示问题:无时间仅显示日期,有时间显示日期+时间
- 修复时区转换问题:使用本地时间格式存储
- 逾期提醒增加【顺延】操作:日期调整为今日,时间不变
- 修复空日期处理和归档页过滤逻辑

Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
2026-02-03 14:57:55 +08:00
ddshi
a8b4f17043 feat: 优化提醒卡片样式和归档功能
- 优化提醒卡片样式,统一黑白灰配色
- 添加checkbox勾选动画和过期提醒淡出效果
- 完善归档页功能(恢复/删除已过期完成提醒)
- 修复过期检测逻辑(精确到时间点而非仅日期)

Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
2026-02-03 14:14:08 +08:00
ddshi
9e4b4022bd feat: 优化提醒功能,修复状态保存问题
- 优化提醒分组逻辑,精确判断过期时间
- 已完成但未过期的提醒仍显示在主列表(划掉状态)
- 修复 checkbox 点击事件处理
- 添加乐观更新,UI 即时响应
- 添加归档页和设置页路由
- 修复后端 is_completed 字段验证问题
2026-02-03 13:19:06 +08:00
ddshi
250c05e85e feat: 禅意设计风格重构与体验优化
- LandingPage: 全新水墨晕染算法背景,循环墨迹动画
- 登录/注册页: 禅意黑白极简风格
- HomePage: 三栏布局优化,标题颜色语义化
- 纪念日组件: 分类逻辑优化,颜色语义统一
- 提醒组件: 分组标题颜色优化,逾期提示更醒目
- 修复农历日期边界问题(29/30天月份)
- 添加 lunar-javascript 类型声明
- 清理未使用的导入和代码
2026-02-02 15:26:47 +08:00
ddshi
a118346238 fix(auth): 修复登录持久化和路由重定向问题
- 注册成功后直接跳转首页,无需重新登录
- 优化useAuthLoader使用useRef避免闪烁
- 统一错误处理格式
- 修复HTML标签嵌套错误
- 添加XSS防护(rehype-sanitize)
- 修复API credentials配置

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-29 20:04:37 +08:00
ddshi
ccfa763657 feat(reminder): 完成P4提醒功能
- 实现提醒按时间分组显示(今天/明天/本周/更久/已错过)
- 添加逾期提醒红色Alert提示
- 优化提醒卡片交互(悬停显示操作按钮)
- 修复DateInput日期类型处理问题

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-29 17:44:03 +08:00
ddshi
c08f5aa4aa fix(P3): 修复倒计时边界问题(闰年、月末) 2026-01-29 17:24:53 +08:00
ddshi
82c291ef30 feat(P3): 纪念日功能 - 倒计时、节假日、内置节假日显示
- 添加倒计时计算工具 utils/countdown.ts
- 添加内置节假日数据 constants/holidays.ts (中国法定节假日)
- 更新 AnniversaryCard 显示倒计时和节假日标识
- 更新 AnniversaryList 显示即将到来的内置节假日
- 支持农历日期处理 (lunar-javascript)
- 倒计时显示:今天/X天/已过

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-29 17:10:35 +08:00
ddshi
5d7b99767d chore: 版本更新至 v0.3.0-alpha (P2基础页面布局完成) 2026-01-29 17:06:41 +08:00
ddshi
c2950c559a fix: 修复useEffect无限执行问题 (P0安全修复) 2026-01-29 16:58:52 +08:00
ddshi
7a4af33ff5 fix: 将events.getAll重命名为list匹配store调用 (P2基础页面) 2026-01-29 16:50:41 +08:00
ddshi
4dbf9b0bbc feat: 实现Home页四区布局
- 实现纪念日列表组件 (AnniversaryCard, AnniversaryList)
- 实现提醒列表组件 (ReminderCard, ReminderList)
- 实现便签编辑区 (NoteEditor) 带自动保存
- 实现AI对话框 (AIChatBox) 支持自然语言解析
- 更新HomePage实现四区布局和添加/编辑弹窗
- 更新类型定义和数据Store

Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
2026-01-29 15:30:33 +08:00
ddshi
d3de5d8598 feat: 初始化前端项目
- React 18 + Vite项目
- Mantine UI组件库
- Tailwind CSS配置
- Zustand状态管理
- 路由配置

Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
2026-01-29 15:09:09 +08:00
ddshi
8801591132 refactor: replace Supabase with self-hosted backend API 2026-01-29 12:58:49 +08:00
ddshi
e1f2c8d536 feat: configure Tailwind CSS, Mantine, Supabase client, and routing 2026-01-29 12:52:28 +08:00
ddshi
f932e80f51 feat: initial Vite + React + TypeScript project 2026-01-29 12:47:05 +08:00