feat: hide statistics, work time, expenses and finances from regular users

This commit is contained in:
2024-12-09 20:17:32 +04:00
parent 2ee0ef3a52
commit d5598a10b8
4 changed files with 66 additions and 24 deletions

View File

@@ -3,8 +3,10 @@ import { Tabs } from "@mantine/core";
import PageBlock from "../../components/PageBlock/PageBlock.tsx";
import {
IconBriefcase,
IconCalendarUser, IconCoins,
IconCurrencyDollar, IconQrcode,
IconCalendarUser,
IconCoins,
IconCurrencyDollar,
IconQrcode,
IconUser,
} from "@tabler/icons-react";
import RolesAndPositionsTab from "./tabs/RolesAndPositions/RolesAndPositionsTab.tsx";
@@ -14,8 +16,13 @@ import FinancesTab from "./tabs/Finances/FinancesTab.tsx";
import WorkTimeTable from "./tabs/WorkTimeTable/ui/WorkTimeTable.tsx";
import { WorkShiftsTab } from "./tabs/WorkShifts/WorkShiftsTab.tsx";
import { ExpensesTab } from "./tabs/Expenses/ExpensesTab.tsx";
import { useSelector } from "react-redux";
import { RootState } from "../../redux/store.ts";
const AdminPage = () => {
const userRole = useSelector((state: RootState) => state.auth.role);
const isAdmin = userRole === "admin";
return (
<div className={styles["container"]}>
<PageBlock fullHeight>
@@ -29,31 +36,37 @@ const AdminPage = () => {
leftSection={<IconUser />}>
Пользователи
</Tabs.Tab>
<Tabs.Tab
value={"finances"}
leftSection={<IconCurrencyDollar />}>
Финансы
</Tabs.Tab>
{isAdmin && (
<Tabs.Tab
value={"finances"}
leftSection={<IconCurrencyDollar />}>
Финансы
</Tabs.Tab>
)}
<Tabs.Tab
value={"rolesAndPositions"}
leftSection={<IconBriefcase />}>
Должности
</Tabs.Tab>
<Tabs.Tab
value={"workTimeTable"}
leftSection={<IconCalendarUser />}>
Рабочее время
</Tabs.Tab>
{isAdmin && (
<Tabs.Tab
value={"workTimeTable"}
leftSection={<IconCalendarUser />}>
Рабочее время
</Tabs.Tab>
)}
<Tabs.Tab
value={"workShifts"}
leftSection={<IconQrcode />}>
Смены
</Tabs.Tab>
<Tabs.Tab
value={"expenses"}
leftSection={<IconCoins />}>
Расходы
</Tabs.Tab>
{isAdmin && (
<Tabs.Tab
value={"expenses"}
leftSection={<IconCoins />}>
Расходы
</Tabs.Tab>
)}
</Tabs.List>
<Tabs.Panel value={"users"}>
<motion.div

View File

@@ -1,8 +1,17 @@
import { StatisticsTab } from "../components/StatisticsTabSegmentedControl/StatisticsTabSegmentedControl.tsx";
import styles from "./StatisticsPage.module.css";
import { ProfitTab } from "../tabs/ProfitTab/ProfitTab.tsx";
import { useSelector } from "react-redux";
import { RootState } from "../../../redux/store.ts";
import { Navigate } from "@tanstack/react-router";
export const StatisticsPage = () => {
const userRole = useSelector((state: RootState) => state.auth.role);
if (userRole !== "admin") {
return <Navigate to={"/leads"} />;
}
const serviceType = StatisticsTab.PROFIT;
const getBody = () => {