diff --git a/src/app/routes/_authed/profile.$playerId.tsx b/src/app/routes/_authed/profile.$playerId.tsx
index 74eb2a3..51d7dcc 100644
--- a/src/app/routes/_authed/profile.$playerId.tsx
+++ b/src/app/routes/_authed/profile.$playerId.tsx
@@ -12,10 +12,11 @@ export const Route = createFileRoute("/_authed/profile/$playerId")({
player
}
},
- loader: ({ params }) => ({
+ loader: ({ params, context }) => ({
header: {
collapsed: true,
- withBackButton: true
+ withBackButton: true,
+ settingsLink: context?.auth.user.id === params.playerId ? 'settings' : undefined
},
refresh: {
toRefresh: [playerQueries.details(params.playerId).queryKey],
diff --git a/src/app/routes/_authed/tournaments/$tournamentId.tsx b/src/app/routes/_authed/tournaments/$tournamentId.tsx
index cbd2275..05cff52 100644
--- a/src/app/routes/_authed/tournaments/$tournamentId.tsx
+++ b/src/app/routes/_authed/tournaments/$tournamentId.tsx
@@ -13,10 +13,11 @@ export const Route = createFileRoute('/_authed/tournaments/$tournamentId')({
const { queryClient } = context;
await queryClient.ensureQueryData(tournamentQueries.details(params.tournamentId))
},
- loader: ({ params }) => ({
+ loader: ({ params, context }) => ({
header: {
collapsed: true,
- withBackButton: true
+ withBackButton: true,
+ settingsLink: context.auth.roles.includes("Admin") ? `/admin/tournaments/${params.tournamentId}` : undefined
},
refresh: {
toRefresh: tournamentQueries.details(params.tournamentId).queryKey,
diff --git a/src/features/core/components/header.tsx b/src/features/core/components/header.tsx
index b75c0ef..c6b2374 100644
--- a/src/features/core/components/header.tsx
+++ b/src/features/core/components/header.tsx
@@ -2,17 +2,19 @@ import { Title, AppShell, Flex } from "@mantine/core";
import { HeaderConfig } from "../types/header-config";
import BackButton from "./back-button";
import { useMemo } from "react";
+import SettingsButton from "./settings-button";
interface HeaderProps extends HeaderConfig {
scrollPosition: { x: number, y: number };
}
-const Header = ({ withBackButton, collapsed, title, scrollPosition }: HeaderProps) => {
+const Header = ({ withBackButton, settingsLink, collapsed, title, scrollPosition }: HeaderProps) => {
const offsetY = useMemo(() => {
return collapsed ? scrollPosition.y : 0;
}, [collapsed, scrollPosition.y]);
return (
<>
+ {settingsLink && }
{withBackButton && }