@@ -4,6 +4,7 @@ import { EventList } from "@/app/arrangementer/components/EventList"
44import { useEventAllByAttendingUserIdInfiniteQuery } from "@/app/arrangementer/components/queries"
55import { OnlineIcon } from "@/components/atoms/OnlineIcon"
66import { EventListItemSkeleton } from "@/components/molecules/EventListItem/EventListItem"
7+ import { env } from "@/env"
78import { useTRPC } from "@/utils/trpc/client"
89import { useFullPathname } from "@/utils/use-full-pathname"
910import { useSession } from "@dotkomonline/oauth2/react"
@@ -54,6 +55,7 @@ import { notFound, useParams, useSearchParams } from "next/navigation"
5455import { type ElementType , useMemo } from "react"
5556import { PenaltyDialog } from "./components/PenaltyDialog"
5657import SkeletonProfilePage from "./loading"
58+ import { useIsAdminQuery } from "./queries"
5759
5860const UserProp = ( props : { label : string ; value : string | number | null ; icon : ElementType } ) => {
5961 const Icon = props . icon
@@ -241,6 +243,8 @@ export function ProfilePage() {
241243 [ groups ]
242244 )
243245
246+ const { isAdmin } = useIsAdminQuery ( )
247+
244248 if ( user === undefined || userLoading ) {
245249 return < SkeletonProfilePage />
246250 }
@@ -252,6 +256,8 @@ export function ProfilePage() {
252256 const activeMembership = findActiveMembership ( user )
253257 const grade = activeMembership ? getMembershipGrade ( activeMembership ) : null
254258
259+ const dashboardUrl = new URL ( `/brukere/${ user . id } ` , env . NEXT_PUBLIC_DASHBOARD_URL ) . toString ( )
260+
255261 return (
256262 < div className = "flex flex-col gap-8 w-full" >
257263 < div className = "flex flex-row gap-4" >
@@ -264,9 +270,25 @@ export function ProfilePage() {
264270
265271 < div className = "flex flex-col gap-2 grow" >
266272 < div className = "flex flex-row w-full justify-between" >
267- < Title element = "h1" className = "font-semibold text-xl md:text-2xl" >
268- { user . name }
269- </ Title >
273+ < div className = "flex flex-row gap-4 items-center" >
274+ < Title element = "h1" className = "font-semibold text-xl md:text-2xl" >
275+ { user . name }
276+ </ Title >
277+ { isAdmin && (
278+ < Button
279+ element = { Link }
280+ href = { dashboardUrl }
281+ target = "_blank"
282+ rel = "noopener noreferrer"
283+ variant = "unstyled"
284+ className = "w-fit p-1.5 bg-blue-100 hover:bg-blue-50 rounded-md transition-colors dark:bg-stone-700 dark:hover:bg-stone-600 gap-1.5"
285+ title = "Rediger arrangement"
286+ >
287+ < IconEdit className = "size-[1.25em] md:w-6 md:h-6" />
288+ < Text className = "md:hidden" > Rediger</ Text >
289+ </ Button >
290+ ) }
291+ </ div >
270292 { isUser && (
271293 < Button
272294 element = { Link }
0 commit comments