sendou.ink/app/components/layout/UserItem.tsx
hfcRed 0f0babcbb9 Merge remote-tracking branch 'origin/main' into css-rework
# Conflicts:
#	app/components/SubNav.tsx
#	app/components/layout/UserItem.tsx
#	app/features/build-analyzer/routes/analyzer.tsx
#	app/features/map-planner/components/Planner.tsx
#	app/features/object-damage-calculator/routes/object-damage-calculator.tsx
#	app/features/plus-voting/routes/plus.voting.tsx
#	app/root.tsx
#	knip.json
2025-12-30 20:25:30 +01:00

42 lines
1007 B
TypeScript

import clsx from "clsx";
import { useTranslation } from "react-i18next";
import { Link } from "react-router";
import { useUser } from "~/features/auth/core/user";
import { userPage } from "~/utils/urls";
import { Avatar } from "../Avatar";
import { LogInIcon } from "../icons/LogIn";
import { LogInButtonContainer } from "./LogInButtonContainer";
import styles from "./UserItem.module.css";
export function UserItem({ className }: { className?: string }) {
const { t } = useTranslation();
const user = useUser();
if (user) {
return (
<Link
to={userPage(user)}
prefetch="intent"
className={clsx(styles.userItem, className)}
>
<Avatar
user={user}
alt={t("header.loggedInAs", {
userName: `${user.username}`,
})}
className={styles.avatar}
size="sm"
/>
</Link>
);
}
return (
<LogInButtonContainer>
<button type="submit" className={styles.logInButton}>
<LogInIcon /> {t("header.login")}
</button>
</LogInButtonContainer>
);
}