Commit Graph

128 Commits

Author SHA1 Message Date
kurihada ac8cb8c635 feat: 盲盒想法支持编辑和删除,展示用户已投入的想法列表 2026-02-26 16:55:58 +08:00
kurihada b1cbf0d589 fix: 修复页面过渡动画导致 fixed 定位失效和全局徽章被遮挡 2026-02-26 16:49:06 +08:00
kurihada add9733bc9 ui: 页面切换过渡动画 — AnimatePresence 淡入滑出效果 2026-02-26 16:41:39 +08:00
kurihada 20f63c67cb feat: 添加 PWA 支持 — 可安装到主屏幕、离线缓存、刘海屏适配 2026-02-26 16:37:40 +08:00
kurihada 31003110e1 fix: 滑卡退出距离自适应屏幕宽度,小屏设备体验更顺滑 2026-02-26 16:33:41 +08:00
kurihada 37eb7f07d7 ui: 滑卡互动增强 — like 徽章动画、分类标签可读性、进度数字区分
- RestaurantCard: like 徽章实时弹跳动画,首次出现滑入效果
- RestaurantCard: 分类标签改为白底黑字,图片上始终清晰
- SwipeDeck: 进度数字加背景色块包裹,与用户名视觉分离
2026-02-26 16:32:00 +08:00
kurihada 9759db54ca fix: 修复浅色模式下 text-white 文字不可见,新增主题安全色规范
极速救场标题、个人中心导航和输入框改用语义色
2026-02-26 16:18:38 +08:00
kurihada b2b18327cc ui: 骨架屏替代全部页面级加载 spinner
- 新增 Skeleton 组件库:Skeleton、SkeletonCircle 基础元素 + 5 个业务骨架
  (SwipeDeck、ProfileCard、RecordItem、BlindboxRoom、BlindboxList、RoomCard)
- 替换 room、profile、blindbox 列表、blindbox 房间、invite 5 个页面的加载态
- 替换 profile 历史记录 / 收藏列表的内联加载 spinner
- 更新 project-conventions.mdc:新增 Loading States 规范,
  要求页面级和列表级加载必须使用骨架屏
