The file "user-workspace.loader.ts" was renamed to "load-user-workspace.ts", in order to better reflect its purpose. All imports across different components and settings pages were updated accordingly. The changes ensure the application adheres to naming conventions, enhancing code readability and maintainability.
71 lines
2.0 KiB
TypeScript
71 lines
2.0 KiB
TypeScript
import {
|
|
BorderedNavigationMenu,
|
|
BorderedNavigationMenuItem,
|
|
} from '@kit/ui/bordered-navigation-menu';
|
|
import { If } from '@kit/ui/if';
|
|
|
|
import { AppLogo } from '~/components/app-logo';
|
|
import { ProfileAccountDropdownContainer } from '~/components/personal-account-dropdown-container';
|
|
import featuresFlagConfig from '~/config/feature-flags.config';
|
|
import { personalAccountNavigationConfig } from '~/config/personal-account-navigation.config';
|
|
|
|
// home imports
|
|
import { HomeAccountSelector } from '../_components/home-account-selector';
|
|
import { UserNotifications } from '../_components/user-notifications';
|
|
import { type UserWorkspace } from '../_lib/server/load-user-workspace';
|
|
|
|
export function HomeMenuNavigation(props: { workspace: UserWorkspace }) {
|
|
const { workspace, user, accounts } = props.workspace;
|
|
|
|
const routes = personalAccountNavigationConfig.routes.reduce<
|
|
Array<{
|
|
path: string;
|
|
label: string;
|
|
Icon?: React.ReactNode;
|
|
end?: boolean | undefined;
|
|
}>
|
|
>((acc, item) => {
|
|
if ('children' in item) {
|
|
return [...acc, ...item.children];
|
|
}
|
|
|
|
if ('divider' in item) {
|
|
return acc;
|
|
}
|
|
|
|
return [...acc, item];
|
|
}, []);
|
|
|
|
return (
|
|
<div className={'flex w-full flex-1 justify-between'}>
|
|
<div className={'flex items-center space-x-8'}>
|
|
<AppLogo />
|
|
|
|
<BorderedNavigationMenu>
|
|
{routes.map((route) => (
|
|
<BorderedNavigationMenuItem {...route} key={route.path} />
|
|
))}
|
|
</BorderedNavigationMenu>
|
|
</div>
|
|
|
|
<div className={'flex justify-end space-x-2.5'}>
|
|
<If condition={featuresFlagConfig.enableTeamAccounts}>
|
|
<HomeAccountSelector
|
|
userId={user.id}
|
|
accounts={accounts}
|
|
collapsed={false}
|
|
/>
|
|
</If>
|
|
|
|
<UserNotifications userId={user.id} />
|
|
|
|
<ProfileAccountDropdownContainer
|
|
collapsed={true}
|
|
user={user}
|
|
account={workspace}
|
|
/>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|