+
- {catalogQuery.data?.totalItems ?? 0}
+ {totalItems}
- result{(catalogQuery.data?.totalItems ?? 0) === 1 ? "" : "s"}
+ {resultNoun}
- {catalogQuery.data?.totalItems ?? 0} result
- {(catalogQuery.data?.totalItems ?? 0) === 1 ? "" : "s"}
+ {totalItems} {resultNoun}
) : null}
diff --git a/web/src/pages/Login.tsx b/web/src/pages/Login.tsx
index 10665673..7f0f3950 100644
--- a/web/src/pages/Login.tsx
+++ b/web/src/pages/Login.tsx
@@ -211,9 +211,13 @@ export default function Login() {
if (loading || setupLoading) {
return (
-
+
+
+
);
}
@@ -260,7 +264,8 @@ export default function Login() {
: "/signup";
return (
-
+
+ Sign in to {serverName}
{serverName}
@@ -423,6 +428,6 @@ export default function Login() {
-
+
);
}
diff --git a/web/src/pages/Profiles.tsx b/web/src/pages/Profiles.tsx
index 1dfa754f..11b3766c 100644
--- a/web/src/pages/Profiles.tsx
+++ b/web/src/pages/Profiles.tsx
@@ -119,18 +119,23 @@ export default function Profiles() {
))}
diff --git a/web/src/pages/WatchTogetherJoin.tsx b/web/src/pages/WatchTogetherJoin.tsx
index 4fb06124..86059266 100644
--- a/web/src/pages/WatchTogetherJoin.tsx
+++ b/web/src/pages/WatchTogetherJoin.tsx
@@ -3,6 +3,7 @@ import { useNavigate, useSearchParams } from "react-router";
import { ApiClientError } from "@/api/client";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
+import { useDocumentTitle } from "@/hooks/useDocumentTitle";
import {
createWatchTogetherRoom,
joinWatchTogetherRoom,
@@ -24,6 +25,7 @@ function describeJoinError(error: unknown) {
}
export default function WatchTogetherJoin() {
+ useDocumentTitle("Watch Party");
const navigate = useNavigate();
const [searchParams] = useSearchParams();
const token = searchParams.get("token")?.trim() ?? "";
diff --git a/web/src/pages/settings/PlaybackSettings.tsx b/web/src/pages/settings/PlaybackSettings.tsx
index 4ddff7aa..4abe67d6 100644
--- a/web/src/pages/settings/PlaybackSettings.tsx
+++ b/web/src/pages/settings/PlaybackSettings.tsx
@@ -58,21 +58,20 @@ function AutoPlayNextSetting({ profileId }: { profileId: string }) {
label="Auto-play next episode"
description="Start the next episode automatically after the current one ends."
control={(id) => (
-
-
- setDeviceSetting.mutate(
- { key: AUTO_PLAY_NEXT_KEY, value: checked ? "true" : "false" },
- {
- onSuccess: () => toast.success("Auto-play preference saved"),
- onError: () => toast.error("Failed to save auto-play preference"),
- },
- )
- }
- />
-
+
+ setDeviceSetting.mutate(
+ { key: AUTO_PLAY_NEXT_KEY, value: checked ? "true" : "false" },
+ {
+ onSuccess: () => toast.success("Auto-play preference saved"),
+ onError: () => toast.error("Failed to save auto-play preference"),
+ },
+ )
+ }
+ />
)}
/>
);
@@ -89,7 +88,7 @@ function NextUpSetting() {
label="Next up episodes"
description="Choose whether upcoming episodes stay with Continue Watching or get their own row."
control={(id) => (
-
+