元旦节皮肤

This commit is contained in:
eafonyang
2026-10-09 13:56:57 +08:00
parent 7d62f3ec70
commit 365f3afc49
16 changed files with 476 additions and 10 deletions
+36 -5
View File
@@ -1,7 +1,7 @@
/* ============================================================
BOTTOM NAV — Luxsin X9 Controller (Mobile)
Design: iOS/Android App-style bottom tab bar
3 个入口(社区/主页/我的 AI),文案来自 locales/bottomNav,语言跟随 deviceState.language
5 tabs — labels from locales/bottomNav, language = deviceState.language (同系统页)
- 社区:移动端进入 /community 引导复制链接;桌面(lg+)点击仍 window.open 论坛
- Active tab: cyan icon + top indicator bar
- Inactive: muted icon + label
@@ -13,7 +13,13 @@ import { useIsLgUp } from "@/hooks/useIsLgUp";
import localeZh from "@/locales/data-zh.json";
import localeEn from "@/locales/data-en.json";
import { resolveLocalePack } from "@/locales/resolveLocale";
import { Bot, Home, MessageSquare } from "lucide-react";
import {
Activity,
Bot,
Home,
MessageSquare,
Sliders,
} from "lucide-react";
import { Link, useLocation } from "wouter";
import { useMemo } from "react";
import { bottomNavInnerClass, bottomNavOuterClass } from "@/lib/appShell";
@@ -33,7 +39,7 @@ interface NavItem {
const FORUM_URL = "https://forum.zidoo.tv/index.php";
const festivalIcon = (festival: FestivalId, name: string) =>
`${import.meta.env.BASE_URL}images/festival/${festival}/${name}.png`;
`${import.meta.env.BASE_URL}images/festival/${festival}/${name}.${festival === "newyear" ? "svg" : "png"}`;
const NAV_ITEMS: NavItem[] = [
{
@@ -43,6 +49,17 @@ const NAV_ITEMS: NavItem[] = [
festivalIcons: {
christmas: festivalIcon("christmas", "bell"),
halloween: festivalIcon("halloween", "ghost"),
newyear: festivalIcon("newyear", "confetti"),
},
},
{
path: "/eq",
icon: Sliders,
labelKey: "hpEq",
festivalIcons: {
christmas: festivalIcon("christmas", "reindeer"),
halloween: festivalIcon("halloween", "skeleton"),
newyear: festivalIcon("newyear", "clock"),
},
},
{
@@ -52,6 +69,17 @@ const NAV_ITEMS: NavItem[] = [
festivalIcons: {
christmas: festivalIcon("christmas", "santa"),
halloween: festivalIcon("halloween", "pumpkin"),
newyear: festivalIcon("newyear", "calendar"),
},
},
{
path: "/effects",
icon: Activity,
labelKey: "effects",
festivalIcons: {
christmas: festivalIcon("christmas", "tree"),
halloween: festivalIcon("halloween", "witch"),
newyear: festivalIcon("newyear", "fireworks"),
},
},
{
@@ -61,6 +89,7 @@ const NAV_ITEMS: NavItem[] = [
festivalIcons: {
christmas: festivalIcon("christmas", "gift"),
halloween: festivalIcon("halloween", "vampire"),
newyear: festivalIcon("newyear", "party-hat"),
},
},
];
@@ -78,7 +107,9 @@ export default function BottomNav() {
}, [deviceState?.language]);
return (
<nav className={bottomNavOuterClass}>
<nav
className={bottomNavOuterClass}
>
<div
className={bottomNavInnerClass}
style={{
@@ -90,7 +121,7 @@ export default function BottomNav() {
paddingBottom: "env(safe-area-inset-bottom, 8px)",
}}
>
<div className="grid grid-cols-3 items-stretch">
<div className="flex items-stretch justify-around">
{NAV_ITEMS.map((item) => {
const isActive =
item.path === "/ai"