This commit is contained in:
2024-07-21 10:58:51 +03:00
parent 54c9ca8908
commit af05b51d1c
188 changed files with 1155 additions and 555 deletions

View File

@@ -1,39 +1,39 @@
import {Tabs} from "@mantine/core";
import PositionsTable from "../../components/PositionsTable/PositionsTable.tsx";
import usePositionsList from "../../hooks/usePositionsList.tsx";
import {motion} from "framer-motion";
import {PositionSchema, PositionService} from "../../../../client";
import {notifications} from "../../../../shared/lib/notifications.ts";
const RolesAndPositionsTab = () => {
const {objects: positions} = usePositionsList();
const {objects: positions, refetch} = usePositionsList();
const onCreate = (position: PositionSchema) => {
PositionService.createPosition({
requestBody: {
data: position
}
}).then(async ({ok, message}) => {
notifications.guess(ok, {message});
if (!ok) return;
await refetch();
})
}
const onDelete = (position: PositionSchema) => {
PositionService.deletePosition({
requestBody: {
positionKey: position.key
}
}).then(async ({ok, message}) => {
notifications.guess(ok, {message});
if (!ok) return;
await refetch();
})
}
return (
<Tabs w={"100%"}
variant={"default"}
keepMounted={false}
defaultValue={"roles"}
>
<Tabs.List grow>
<Tabs.Tab value={"roles"}>Роли</Tabs.Tab>
<Tabs.Tab value={"positions"}>Должности</Tabs.Tab>
</Tabs.List>
<Tabs.Panel value={"roles"}>
<motion.div
initial={{scaleY: 0}}
animate={{scaleY: 1}}
transition={{duration: 0.1}}
>
<PositionsTable items={positions}/>
</motion.div>
</Tabs.Panel>
<Tabs.Panel value={"positions"}>
<motion.div
initial={{scaleY: 0}}
animate={{scaleY: 1}}
transition={{duration: 0.1}}
>
<PositionsTable items={positions}/>
</motion.div>
</Tabs.Panel>
</Tabs>
<PositionsTable
items={positions}
onCreate={onCreate}
onDelete={onDelete}
/>
)
}
export default RolesAndPositionsTab;