2026-02-26 16:11:01 +08:00
kurihada 798b883250 ui: 房间页布局优化 — TopNav 重排、进度贴近卡片、按钮间距收紧
- TopNav: 退出按钮移到最左侧,房间号合并到邀请按钮,移除右侧内容避免与全局徽章重叠
- SwipeDeck: 移除绿色进度条,UserProgressBar 始终显示并贴在卡片正上方
- ActionButtons: 缩小与卡片的垂直间距
2026-02-26 15:50:51 +08:00
kurihada 4ce6ea469c feat: 添加全局 Error Boundary 和餐厅图片加载失败 fallback
- error.tsx: 路由级错误边界,提供重试和返回首页操作
- global-error.tsx: 根布局级兜底,纯内联样式避免依赖加载
- RestaurantImage: 可复用图片组件,加载失败显示餐具占位图标
- 替换 RestaurantCard、MatchResult、profile 中所有餐厅图片
2026-02-26 15:22:29 +08:00
kurihada e86f643c26 ui: 个人中心空状态插图优化,替换纯文字为图标动画 + CTA 按钮
提取可复用 EmptyState 组件,决策记录和收藏餐厅空状态
增加浮动图标、光晕动画和"去创建第一个房间"引导按钮
2026-02-26 15:18:22 +08:00
kurihada 12279117f3 feat: 全局主题切换(浅色/深色/跟随系统)
- CSS 变量驱动的主题系统,所有颜色响应 data-theme 属性
- 新增语义化色彩 heading/secondary/tertiary,替换硬编码 text-white/text-gray-*
- 右上角三态主题按钮(自动/浅色/深色),全局可用无需登录
- layout.tsx 内联脚本防闪烁
- 修复个人中心页面溢出无法滚动
2026-02-26 15:15:32 +08:00
kurihada 69dc78300e feat: 盲盒房间支持删除(创建者)和退出(成员)
- DELETE /api/blindbox/room/[code] 根据身份区分行为
- 房间页底部两步确认按钮,防止误操作
- 更新 ROADMAP:该功能从 P3 提升至 P1,移除低价值项
2026-02-26 15:00:30 +08:00
kurihada 05e42ffe22 feat: 个人中心展示决策次数徽章「已拯救 X 次选择困难症」 2026-02-26 14:54:46 +08:00
kurihada 7aa6c7f792 feat: 全局用户头像徽章,所有页面右上角统一显示
- 新增 GlobalUserBadge 组件,固定在右上角,已登录显示头像+用户名,未登录显示登录按钮
- 通过 layout.tsx 全局挂载,仅在个人中心页隐藏
- userId.ts 登录/登出时派发 nowhatever_auth 事件,组件实时响应
- 移除各页面重复的用户指示器(首页、极速救场、周末契约大厅、个人中心顶栏退出按钮)
- TopNav 右侧留出空间避免与全局徽章重叠
- 头像徽章采用暗色主题风格(bg-surface/80)
2026-02-26 14:42:40 +08:00
kurihada f851eed847 fix: 匹配结果页标题和副标题添加 text-center 确保居中 2026-02-26 14:26:42 +08:00
kurihada d122ee7fb5 ui: 个人中心退出按钮提升可见度
- 顶部导航栏右侧新增退出按钮,无需滚到页面底部
- 底部退出按钮从灰色文字链接改为带边框的圆角按钮
2026-02-26 14:23:33 +08:00
kurihada 1e7851fdb5 feat: 首页添加用户登录状态指示器
- 已登录:右上角显示头像 + 用户名,点击进入个人中心
- 未登录:右上角显示"登录"按钮,点击弹出注册/登录弹窗
2026-02-26 14:22:13 +08:00
kurihada 26656f1e01 feat: 匹配成功页引导未注册用户注册,保存决策记录
- 未注册用户在匹配成功页看到注册引导卡片
- 注册后自动保存本次决策记录,收藏按钮同步出现
- 将 isRegistered() 调用改为 registered 响应式状态
- 更新 ROADMAP 标记已完成
2026-02-26 14:18:32 +08:00
kurihada 4e60dc3cde fix: 单人场景体验优化 — 跳过等待 spinner,适配结果文案
- SwipeDeck: userCount === 1 时不再显示"等待其他人完成选择"
- MatchResult: 单人时标题改为"帮你选好了",副标题改为"你的首选"
- MatchResult: 单人时隐藏"默契度 100%"徽章(无意义)
- 更新 ROADMAP 将 Solo 模式改为单人体验修复
2026-02-26 14:15:14 +08:00
kurihada f8a64b3281 docs: 重写 README,对齐决策引擎定位与双模式产品形态 2026-02-26 14:08:23 +08:00
kurihada 0f83e9c6ae feat: 匹配成功页体验优化 — 浮动操作栏、收藏、决赛引导
- 底部操作改为固定浮动栏,"再来一轮"和"换一批店"始终可见
- 结果卡片右上角新增收藏按钮,复用已有收藏 API
- 非全员一致时"Top N 决赛"按钮上方增加引导文案
- 更新 ROADMAP 标记已完成项,移除低优先级条目
2026-02-26 14:03:38 +08:00
kurihada afde70c98e fix: 分享卡片关闭按钮定位到卡片右上角 2026-02-26 13:53:07 +08:00
kurihada 08eb55ca41 feat: 添加分享结果卡片功能,形成用户增长闭环
- 新增 ShareCardModal 组件,支持餐厅匹配和盲盒契约两种分享卡片
- 卡片包含品牌标识、匹配结果、餐厅/想法详情、二维码
- 使用 html-to-image 生成高清 PNG,支持保存图片和 Web Share API 分享
- 餐厅图片通过 canvas 转 data URL 处理跨域
- 集成到 MatchResult(极速救场)和 BlindBox reveal(周末契约)
2026-02-26 13:50:38 +08:00
kurihada 14b0aaece4 feat: 盲盒房间体系重构 — 强制登录、独立房间、用户归属
- 新增 BlindBoxRoom/BlindBoxMember 模型,BlindBoxIdea 增加 userId/drawnById
- 新增房间 API(创建/加入/列表/详情),所有盲盒 API 增加认证和成员校验
- 新建盲盒大厅页面(三层引导式设计:未登录氛围页/首次创建引导/房间列表)
- 新建盲盒房间页面(成员校验/邀请分享/用户归属展示/自动聚焦)
- 首页删除契约画廊和 localStorage 盲盒逻辑,周末契约跳转到 /blindbox
- 清理旧路由 /room/[id]/blindbox
- 提取共享工具 src/lib/blindbox.ts(错误响应/房间号生成/成员校验)
- AuthModal 支持 defaultTab 参数
- 更新项目规范:新项目原则、代码优雅和复用优先
2026-02-26 12:25:32 +08:00
kurihada 11d872e72a chore: 添加 Cursor 设计系统和项目规范规则
- design-system.mdc: 暗色 token 映射表、禁止白色背景、按钮分层规则
- project-conventions.mdc: 技术栈声明、Tailwind v4 语法、组件和 API 编码规范
2026-02-26 11:27:23 +08:00
kurihada e10e3c8230 ui: 全站统一暗色主题设计系统
- globals.css 定义语义化 token (background/surface/elevated/border/muted/dim/accent)
- 所有页面和组件迁移至暗色 token,移除硬编码 bg-white/text-zinc-*/bg-gray-*
- RestaurantCard 和 MatchResult 适配暗色卡片风格
- 按钮颜色分层:系统CTA(accent)/模式强调(橙/紫)/危险(rose)/次级(surface)
- 修复 room 页深色文字在深背景不可见的可访问性问题
2026-02-26 11:27:18 +08:00
kurihada 7d51f5200d feat: 新增周末契约盲盒功能,首页重构为双模式入口
- 新增 BlindBoxIdea 数据模型及 migration
- 新增盲盒 API (提交想法/查询/抽取)
- 新增周末契约盲盒页面 (动效震动+彩带开奖)
- 原首页功能拆分至 /panic 路由
- 首页重构为极速救场 + 周末契约双卡片入口
2026-02-26 11:27:10 +08:00
kurihada 30d5ad5ff2 ui: 缩小房间页卡片和操作按钮,适配小屏手机 2026-02-25 14:51:12 +08:00
kurihada 4f164fecdf fix: 修复数据目录权限,确保容器用户可写入数据库 2026-02-25 14:40:43 +08:00
kurihada 45b31e9319 ui: 压缩首页布局适配小屏手机
- Logo 与标题改为横排显示
- 缩小图标和间距,整体高度减少
- 确保创建房间按钮在小屏上可见
2026-02-25 14:37:00 +08:00
kurihada 77914672e0 feat: 注入高德地图 API Key 到 Docker 构建和运行环境 2026-02-25 14:30:24 +08:00
kurihada 6ceedddce9 feat: 加入 nginx 外部网络,支持反向代理 2026-02-25 14:25:19 +08:00
kurihada d2e0b2a1f9 fix: 修正 template.db 构建路径 2026-02-25 14:14:30 +08:00
kurihada 20acf045f3 fix: 构建时生成数据库模板,运行时无需 prisma CLI 2026-02-25 14:12:29 +08:00
kurihada 76a3effb5e fix: 修复容器内 prisma CLI 路径找不到的问题 2026-02-25 14:10:40 +08:00
kurihada 9f29fec453 fix: 修复容器内 Prisma 版本不匹配导致启动失败
- 复制项目的 prisma 二进制到 runner 阶段,避免 npx 下载最新版
- 移除已废弃的 --skip-generate 参数
2026-02-25 13:21:51 +08:00
kurihada f564658508 fix: 切换到 Generic Webhook Trigger 解决 403 认证问题 2026-02-25 13:13:25 +08:00
kurihada 39213bb71e fix: 修复 Restaurant 类型转换的 TypeScript 编译错误 2026-02-25 13:11:59 +08:00
kurihada 3b6910e6e8 perf: Prisma 引擎下载使用国内镜像加速 2026-02-25 13:06:52 +08:00
kurihada e614129784 perf: npm 使用国内镜像源加速 Docker 构建 2026-02-25 12:28:35 +08:00
kurihada 7bc18ce503 refactor: 数据库持久化改用宿主机目录挂载
- Prisma DATABASE_URL 改为环境变量注入
- 数据挂载从 Docker Volume 改为 /data/no-whatever/
- 本地开发通过 .env 文件配置数据库路径
2026-02-25 12:24:44 +08:00
kurihada 54ccb9fb40 fix: 简化 Jenkinsfile,移除未配置的凭据依赖 2026-02-25 12:17:39 +08:00
kurihada 76bd7b4756 ci: 添加 Docker + Jenkins 自动化部署配置
- Dockerfile 多阶段构建,standalone 模式输出
- Jenkinsfile 定义 GitLab 触发的 CI/CD 流水线
- docker-compose.yml 简化部署
- next.config.ts 开启 standalone 输出
2026-02-25 12:10:32 +08:00
kurihada cc7f6d55a7 feat: 添加品牌 Logo、favicon、Apple Touch Icon 和 OG 分享图
- 新增 icon.png (96x96) 和 apple-icon.png (180x180) 作为浏览器/iOS 图标
- 新增 opengraph-image.png 用于微信等社交媒体分享预览
- 新增 BrandLogo SVG 组件,首页标题上方展示品牌图标
2026-02-25 11:58:05 +08:00
kurihada 079feddf0e feat: 商家卡片支持多图展示,点击左右切换带 crossfade 过渡
- Restaurant.image 改为 images: string[],API 层从高德取最多 5 张图
- RestaurantCard 新增 ImageGallery:点击图片左右区域切换、顶部圆点指示器、
  左右箭头提示、首次查看时文字引导气泡(2.5s 自动消失)
