feat: 接入全站图片资源 + 修复卡片滑动与房间轮询问题
图片资源接入: - OG/Twitter 社交分享元数据 (og-image.png) - 错误页插画替换图标 (error-robot.png) - EmptyState 组件支持 image prop,空状态页面接入插画 - 餐厅图片 fallback 改用 restaurant-fallback.png - 极速救场/周末契约页面添加 hero 装饰图 - 分享卡片添加背景图层 (share-bg-*.png),通过 base64 预加载 - 更新 App 图标 (apple-touch-icon, icon-192/512) Bug 修复: - SwipeDeck: swipe action 从 "nope" 改为 "pass",匹配 API 预期 - SwipeDeck: 用 ref 读取 currentIndex 避免竞态重置(本地滑动后 被服务端旧 swipeCounts 立即清零) - SwipeDeck: 卡片 key 加入 isTop 标识,强制 remount 解决 framer-motion drag 手势在 isTop 切换时不重新初始化的问题 - SwipeableCard: initial 统一为背景位置,确保晋升为顶部卡片时 有一致的放大动画 - useRoomPolling: roomId 为空时跳过 SWR 和 EventSource - room page: joinRoom 前 guard roomId,消除退房时 404 - layout: 添加 metadataBase 消除 Next.js OG 图片警告
This commit is contained in:
@@ -16,10 +16,12 @@ export default function RestaurantShareCard({
|
||||
data,
|
||||
cardRef,
|
||||
imageDataUrl,
|
||||
bgDataUrl,
|
||||
}: {
|
||||
data: RestaurantShareData;
|
||||
cardRef: React.RefObject<HTMLDivElement | null>;
|
||||
imageDataUrl: string | null;
|
||||
bgDataUrl?: string | null;
|
||||
}) {
|
||||
const { restaurant, matchType, matchLikes, userCount, scene } = data;
|
||||
const isUnanimous = matchType === "unanimous";
|
||||
@@ -53,6 +55,22 @@ export default function RestaurantShareCard({
|
||||
overflow: "hidden",
|
||||
}}
|
||||
>
|
||||
{/* Background image */}
|
||||
{bgDataUrl && (
|
||||
<img
|
||||
src={bgDataUrl}
|
||||
alt=""
|
||||
style={{
|
||||
position: "absolute",
|
||||
inset: 0,
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
objectFit: "cover",
|
||||
opacity: 0.12,
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* Decorative glows */}
|
||||
<div
|
||||
style={{
|
||||
|
||||
Reference in New Issue
Block a user