feat(tv): add user switching from settings

This commit is contained in:
Fredrik Burmester
2026-01-31 09:53:54 +01:00
parent bf518b4834
commit 6e85c8d54a
10 changed files with 562 additions and 2 deletions

View File

@@ -0,0 +1,42 @@
import { useCallback } from "react";
import useRouter from "@/hooks/useAppRouter";
import { tvUserSwitchModalAtom } from "@/utils/atoms/tvUserSwitchModal";
import type {
SavedServer,
SavedServerAccount,
} from "@/utils/secureCredentials";
import { store } from "@/utils/store";
interface UseTVUserSwitchModalOptions {
onAccountSelect: (account: SavedServerAccount) => void;
}
export function useTVUserSwitchModal() {
const router = useRouter();
const showUserSwitchModal = useCallback(
(
server: SavedServer,
currentUserId: string,
options: UseTVUserSwitchModalOptions,
) => {
// Need at least 2 accounts (current + at least one other)
if (server.accounts.length < 2) {
return;
}
store.set(tvUserSwitchModalAtom, {
serverUrl: server.address,
serverName: server.name || server.address,
accounts: server.accounts,
currentUserId,
onAccountSelect: options.onAccountSelect,
});
router.push("/(auth)/tv-user-switch-modal");
},
[router],
);
return { showUserSwitchModal };
}