Getting the user in the rootcomponent

I specified the rootComponent for my client:
client: {
    rootComponent: import Root from "@src/client/Root",
  }

In my Root.tsx I want to check if the user is logged in, so I can check which menu items to show:
const links: { link: Routes, label: string }[] = [
  { link: routes.RootRoute, label: 'Home' },
  { link: routes.ClassRoute, label: 'Class' },
  { link: routes.CourseRoute, label: 'Course' },
];

export default function Root({ user, children }: { user: AuthUser, children: React.ReactNode }) {
  return (
    <MantineProvider>
      <Header user={user} />
      {children}
    </MantineProvider>)
}

function Header({ user }: { user: AuthUser }) {
  const items = links.map((link) => (
    <NavLink to={link.link.to}>
      <Button key={link.label}>{link.label}</Button>
    </NavLink>
  ));

  return (
    <header className={classes.header}>
      <Container size="md" className={classes.inner}>
        <h1>Teachers tools</h1>
        <Group gap={5} visibleFrom="xs">
          {user && items}
          {user && <Button size="s" onClick={logout}>Logout</Button>}
          {!user && <NavLink to='/login'><Button size="s">Login</Button></NavLink>}
        </Group>
      </Container>
    </header>
  );
}

This does not work. Even if the user is logged in, the Header only shows this button:
<NavLink to='/login'><Button size="s">Login</Button></NavLink>

Is it possible to access the user in the rootComponent?
Was this page helpful?