- {props.labels["meta.brand"] ?? "弹弹 Web"}
+
+ {/* 窄屏:顶栏品牌 + 横向导航(md 以下侧栏隐藏时的唯一入口) */}
+
+
+ {/* 宽屏:侧栏 */}
+
+
{props.children}
);
diff --git a/app/web/src/components/pages/BrowseBody.tsx b/app/web/src/components/pages/BrowseBody.tsx
index 190d929..11324f9 100644
--- a/app/web/src/components/pages/BrowseBody.tsx
+++ b/app/web/src/components/pages/BrowseBody.tsx
@@ -173,8 +173,16 @@ function BrowseInner(props: { locale: Locale }) {
)}
{!mountId && (
-
- {t(locale, "browse.empty")}
+
+ {t(locale, "browse.empty")}
+
)}
diff --git a/app/web/src/components/pages/DanmakuSettingsBody.tsx b/app/web/src/components/pages/DanmakuSettingsBody.tsx
index 98c07f0..0a57339 100644
--- a/app/web/src/components/pages/DanmakuSettingsBody.tsx
+++ b/app/web/src/components/pages/DanmakuSettingsBody.tsx
@@ -1,6 +1,6 @@
import type { Locale } from "@app/i18n";
import { t } from "@app/i18n";
-import { Button } from "@app/ui";
+import { Button, toast } from "@app/ui";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { useEffect, useState } from "react";
import { createTRPCReactClient, trpc } from "~/lib/trpc";
@@ -48,7 +48,14 @@ function Inner(props: { locale: Locale }) {
const onSave = () => {
const next = { enabled, opacity, density };
localStorage.setItem(DANMAKU_SETTINGS_KEY, JSON.stringify(next));
- save.mutate(next);
+ save.mutate(next, {
+ onSuccess: () => {
+ toast.success(t(locale, "danmaku.saved"));
+ },
+ onError: () => {
+ toast.error(t(locale, "danmaku.save"));
+ },
+ });
};
return (
@@ -75,7 +82,9 @@ function Inner(props: { locale: Locale }) {
/>
-
+
{save.isSuccess && (
{t(locale, "danmaku.saved")}
)}
diff --git a/app/web/src/components/pages/LibraryBody.tsx b/app/web/src/components/pages/LibraryBody.tsx
index ca4b146..49f25d1 100644
--- a/app/web/src/components/pages/LibraryBody.tsx
+++ b/app/web/src/components/pages/LibraryBody.tsx
@@ -108,9 +108,28 @@ function LibraryInner(props: { locale: Locale }) {
))}
{progressList.length === 0 && !list.isPending && (
-
+
+ {t(locale, "library.empty")}
+
+
+
+
+
+
)}