38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { CompaniesWorkspace } from "@metis/companies/client";
|
|
import { IdentityWorkspace, identityApi, identityKeys } from "@metis/identity/client";
|
|
import { useQuery } from "@tanstack/react-query";
|
|
|
|
import { LanguageSwitcher } from "./language-switcher";
|
|
import { useAppNavigation } from "./navigation/use-app-navigation";
|
|
|
|
export function App() {
|
|
const session = useQuery({
|
|
queryKey: identityKeys.session,
|
|
queryFn: identityApi.session,
|
|
retry: false,
|
|
});
|
|
useAppNavigation(session.data);
|
|
return (
|
|
<div className="min-h-dvh bg-shell-content">
|
|
{!session.data?.user && (
|
|
<header className="flex items-center justify-between px-[30px] py-5">
|
|
<strong>Metis Desk</strong>
|
|
<LanguageSwitcher className="mt-0" />
|
|
</header>
|
|
)}
|
|
<IdentityWorkspace
|
|
renderWorkspace={(snapshot, accountNavigation) => (
|
|
<CompaniesWorkspace
|
|
accountNavigation={accountNavigation}
|
|
csrfToken={snapshot.csrfToken}
|
|
languageSwitcher={<LanguageSwitcher />}
|
|
userName={snapshot.user?.name ?? ""}
|
|
/>
|
|
)}
|
|
>
|
|
{null}
|
|
</IdentityWorkspace>
|
|
</div>
|
|
);
|
|
}
|