feat: crappy reordering
This commit is contained in:
@@ -198,6 +198,8 @@ export type { ServicePriceRangeSchema } from './models/ServicePriceRangeSchema';
|
|||||||
export type { ServiceReorderRequest } from './models/ServiceReorderRequest';
|
export type { ServiceReorderRequest } from './models/ServiceReorderRequest';
|
||||||
export type { ServiceReorderResponse } from './models/ServiceReorderResponse';
|
export type { ServiceReorderResponse } from './models/ServiceReorderResponse';
|
||||||
export type { ServiceSchema } from './models/ServiceSchema';
|
export type { ServiceSchema } from './models/ServiceSchema';
|
||||||
|
export type { ServiceUpdateCategoryRequest } from './models/ServiceUpdateCategoryRequest';
|
||||||
|
export type { ServiceUpdateCategoryResponse } from './models/ServiceUpdateCategoryResponse';
|
||||||
export type { ServiceUpdateRequest } from './models/ServiceUpdateRequest';
|
export type { ServiceUpdateRequest } from './models/ServiceUpdateRequest';
|
||||||
export type { ServiceUpdateResponse } from './models/ServiceUpdateResponse';
|
export type { ServiceUpdateResponse } from './models/ServiceUpdateResponse';
|
||||||
export type { ShippingWarehouseSchema } from './models/ShippingWarehouseSchema';
|
export type { ShippingWarehouseSchema } from './models/ShippingWarehouseSchema';
|
||||||
|
|||||||
9
src/client/models/ServiceUpdateCategoryRequest.ts
Normal file
9
src/client/models/ServiceUpdateCategoryRequest.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/* generated using openapi-typescript-codegen -- do not edit */
|
||||||
|
/* istanbul ignore file */
|
||||||
|
/* tslint:disable */
|
||||||
|
/* eslint-disable */
|
||||||
|
import type { ServiceCategorySchema } from './ServiceCategorySchema';
|
||||||
|
export type ServiceUpdateCategoryRequest = {
|
||||||
|
category: ServiceCategorySchema;
|
||||||
|
};
|
||||||
|
|
||||||
9
src/client/models/ServiceUpdateCategoryResponse.ts
Normal file
9
src/client/models/ServiceUpdateCategoryResponse.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/* generated using openapi-typescript-codegen -- do not edit */
|
||||||
|
/* istanbul ignore file */
|
||||||
|
/* tslint:disable */
|
||||||
|
/* eslint-disable */
|
||||||
|
export type ServiceUpdateCategoryResponse = {
|
||||||
|
ok: boolean;
|
||||||
|
message: string;
|
||||||
|
};
|
||||||
|
|
||||||
@@ -23,6 +23,8 @@ import type { ServiceGetAllCategoriesResponse } from '../models/ServiceGetAllCat
|
|||||||
import type { ServiceGetAllResponse } from '../models/ServiceGetAllResponse';
|
import type { ServiceGetAllResponse } from '../models/ServiceGetAllResponse';
|
||||||
import type { ServiceReorderRequest } from '../models/ServiceReorderRequest';
|
import type { ServiceReorderRequest } from '../models/ServiceReorderRequest';
|
||||||
import type { ServiceReorderResponse } from '../models/ServiceReorderResponse';
|
import type { ServiceReorderResponse } from '../models/ServiceReorderResponse';
|
||||||
|
import type { ServiceUpdateCategoryRequest } from '../models/ServiceUpdateCategoryRequest';
|
||||||
|
import type { ServiceUpdateCategoryResponse } from '../models/ServiceUpdateCategoryResponse';
|
||||||
import type { ServiceUpdateRequest } from '../models/ServiceUpdateRequest';
|
import type { ServiceUpdateRequest } from '../models/ServiceUpdateRequest';
|
||||||
import type { ServiceUpdateResponse } from '../models/ServiceUpdateResponse';
|
import type { ServiceUpdateResponse } from '../models/ServiceUpdateResponse';
|
||||||
import type { UpdatePriceCategoryRequest } from '../models/UpdatePriceCategoryRequest';
|
import type { UpdatePriceCategoryRequest } from '../models/UpdatePriceCategoryRequest';
|
||||||
@@ -155,6 +157,26 @@ export class ServiceService {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Update Category
|
||||||
|
* @returns ServiceUpdateCategoryResponse Successful Response
|
||||||
|
* @throws ApiError
|
||||||
|
*/
|
||||||
|
public static updateServiceCategory({
|
||||||
|
requestBody,
|
||||||
|
}: {
|
||||||
|
requestBody: ServiceUpdateCategoryRequest,
|
||||||
|
}): CancelablePromise<ServiceUpdateCategoryResponse> {
|
||||||
|
return __request(OpenAPI, {
|
||||||
|
method: 'POST',
|
||||||
|
url: '/service/categories/update',
|
||||||
|
body: requestBody,
|
||||||
|
mediaType: 'application/json',
|
||||||
|
errors: {
|
||||||
|
422: `Validation Error`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Reorder Category
|
* Reorder Category
|
||||||
* @returns ServiceCategoryReorderResponse Successful Response
|
* @returns ServiceCategoryReorderResponse Successful Response
|
||||||
|
|||||||
@@ -150,6 +150,38 @@ const ServicesTable: FC<Props> = ({
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"mrt-row-actions": {
|
||||||
|
AggregatedCell: ({ row }) => editMode && (
|
||||||
|
<Tooltip label={"Редактировать категорию"}>
|
||||||
|
<ActionIcon onClick={() => {
|
||||||
|
modals.openContextModal({
|
||||||
|
modal: "createServiceCategory",
|
||||||
|
title: "Создание категории",
|
||||||
|
withCloseButton: false,
|
||||||
|
innerProps: {
|
||||||
|
element: row.original.category,
|
||||||
|
onChange: newCategory => {
|
||||||
|
ServiceService.updateServiceCategory({ requestBody: { category: newCategory } }).then(({
|
||||||
|
ok,
|
||||||
|
message,
|
||||||
|
}) => {
|
||||||
|
notifications.guess(ok, { message });
|
||||||
|
if (!ok) return;
|
||||||
|
queryClient.invalidateQueries({
|
||||||
|
queryKey: ["getAllServices"],
|
||||||
|
}).then(() => {
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}} variant={"default"}>
|
||||||
|
<IconEdit />
|
||||||
|
</ActionIcon>
|
||||||
|
</Tooltip>
|
||||||
|
),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
enableRowActions: true,
|
enableRowActions: true,
|
||||||
renderRowActions: ({ row }) => (
|
renderRowActions: ({ row }) => (
|
||||||
|
|||||||
@@ -2,19 +2,18 @@ import { ServiceCategorySchema } from "../../../client";
|
|||||||
import { Button, Flex, rem, TextInput } from "@mantine/core";
|
import { Button, Flex, rem, TextInput } from "@mantine/core";
|
||||||
import { useForm } from "@mantine/form";
|
import { useForm } from "@mantine/form";
|
||||||
import { ContextModalProps } from "@mantine/modals";
|
import { ContextModalProps } from "@mantine/modals";
|
||||||
|
import { CreateEditFormProps } from "../../ClientsPage/modals/BaseFormModal/BaseFormModal.tsx";
|
||||||
|
|
||||||
type Props = {
|
type Props = CreateEditFormProps<ServiceCategorySchema>;
|
||||||
onCreate: (category: ServiceCategorySchema) => void;
|
|
||||||
};
|
|
||||||
const CreateServiceCategoryModal = ({
|
const CreateServiceCategoryModal = ({
|
||||||
context,
|
context,
|
||||||
id,
|
id,
|
||||||
innerProps,
|
innerProps,
|
||||||
}: ContextModalProps<Props>) => {
|
}: ContextModalProps<Props>) => {
|
||||||
|
const isEditing = "onChange" in innerProps;
|
||||||
|
const initialValues = isEditing ? innerProps.element : { name: "" };
|
||||||
const form = useForm({
|
const form = useForm({
|
||||||
initialValues: {
|
initialValues,
|
||||||
name: "",
|
|
||||||
},
|
|
||||||
validate: {
|
validate: {
|
||||||
name: name =>
|
name: name =>
|
||||||
name.trim() !== ""
|
name.trim() !== ""
|
||||||
@@ -23,7 +22,15 @@ const CreateServiceCategoryModal = ({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const onSubmit = (values: { name: string }) => {
|
const onSubmit = (values: { name: string }) => {
|
||||||
innerProps.onCreate({ name: values.name, id: -1 });
|
if (isEditing) {
|
||||||
|
innerProps.onChange({ ...innerProps.element, ...values });
|
||||||
|
} else {
|
||||||
|
innerProps.onCreate({
|
||||||
|
...values,
|
||||||
|
dealServiceRank: "",
|
||||||
|
productServiceRank: "", id: -1,
|
||||||
|
});
|
||||||
|
}
|
||||||
context.closeContextModal(id);
|
context.closeContextModal(id);
|
||||||
};
|
};
|
||||||
const onCancelClick = () => {
|
const onCancelClick = () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user