diff --git a/client/src/App.tsx b/client/src/App.tsx
index a007891..895dabf 100644
--- a/client/src/App.tsx
+++ b/client/src/App.tsx
@@ -18,6 +18,7 @@ import IOPage from "./pages/IOPage";
import VUPage from "./pages/VUPage";
import SelectPage from "./pages/SelectPage";
import AIPage from "./pages/AIPage";
+import CommunityPage from "./pages/CommunityPage";
function AppRouter() {
return (
@@ -35,6 +36,7 @@ function AppRouter() {
+
diff --git a/client/src/components/BottomNav.tsx b/client/src/components/BottomNav.tsx
index c3bf0bc..34f4e85 100644
--- a/client/src/components/BottomNav.tsx
+++ b/client/src/components/BottomNav.tsx
@@ -19,11 +19,10 @@ interface NavItem {
path: string;
icon: React.ComponentType<{ size?: number; className?: string }>;
label: string;
- placeholder?: boolean;
}
const NAV_ITEMS: NavItem[] = [
- { path: "/community", icon: MessageSquare, label: "社区", placeholder: true },
+ { path: "/community", icon: MessageSquare, label: "社区" },
{ path: "/eq", icon: Sliders, label: "HP-EQ" },
{ path: "/", icon: Home, label: "主页" },
{ path: "/effects", icon: Activity, label: "Effect" },
@@ -53,7 +52,7 @@ export default function BottomNav() {
const Icon = item.icon;
return (
-
+
{/* Active indicator bar */}
+
+
+
+
+
+
Coming Soon
+
Community features are under development
+
+
+
+
+
+ );
+}
diff --git a/client/src/pages/EQPage.tsx b/client/src/pages/EQPage.tsx
index eff4d1d..1860c54 100644
--- a/client/src/pages/EQPage.tsx
+++ b/client/src/pages/EQPage.tsx
@@ -289,12 +289,6 @@ function FreqChart({
onClick={() => toast.info("已复制到 B")}>
复制到 B
-
-
{/* SVG chart */}
diff --git a/client/src/pages/Home.tsx b/client/src/pages/Home.tsx
index 10c2e96..22363ef 100644
--- a/client/src/pages/Home.tsx
+++ b/client/src/pages/Home.tsx
@@ -46,7 +46,7 @@ type HomeLocale = NonNullable<(typeof localeZh)["home"]>;
// ── Volume in dB (0-200 → -100dB to 0dB) ──
function volToDB(v: number) {
- if (v === 0) return "-∞";
+ if (v === 0) return "-100dB";
const db = (v - 200) / 2;
return `${db >= 0 ? "+" : ""}${db.toFixed(1)}dB`;
}
@@ -165,6 +165,12 @@ export default function Home() {
const vuLabel = `${homeText.vu ?? "VU表"}${(ds.vu ?? 0) + 1}`;
const bypassOn = (ds.dsp_enable ?? 0) === 0;
+ // Home 的 volume 取值为 0..200,对应 dB = (v - 200) / 2
+ // 因此 1 个 volume 单位 = 0.5dB
+ // AudioPage 的 soundStep:0->0.5dB, 1->1dB, 2->2dB, 3->3dB
+ // 换算为 volume 单位:0.5/1/2/3 dB -> 1/2/4/6
+ const fineVolumeStep = [1, 2, 4, 6][ds.soundStep ?? 1] ?? 1;
+
// Slider fill % (0-200 → 0-100%)
const fillPct = (localVol / 200) * 100;
// Knob angle (map 0..200 -> -135..+135 degrees)
@@ -369,10 +375,48 @@ export default function Home() {
{/* dB value */}
-
+
+
+
{volToDB(localVol)}
+
+
{/* Bluetooth info */}