- 图片切换使用 crossfade 动画(旧图渐隐 280ms),过渡平滑
- MatchResult / Profile 页面兼容新旧数据格式,无图时条件渲染
2026-02-25 11:51:42 +08:00
kurihada c86a6c0909 feat: 新增「喝什么」场景,支持奶茶/咖啡/酒吧等饮品店搜索
引入场景系统(SceneType),首页增加「吃什么」「喝什么」切换 Tab,
不同场景使用不同的高德 POI 类型、热门标签、价格区间和全链路文案。
场景信息存储在房间数据中,邀请/分享/匹配结果等页面自动适配。
2026-02-25 01:12:44 +08:00
kurihada 6866b70278 feat: 优化定位体验——反向地理编码显示地名,定位失败明确提示
- 新增 /api/location/regeo 接口,通过高德逆地理编码将 GPS 坐标转为地名
- 页面加载时自动定位,成功后显示"当前位置:浦东新区 xxx"
- 定位失败/权限被拒时显示明确提示+重试按钮,不再静默默认上海
- 无可用位置时阻止创建房间,引导用户手动搜索选择地点
2026-02-25 00:53:50 +08:00
kurihada 04c7b547aa feat: 用户名密码登录注册系统
- 新增 /api/auth/register 和 /api/auth/login 接口,使用 bcryptjs 哈希密码
- User 模型改为 username + passwordHash,id 自动生成 cuid
- 新增 AuthModal 组件(登录/注册双标签页),替换旧的 ProfileSetupModal
- 重写 /profile 页面:支持修改用户名、密码、头像、绑定邮箱、退出登录
- /api/user PUT 支持密码修改(需验证当前密码)和用户名唯一性校验
- 游客模式保留,右上角显示"登录"按钮;登录后显示头像和用户名
- 全局 nickname -> username 重命名(types、SwipeDeck、RoomManageModal、buildRoomStatus)
- 新增 logout() 清除登录态并重新生成游客 UUID
2026-02-25 00:21:03 +08:00
kurihada a28f4405e9 feat: 美食类型改为输入框+热门推荐,移除顶部 logo
- 菜系选择从固定标签改为自由输入框,支持任意关键词搜索
- 输入框下方展示热门推荐标签(火锅、日料、烧烤等),点击自动填入
- 筛选卡片内顺序调整为:美食 > 距离 > 人均
- 移除顶部绿色图标 logo,页面直接从标题开始
2026-02-24 23:03:28 +08:00