import type { FC, ReactNode } from "react"; import { AppShell as MantineAppShell, NavLink, Text } from "@mantine/core"; import { BondsIcon, CardsIcon, PortfolioIcon, SettingsIcon, StocksIcon, } from "@wealthledger/icons"; import { useTranslation } from "react-i18next"; import { Outlet, NavLink as RouterNavLink, useLocation } from "react-router"; import classes from "./AppShell.module.css"; type AppShellProps = { contentAboveOutlet?: ReactNode; }; function getBottomNavItemClass({ isActive }: { isActive: boolean }) { return isActive ? `${classes.bottomNavItem} ${classes.active}` : classes.bottomNavItem; } const AppShell: FC = (props) => { const { contentAboveOutlet } = props; const { t } = useTranslation(); const { pathname } = useLocation(); const items = [ { Icon: PortfolioIcon, iconClassName: classes.portfolioIcon, label: t("navigation.accounts"), to: "/accounts", }, { Icon: CardsIcon, iconClassName: classes.cardsIcon, label: t("navigation.cards"), to: "/cards", }, { Icon: StocksIcon, iconClassName: classes.stocksIcon, label: t("navigation.stocks"), to: "/stocks", }, { Icon: BondsIcon, iconClassName: classes.bondsIcon, label: t("navigation.bonds"), to: "/bonds", }, { Icon: SettingsIcon, iconClassName: classes.settingsIcon, label: t("navigation.settings"), to: "/settings", }, ]; return (
{t("appName")}
{items.map(item => ( )} to={item.to} /> ))}
{contentAboveOutlet}
); }; export { AppShell };