chore(ui): drop nav logo + revert hero to default-muted
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 5m30s

- Navigation: removed top-left <Logo />, NavLinks now sit at the
  left edge. Logo component itself kept (still used by Footer /
  LoginForm / LoginModal).
- HeroBanner: restored simple "default muted + autoplay" behavior.
  The earlier try-unmuted-fallback flow was working but produced
  unpredictable first-paint audio depending on browser autoplay
  policy; muted is the safer default.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
iye 2026-05-15 18:12:21 +08:00
parent 1236df31b8
commit 034bb7ff42
2 changed files with 4 additions and 18 deletions

View File

@ -28,24 +28,13 @@ export default function HeroBanner({
className,
}: HeroBannerProps) {
const videoRef = useRef<HTMLVideoElement>(null);
// 默认目标:带音播放。但浏览器对"带声音自动播放"有严格限制 ——
// 只有当用户与本站已有交互历史(autoplay policy "high engagement")时才允许。
// 真实初始状态由下面的 effect 试播后写回:成功 → false,被拦截 → true。
const [isMuted, setIsMuted] = useState(false);
const [isMuted, setIsMuted] = useState(true);
useEffect(() => {
const v = videoRef.current;
if (!v || !videoSrc) return;
// 先尝试带音播放,失败立刻 fallback 静音播放(并把声音按钮置为静音态)。
// 几乎所有首次访问场景都会走到 fallback,用户点声音按钮再解除静音。
v.muted = false;
v.play()
.then(() => setIsMuted(false))
.catch(() => {
v.muted = true;
setIsMuted(true);
v.play().catch(() => {});
});
v.muted = isMuted;
v.play().catch(() => {});
// 仅在 videoSrc 变化时执行 · 不依赖 isMuted(mute 切换由按钮处理)
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [videoSrc]);

View File

@ -2,7 +2,6 @@
import { useEffect, useState } from "react";
import { usePathname } from "next/navigation";
import Logo from "./Logo";
import NavLinks from "./NavLinks";
import SearchTrigger from "./SearchTrigger";
import AuthMenu from "./auth/AuthMenu";
@ -82,9 +81,7 @@ export default function Navigation() {
)}
/>
<nav className="relative max-w-[1500px] mx-auto h-20 px-4 sm:px-6 lg:px-8 flex items-center gap-8">
<Logo size="md" />
{/* 中部:首页 / 排行榜 / 我的 */}
{/* 左侧:首页 / 排行榜 / 我的(logo 已移除) */}
<NavLinks className="hidden md:flex" />
{/* 右侧:搜索 + 今日余票 + 登录/注册 (或 头像+下拉) */}