import { Link, useSearchParams } from "@remix-run/react"; import { useTranslation } from "react-i18next"; import { useUser } from "~/modules/auth"; import { LOG_IN_URL, LOG_OUT_URL, userPage } from "~/utils/urls"; import { Avatar } from "../Avatar"; import { Button } from "../Button"; import { Dialog } from "../Dialog"; import { DiscordIcon } from "../icons/Discord"; import { LogOutIcon } from "../icons/LogOut"; import { UserIcon } from "../icons/User"; import { Popover } from "../Popover"; export function UserItem() { const { t } = useTranslation(); const user = useUser(); const [searchParams, setSearchParams] = useSearchParams(); if (user) { return ( } >
); } const authError = searchParams.get("authError"); const closeAuthErrorDialog = () => { const newSearchParams = new URLSearchParams(searchParams); newSearchParams.delete("authError"); setSearchParams(newSearchParams); }; return ( <>
{authError != null && (
)} ); } function AuthenticationErrorHelp({ errorCode }: { errorCode: string }) { const { t } = useTranslation(); switch (errorCode) { case "aborted": return ( <>

{t("auth.errors.aborted")}

{t("auth.errors.discordPermissions")} ); case "unknown": default: return ( <>

{t("auth.errors.failed")}

{t("auth.errors.unknown")} ); } }