feat: prettier

This commit is contained in:
2024-09-27 04:47:04 +03:00
parent c5f839d9ef
commit de4fe450ab
253 changed files with 11322 additions and 10004 deletions

View File

@@ -1,12 +1,12 @@
import {CRUDTableProps} from "../../../../types/CRUDTable.tsx";
import {DealSummary, ShippingWarehouseSchema} from "../../../../client";
import {FC} from "react";
import {BaseTable} from "../../../../components/BaseTable/BaseTable.tsx";
import { CRUDTableProps } from "../../../../types/CRUDTable.tsx";
import { DealSummary, ShippingWarehouseSchema } from "../../../../client";
import { FC } from "react";
import { BaseTable } from "../../../../components/BaseTable/BaseTable.tsx";
import useShippingWarehouseTableColumns from "./columns.tsx";
import {ActionIcon, Flex, Text, Tooltip} from "@mantine/core";
import {IconEdit, IconTrash} from "@tabler/icons-react";
import {MRT_TableOptions} from "mantine-react-table";
import {modals} from "@mantine/modals";
import { ActionIcon, Flex, Text, Tooltip } from "@mantine/core";
import { IconEdit, IconTrash } from "@tabler/icons-react";
import { MRT_TableOptions } from "mantine-react-table";
import { modals } from "@mantine/modals";
type RestProps = {
summaries: DealSummary[];
@@ -14,70 +14,76 @@ type RestProps = {
type Props = CRUDTableProps<ShippingWarehouseSchema> & RestProps;
const ShippingWarehouseTable: FC<Props> = ({
onChange,
onDelete,
items,
summaries
}) => {
onChange,
onDelete,
items,
summaries,
}) => {
const columns = useShippingWarehouseTableColumns();
const onEditClick = (element: ShippingWarehouseSchema) => {
if (!onChange) return;
modals.openContextModal({
modal: "shippingWarehouseForm",
title: 'Редактирование склада отгрузки',
title: "Редактирование склада отгрузки",
withCloseButton: false,
innerProps: {
element,
onChange,
summaries: summaries.filter(s => s.shipmentWarehouseId === element.id).slice(0, 5)
summaries: summaries
.filter(s => s.shipmentWarehouseId === element.id)
.slice(0, 5),
},
size: "xl"
})
}
size: "xl",
});
};
const onDeleteClick = (element: ShippingWarehouseSchema) => {
if (!onDelete) return;
modals.openConfirmModal({
title: 'Удаление склада отгрузки',
title: "Удаление склада отгрузки",
children: (
<Text size="sm">
Вы уверены что хотите удалить склад отгрузки {element.name}
</Text>
),
labels: {confirm: 'Да', cancel: "Нет"},
confirmProps: {color: 'red'},
labels: { confirm: "Да", cancel: "Нет" },
confirmProps: { color: "red" },
onConfirm: () => {
onDelete(element);
}
},
});
}
};
return (
<BaseTable
data={items}
columns={columns}
restProps={{
enableColumnActions: false,
enableSorting: false,
enableRowActions: true,
renderRowActions: ({row}) => (
<Flex gap="md">
<Tooltip label="Редактировать">
<ActionIcon
onClick={() => onEditClick(row.original)}
variant={"default"}>
<IconEdit/>
</ActionIcon>
</Tooltip>
<Tooltip label="Удалить">
<ActionIcon onClick={() => onDeleteClick(row.original)} variant={"default"}>
<IconTrash/>
</ActionIcon>
</Tooltip>
</Flex>
)
} as MRT_TableOptions<ShippingWarehouseSchema>}
restProps={
{
enableColumnActions: false,
enableSorting: false,
enableRowActions: true,
renderRowActions: ({ row }) => (
<Flex gap="md">
<Tooltip label="Редактировать">
<ActionIcon
onClick={() => onEditClick(row.original)}
variant={"default"}>
<IconEdit />
</ActionIcon>
</Tooltip>
<Tooltip label="Удалить">
<ActionIcon
onClick={() => onDeleteClick(row.original)}
variant={"default"}>
<IconTrash />
</ActionIcon>
</Tooltip>
</Flex>
),
} as MRT_TableOptions<ShippingWarehouseSchema>
}
/>
)
}
);
};
export default ShippingWarehouseTable;
export default ShippingWarehouseTable;

View File

