metis-desk/apps/web/src/app.tsx
David ddebfadc1c feat: add contextual help components and dialog support
- Introduced `ContextHelpContent` for displaying contextual help with title, description, examples, and guidance.
- Created `DialogHelp` component to manage help dialogs, including popover and panel presentations.
- Implemented `useDialogHelpLayout` hook for handling dialog layout and state management.
- Added context for dialog help management with `DialogHelpContext` and `DialogHelpLabelsContext`.
- Developed utility functions for determining dialog help presentation modes.
- Included tests for dialog help functionality and layout behavior.
- Created a Python script for auditing contextual help in real forms.
2026-10-25 17:47:54 +01:00

47 lines
1.5 KiB
TypeScript

import { CompaniesWorkspace } from "@metis/companies/client";
import { IdentityWorkspace, identityApi, identityKeys } from "@metis/identity/client";
import { DialogHelpLabelsContext } from "@repo/rdx-ui/lib/dialog-help-context";
import { useQuery } from "@tanstack/react-query";
import { useTranslation } from "react-i18next";
import { LanguageSwitcher } from "./language-switcher";
import { useAppNavigation } from "./navigation/use-app-navigation";
export function App() {
const { t } = useTranslation("core");
const session = useQuery({
queryKey: identityKeys.session,
queryFn: identityApi.session,
retry: false,
});
useAppNavigation(session.data);
return (
<DialogHelpLabelsContext.Provider
value={{
help: t("dialogHelp.help"),
closeHelp: t("dialogHelp.closeHelp"),
backToForm: t("dialogHelp.backToForm"),
closeDialog: t("dialogHelp.closeDialog"),
}}
>
<div className="min-h-dvh bg-shell-content">
<IdentityWorkspace
renderWorkspace={(snapshot, accountNavigation, administrationContent) => (
<CompaniesWorkspace
accountNavigation={accountNavigation}
administrationContent={administrationContent}
canManageUsers={snapshot.user?.isInitialAdmin ?? false}
languageSwitcher={<LanguageSwitcher />}
userName={snapshot.user?.name ?? ""}
/>
)}
>
{null}
</IdentityWorkspace>
</div>
</DialogHelpLabelsContext.Provider>
);
}