feat: deal product services

This commit is contained in:
2024-05-19 03:30:04 +03:00
parent b0cfaf3a8b
commit c5cd8e350f
28 changed files with 332 additions and 151 deletions

View File

@@ -0,0 +1,26 @@
import {FC} from "react";
import {SegmentedControl, SegmentedControlProps} from "@mantine/core";
import {ServiceType} from "../../../../shared/enums/ServiceType.ts";
type Props = Omit<SegmentedControlProps, 'data'>;
const data = [
{
label: 'Для товара',
value: ServiceType.PRODUCT_SERVICE.toString()
},
{
label: 'Для сделки',
value: ServiceType.DEAL_SERVICE.toString()
}
]
const ServiceTypeSegmentedControl: FC<Props> = (props) => {
return (
<SegmentedControl
data={data}
{...props}
/>
)
}
export default ServiceTypeSegmentedControl

View File

@@ -44,7 +44,6 @@ const CreateServiceModal = ({
})
console.log(form.values)
const onCancelClick = () => {
context.closeContextModal(id);
}

View File

@@ -9,4 +9,9 @@
padding: rem(5);
gap: rem(10);
display: flex;
}
}
.top-panel-last-item {
margin-left: auto;
}

View File

@@ -1,4 +1,4 @@
import {FC} from "react";
import {FC, useState} from "react";
import ServicesTable from "../components/ServicesTable/ServicesTable.tsx";
import useServicesList from "../hooks/useServicesList.tsx";
import PageBlock from "../../../components/PageBlock/PageBlock.tsx";
@@ -7,10 +7,12 @@ import {Button, Text} from "@mantine/core";
import {ServiceCategorySchema, ServiceSchema, ServiceService} from "../../../client";
import {notifications} from "../../../shared/lib/notifications.ts";
import {modals} from "@mantine/modals";
import ServiceTypeSegmentedControl from "../components/ServiceTypeSegmentedControl/ServiceTypeSegmentedControl.tsx";
import {ServiceType} from "../../../shared/enums/ServiceType.ts";
export const ServicesPage: FC = () => {
const {services, refetch} = useServicesList();
const [serviceType, setServiceType] = useState(ServiceType.DEAL_SERVICE)
// region Service create
const onCreateClick = () => {
modals.openContextModal({
@@ -90,13 +92,18 @@ export const ServicesPage: FC = () => {
<div className={styles['top-panel']}>
<Button onClick={onCreateClick} variant={"default"}>Создать услугу</Button>
<Button onClick={onCreateCategoryClick} variant={"default"}>Создать категорию</Button>
<ServiceTypeSegmentedControl
className={styles['top-panel-last-item']}
value={serviceType.toString()}
onChange={(event) => setServiceType(parseInt(event))}
/>
</div>
</PageBlock>
<PageBlock>
<ServicesTable
onDelete={onServiceDelete}
onChange={onServiceUpdate}
items={services}
items={services.filter(service => service.serviceType == serviceType)}
/>
</PageBlock>
</div>