diff --git a/app/auth/membership-confirmation/page.tsx b/app/auth/membership-confirmation/page.tsx index 3cf00c8..c6aef9b 100644 --- a/app/auth/membership-confirmation/page.tsx +++ b/app/auth/membership-confirmation/page.tsx @@ -5,6 +5,10 @@ import pathsConfig from '@/config/paths.config'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { withI18n } from '~/lib/i18n/with-i18n'; +import { + PAGE_VIEW_ACTION, + createPageViewLog, +} from '~/lib/services/audit/pageView.service'; import MembershipConfirmationNotification from './_components/membership-confirmation-notification'; @@ -18,6 +22,10 @@ async function MembershipConfirmation() { if (!user?.id) { redirect(pathsConfig.app.home); } + await createPageViewLog({ + accountId: user.id, + action: PAGE_VIEW_ACTION.REGISTRATION_SUCCESS, + }); return ; } diff --git a/app/home/(user)/(dashboard)/analysis-results/page.tsx b/app/home/(user)/(dashboard)/analysis-results/page.tsx index 01bc50a..d31cce5 100644 --- a/app/home/(user)/(dashboard)/analysis-results/page.tsx +++ b/app/home/(user)/(dashboard)/analysis-results/page.tsx @@ -1,5 +1,7 @@ import Link from 'next/link'; +import { redirect } from 'next/navigation'; +import { loadCurrentUserAccount } from '@/app/home/(user)/_lib/server/load-user-account'; import { createI18nServerInstance } from '@/lib/i18n/i18n.server'; import { withI18n } from '@/lib/i18n/with-i18n'; @@ -7,16 +9,18 @@ import { Trans } from '@kit/ui/makerkit/trans'; import { PageBody } from '@kit/ui/page'; import { Button } from '@kit/ui/shadcn/button'; -import { loadUserAnalysis } from '../../_lib/server/load-user-analysis'; -import Analysis from './_components/analysis'; import pathsConfig from '~/config/paths.config'; -import { redirect } from 'next/navigation'; -import { AnalysisOrder, getAnalysisOrders } from '~/lib/services/order.service'; import { getAnalysisElements } from '~/lib/services/analysis-element.service'; -import { loadCurrentUserAccount } from '@/app/home/(user)/_lib/server/load-user-account'; -import { createPageViewLog } from '~/lib/services/audit/pageView.service'; +import { + PAGE_VIEW_ACTION, + createPageViewLog, +} from '~/lib/services/audit/pageView.service'; +import { AnalysisOrder, getAnalysisOrders } from '~/lib/services/order.service'; import { ButtonTooltip } from '~/components/ui/button-tooltip'; +import Analysis from './_components/analysis'; +import { loadUserAnalysis } from '../../_lib/server/load-user-analysis'; + export const generateMetadata = async () => { const i18n = await createI18nServerInstance(); const title = i18n.t('analysis-results:pageTitle'); @@ -27,13 +31,15 @@ export const generateMetadata = async () => { }; async function AnalysisResultsPage() { - const account = await loadCurrentUserAccount() + const account = await loadCurrentUserAccount(); if (!account) { throw new Error('Account not found'); } const analysisResponses = await loadUserAnalysis(); - const analysisResponseElements = analysisResponses?.flatMap(({ elements }) => elements); + const analysisResponseElements = analysisResponses?.flatMap( + ({ elements }) => elements, + ); const analysisOrders = await getAnalysisOrders().catch(() => null); @@ -43,7 +49,7 @@ async function AnalysisResultsPage() { await createPageViewLog({ accountId: account.id, - action: 'VIEW_ANALYSIS_RESULTS', + action: PAGE_VIEW_ACTION.VIEW_ANALYSIS_RESULTS, }); const getAnalysisElementIds = (analysisOrders: AnalysisOrder[]) => [ diff --git a/app/home/[account]/_components/team-account-layout-sidebar.tsx b/app/home/[account]/_components/team-account-layout-sidebar.tsx index 8b3c385..398fb9a 100644 --- a/app/home/[account]/_components/team-account-layout-sidebar.tsx +++ b/app/home/[account]/_components/team-account-layout-sidebar.tsx @@ -1,5 +1,6 @@ import type { User } from '@supabase/supabase-js'; +import { ApplicationRole } from '@kit/accounts/types/accounts'; import { Sidebar, SidebarContent, @@ -18,6 +19,7 @@ type AccountModel = { label: string | null; value: string | null; image: string | null; + application_role: ApplicationRole | null; }; export function TeamAccountLayoutSidebar(props: { @@ -73,7 +75,10 @@ function SidebarContainer(props: { - + diff --git a/app/home/[account]/_components/team-account-navigation-menu.tsx b/app/home/[account]/_components/team-account-navigation-menu.tsx index c09a19a..80c1bb9 100644 --- a/app/home/[account]/_components/team-account-navigation-menu.tsx +++ b/app/home/[account]/_components/team-account-navigation-menu.tsx @@ -1,7 +1,4 @@ -import { - BorderedNavigationMenu, - BorderedNavigationMenuItem, -} from '@kit/ui/bordered-navigation-menu'; +import { useMemo } from 'react'; import { AppLogo } from '~/components/app-logo'; import { ProfileAccountDropdownContainer } from '~/components/personal-account-dropdown-container'; @@ -10,18 +7,22 @@ import { getTeamAccountSidebarConfig } from '~/config/team-account-navigation.co // local imports import { TeamAccountWorkspace } from '../_lib/server/team-account-workspace.loader'; import { TeamAccountNotifications } from './team-account-notifications'; -import { useMemo } from 'react'; export function TeamAccountNavigationMenu(props: { workspace: TeamAccountWorkspace; }) { const { account, user, accounts: rawAccounts } = props.workspace; - const accounts = useMemo(() => rawAccounts.map((account) => ({ - label: account.name, - value: account.slug, - image: account.picture_url, - })),[rawAccounts]) + const accounts = useMemo( + () => + rawAccounts.map((account) => ({ + label: account.name, + value: account.slug, + image: account.picture_url, + application_role: account.application_role, + })), + [rawAccounts], + ); const routes = getTeamAccountSidebarConfig(account.slug).routes.reduce< Array<{ @@ -48,7 +49,7 @@ export function TeamAccountNavigationMenu(props: { -
+
{ const promise = async () => { @@ -55,6 +56,7 @@ const HealthBenefitForm = ({ benefit_occurance: data.occurance, })); } finally { + form.reset(data); setIsLoading(false); } }; @@ -83,7 +85,11 @@ const HealthBenefitForm = ({

-