@@ -1,18 +1,21 @@
import {useMemo} from "react";
import {MRT_ColumnDef} from "mantine-react-table";
import {ShippingWarehouseSchema} from "../../../../client";
import { useMemo } from "react";
import { MRT_ColumnDef } from "mantine-react-table";
import { ShippingWarehouseSchema } from "../../../../client";
const useShippingWarehouseTableColumns = () => {
return useMemo<MRT_ColumnDef<ShippingWarehouseSchema>[]>(() => [
{
accessorKey:"id",
header:"ID"
},
{
accessorKey:"name",
header:"Название"
}
], []);
}
return useMemo<MRT_ColumnDef<ShippingWarehouseSchema>[]>(
() => [
{
accessorKey: "id",
header: "ID",
},
{
accessorKey: "name",
header: "Название",
},
],
[]
);
};
export default useShippingWarehouseTableColumns;
export default useShippingWarehouseTableColumns;

View File

@@ -1 +1 @@
export {ShippingWarehousesPage} from './ui/ShippingWarehousesPage.tsx';
export { ShippingWarehousesPage } from "./ui/ShippingWarehousesPage.tsx";

View File

@@ -1,39 +1,40 @@
import BaseFormModal, {CreateEditFormProps} from "../../ClientsPage/modals/BaseFormModal/BaseFormModal.tsx";
import {DealSummary, ShippingWarehouseSchema} from "../../../client";
import {ContextModalProps} from "@mantine/modals";
import {useForm} from "@mantine/form";
import {Input, TextInput} from "@mantine/core";
import BaseFormModal, {
CreateEditFormProps,
} from "../../ClientsPage/modals/BaseFormModal/BaseFormModal.tsx";
import { DealSummary, ShippingWarehouseSchema } from "../../../client";
import { ContextModalProps } from "@mantine/modals";
import { useForm } from "@mantine/form";
import { Input, TextInput } from "@mantine/core";
import DealsTable from "../../DealsPage/components/DealsTable/DealsTable.tsx";
import {DealPageContextProvider} from "../../LeadsPage/contexts/DealPageContext.tsx";
import { DealPageContextProvider } from "../../LeadsPage/contexts/DealPageContext.tsx";
import DealEditDrawer from "../../LeadsPage/drawers/DealEditDrawer/DealEditDrawer.tsx";
type RestProps = {
summaries: DealSummary[];
}
};
type Props = CreateEditFormProps<ShippingWarehouseSchema> & RestProps;
const ShippingWarehouseForm = ({
context,
innerProps,
id
}: ContextModalProps<Props>) => {
const isEditing = 'onChange' in innerProps;
context,
innerProps,
id,
}: ContextModalProps<Props>) => {
const isEditing = "onChange" in innerProps;
const form = useForm<ShippingWarehouseSchema>({
initialValues: isEditing ? innerProps.element : {
id: -1,
name: ""
}
initialValues: isEditing
? innerProps.element
: {
id: -1,
name: "",
},
});
return (
<DealPageContextProvider>
<BaseFormModal
{...innerProps}
closeOnSubmit
form={form}
onClose={() => context.closeContextModal(id)}
>
onClose={() => context.closeContextModal(id)}>
<BaseFormModal.Body>
<>
<TextInput
@@ -41,24 +42,22 @@ const ShippingWarehouseForm = ({
placeholder={"Введите название склада отгрузки"}
{...form.getInputProps("name")}
/>
{isEditing &&
{isEditing && (
<Input.Wrapper
label={"Последние 5 сделок"}
error={form.getInputProps("phoneNumber").error}
>
error={form.getInputProps("phoneNumber").error}>
<DealsTable
viewOnly={true}
items={innerProps.summaries}/>
items={innerProps.summaries}
/>
</Input.Wrapper>
}
)}
</>
</BaseFormModal.Body>
</BaseFormModal>
<DealEditDrawer
/>
<DealEditDrawer />
</DealPageContextProvider>
)
}
);
};
export default ShippingWarehouseForm;
export default ShippingWarehouseForm;

View File

