k
This commit is contained in:
		@@ -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;
 | 
			
		||||
		Reference in New Issue
	
	Block a user