@@ -9,7 +9,6 @@
padding: rem(5);
gap: rem(10);
display: flex;
}
.top-panel-last-item {

View File

@@ -1,91 +1,84 @@
import styles from "../../ServicesPage/ui/ServicesPage.module.css";
import PageBlock from "../../../components/PageBlock/PageBlock.tsx";
import ShippingWarehousesTable from "../components/ShippingWarehousesTable/ShippingWarehousesTable.tsx";
import useShippingWarehousesList
from "../../../components/Selects/ShippingWarehouseAutocomplete/hooks/useShippingWarehousesList.tsx";
import {Button} from "@mantine/core";
import {modals} from "@mantine/modals";
import {useCRUD} from "../../../hooks/useCRUD.tsx";
import {ShippingWarehouseSchema, ShippingWarehouseService} from "../../../client";
import {notifications} from "../../../shared/lib/notifications.ts";
import {useDealSummariesFull} from "../../LeadsPage/hooks/useDealSummaries.tsx";
import useShippingWarehousesList from "../../../components/Selects/ShippingWarehouseAutocomplete/hooks/useShippingWarehousesList.tsx";
import { Button } from "@mantine/core";
import { modals } from "@mantine/modals";
import { useCRUD } from "../../../hooks/useCRUD.tsx";
import {
ShippingWarehouseSchema,
ShippingWarehouseService,
} from "../../../client";
import { notifications } from "../../../shared/lib/notifications.ts";
import { useDealSummariesFull } from "../../LeadsPage/hooks/useDealSummaries.tsx";
export const ShippingWarehousesPage = () => {
const {shippingWarehouses, refetch} = useShippingWarehousesList();
const {objects: summaries} = useDealSummariesFull();
const { shippingWarehouses, refetch } = useShippingWarehousesList();
const { objects: summaries } = useDealSummariesFull();
const crud = useCRUD<ShippingWarehouseSchema>({
onChange: (element) => {
ShippingWarehouseService
.updateShippingWarehouse({
requestBody: {
shippingWarehouse: element
}
})
.then(async ({ok, message}) => {
notifications.guess(ok, {message});
if (!ok) return;
await refetch();
})
onChange: element => {
ShippingWarehouseService.updateShippingWarehouse({
requestBody: {
shippingWarehouse: element,
},
}).then(async ({ ok, message }) => {
notifications.guess(ok, { message });
if (!ok) return;
await refetch();
});
},
onCreate: (element) => {
ShippingWarehouseService
.createShippingWarehouse({
requestBody: {
shippingWarehouse: element
}
})
.then(async ({ok, message}) => {
notifications.guess(ok, {message});
if (!ok) return;
await refetch();
})
onCreate: element => {
ShippingWarehouseService.createShippingWarehouse({
requestBody: {
shippingWarehouse: element,
},
}).then(async ({ ok, message }) => {
notifications.guess(ok, { message });
if (!ok) return;
await refetch();
});
},
onDelete: element => {
ShippingWarehouseService.deleteShippingWarehouse({
requestBody: {
shippingWarehouseId: element.id,
},
}).then(async ({ ok, message }) => {
notifications.guess(ok, { message });
if (!ok) return;
await refetch();
});
},
onDelete: (element) => {
ShippingWarehouseService
.deleteShippingWarehouse({
requestBody: {
shippingWarehouseId: element.id
}
})
.then(async ({ok, message}) => {
notifications.guess(ok, {message});
if (!ok) return;
await refetch();
})
}
});
const onCreateClick = () => {
modals.openContextModal({
modal: "shippingWarehouseForm",
title: 'Редактирование склада отгрузки',
title: "Редактирование склада отгрузки",
withCloseButton: false,
innerProps: {
onCreate: crud.onCreate,
summaries: []
summaries: [],
},
})
}
});
};
return (
<div className={styles['container']}>
<PageBlock>
<div className={styles['top-panel']}>
<Button
onClick={onCreateClick}
variant={"default"}
>
Создать склад отгрузки
</Button>
</div>
</PageBlock>
<PageBlock>
<ShippingWarehousesTable
items={shippingWarehouses}
summaries={summaries}
{...crud}
/>
</PageBlock>
</div>
)
}
<div className={styles["container"]}>
<PageBlock>
<div className={styles["top-panel"]}>
<Button
onClick={onCreateClick}
variant={"default"}>
Создать склад отгрузки
</Button>
</div>
</PageBlock>
<PageBlock>
<ShippingWarehousesTable
items={shippingWarehouses}
summaries={summaries}
{...crud}
/>
</PageBlock>
</div>
);
};