diff --git a/.env b/.env index 3f0cc07..ac5a5da 100644 --- a/.env +++ b/.env @@ -1,3 +1,3 @@ -VITE_BOT_NAME=DencoFulfillmentTestBot -VITE_BOT_ID=6467915685 +VITE_BOT_NAME=DencoCrmTestBot +VITE_BOT_ID=7510759553 VITE_API_URL=http://test.crm.denco.store/api \ No newline at end of file diff --git a/src/client/index.ts b/src/client/index.ts index 59a9a2b..ca67d63 100644 --- a/src/client/index.ts +++ b/src/client/index.ts @@ -24,6 +24,7 @@ export type { BarcodeTemplateUpdateResponse } from './models/BarcodeTemplateUpda export type { BaseEnumListSchema } from './models/BaseEnumListSchema'; export type { BaseEnumSchema } from './models/BaseEnumSchema'; export type { BaseMarketplaceSchema } from './models/BaseMarketplaceSchema'; +export type { BaseShippingWarehouseSchema } from './models/BaseShippingWarehouseSchema'; export type { BillPaymentStatus } from './models/BillPaymentStatus'; export type { BillStatusUpdateRequest } from './models/BillStatusUpdateRequest'; export type { Body_upload_product_image } from './models/Body_upload_product_image'; @@ -52,6 +53,8 @@ export type { CreatePositionResponse } from './models/CreatePositionResponse'; export type { CreateServiceKitSchema } from './models/CreateServiceKitSchema'; export type { CreateServicesKitRequest } from './models/CreateServicesKitRequest'; export type { CreateServicesKitResponse } from './models/CreateServicesKitResponse'; +export type { CreateShippingWarehouseRequest } from './models/CreateShippingWarehouseRequest'; +export type { CreateShippingWarehouseResponse } from './models/CreateShippingWarehouseResponse'; export type { CreateUserRequest } from './models/CreateUserRequest'; export type { CreateUserResponse } from './models/CreateUserResponse'; export type { DealAddKitRequest } from './models/DealAddKitRequest'; @@ -110,6 +113,8 @@ export type { DeletePayRateRequest } from './models/DeletePayRateRequest'; export type { DeletePayRateResponse } from './models/DeletePayRateResponse'; export type { DeletePositionRequest } from './models/DeletePositionRequest'; export type { DeletePositionResponse } from './models/DeletePositionResponse'; +export type { DeleteShippingWarehouseRequest } from './models/DeleteShippingWarehouseRequest'; +export type { DeleteShippingWarehouseResponse } from './models/DeleteShippingWarehouseResponse'; export type { GetAllBarcodeTemplateAttributesResponse } from './models/GetAllBarcodeTemplateAttributesResponse'; export type { GetAllBarcodeTemplateSizesResponse } from './models/GetAllBarcodeTemplateSizesResponse'; export type { GetAllBarcodeTemplatesResponse } from './models/GetAllBarcodeTemplatesResponse'; @@ -179,6 +184,8 @@ export type { UpdatePayRateResponse } from './models/UpdatePayRateResponse'; export type { UpdateServiceKitSchema } from './models/UpdateServiceKitSchema'; export type { UpdateServicesKitRequest } from './models/UpdateServicesKitRequest'; export type { UpdateServicesKitResponse } from './models/UpdateServicesKitResponse'; +export type { UpdateShippingWarehouseRequest } from './models/UpdateShippingWarehouseRequest'; +export type { UpdateShippingWarehouseResponse } from './models/UpdateShippingWarehouseResponse'; export type { UpdateTimeTrackingRecordRequest } from './models/UpdateTimeTrackingRecordRequest'; export type { UpdateTimeTrackingRecordResponse } from './models/UpdateTimeTrackingRecordResponse'; export type { UpdateUserRequest } from './models/UpdateUserRequest'; diff --git a/src/client/models/BaseShippingWarehouseSchema.ts b/src/client/models/BaseShippingWarehouseSchema.ts new file mode 100644 index 0000000..3bb67bc --- /dev/null +++ b/src/client/models/BaseShippingWarehouseSchema.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type BaseShippingWarehouseSchema = { + name: string; +}; + diff --git a/src/client/models/CreateShippingWarehouseRequest.ts b/src/client/models/CreateShippingWarehouseRequest.ts new file mode 100644 index 0000000..6011a8a --- /dev/null +++ b/src/client/models/CreateShippingWarehouseRequest.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { BaseShippingWarehouseSchema } from './BaseShippingWarehouseSchema'; +export type CreateShippingWarehouseRequest = { + shippingWarehouse: BaseShippingWarehouseSchema; +}; + diff --git a/src/client/models/CreateShippingWarehouseResponse.ts b/src/client/models/CreateShippingWarehouseResponse.ts new file mode 100644 index 0000000..ce16e92 --- /dev/null +++ b/src/client/models/CreateShippingWarehouseResponse.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type CreateShippingWarehouseResponse = { + ok: boolean; + message: string; +}; + diff --git a/src/client/models/DealSummary.ts b/src/client/models/DealSummary.ts index a0273fc..9d61b2a 100644 --- a/src/client/models/DealSummary.ts +++ b/src/client/models/DealSummary.ts @@ -14,5 +14,6 @@ export type DealSummary = { totalPrice: number; rank: number; baseMarketplace?: (BaseMarketplaceSchema | null); + shipmentWarehouseId: (number | null); }; diff --git a/src/client/models/DeleteShippingWarehouseRequest.ts b/src/client/models/DeleteShippingWarehouseRequest.ts new file mode 100644 index 0000000..4bb6365 --- /dev/null +++ b/src/client/models/DeleteShippingWarehouseRequest.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type DeleteShippingWarehouseRequest = { + shippingWarehouseId: number; +}; + diff --git a/src/client/models/DeleteShippingWarehouseResponse.ts b/src/client/models/DeleteShippingWarehouseResponse.ts new file mode 100644 index 0000000..ec82e3d --- /dev/null +++ b/src/client/models/DeleteShippingWarehouseResponse.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type DeleteShippingWarehouseResponse = { + ok: boolean; + message: string; +}; + diff --git a/src/client/models/ShippingWarehouseSchema.ts b/src/client/models/ShippingWarehouseSchema.ts index d3bdb2b..1849e87 100644 --- a/src/client/models/ShippingWarehouseSchema.ts +++ b/src/client/models/ShippingWarehouseSchema.ts @@ -3,7 +3,7 @@ /* tslint:disable */ /* eslint-disable */ export type ShippingWarehouseSchema = { - id: number; name: string; + id: number; }; diff --git a/src/client/models/UpdateShippingWarehouseRequest.ts b/src/client/models/UpdateShippingWarehouseRequest.ts new file mode 100644 index 0000000..d8ae289 --- /dev/null +++ b/src/client/models/UpdateShippingWarehouseRequest.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { ShippingWarehouseSchema } from './ShippingWarehouseSchema'; +export type UpdateShippingWarehouseRequest = { + shippingWarehouse: ShippingWarehouseSchema; +}; + diff --git a/src/client/models/UpdateShippingWarehouseResponse.ts b/src/client/models/UpdateShippingWarehouseResponse.ts new file mode 100644 index 0000000..d92b27a --- /dev/null +++ b/src/client/models/UpdateShippingWarehouseResponse.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type UpdateShippingWarehouseResponse = { + ok: boolean; + message: string; +}; + diff --git a/src/client/services/ShippingWarehouseService.ts b/src/client/services/ShippingWarehouseService.ts index 608acbe..ddc5af6 100644 --- a/src/client/services/ShippingWarehouseService.ts +++ b/src/client/services/ShippingWarehouseService.ts @@ -2,7 +2,13 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { CreateShippingWarehouseRequest } from '../models/CreateShippingWarehouseRequest'; +import type { CreateShippingWarehouseResponse } from '../models/CreateShippingWarehouseResponse'; +import type { DeleteShippingWarehouseRequest } from '../models/DeleteShippingWarehouseRequest'; +import type { DeleteShippingWarehouseResponse } from '../models/DeleteShippingWarehouseResponse'; import type { GetAllShippingWarehousesResponse } from '../models/GetAllShippingWarehousesResponse'; +import type { UpdateShippingWarehouseRequest } from '../models/UpdateShippingWarehouseRequest'; +import type { UpdateShippingWarehouseResponse } from '../models/UpdateShippingWarehouseResponse'; import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; import { request as __request } from '../core/request'; @@ -18,4 +24,64 @@ export class ShippingWarehouseService { url: '/shipping-warehouse/get-all', }); } + /** + * Create + * @returns CreateShippingWarehouseResponse Successful Response + * @throws ApiError + */ + public static createShippingWarehouse({ + requestBody, + }: { + requestBody: CreateShippingWarehouseRequest, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/shipping-warehouse/create', + body: requestBody, + mediaType: 'application/json', + errors: { + 422: `Validation Error`, + }, + }); + } + /** + * Update + * @returns UpdateShippingWarehouseResponse Successful Response + * @throws ApiError + */ + public static updateShippingWarehouse({ + requestBody, + }: { + requestBody: UpdateShippingWarehouseRequest, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/shipping-warehouse/update', + body: requestBody, + mediaType: 'application/json', + errors: { + 422: `Validation Error`, + }, + }); + } + /** + * Delete + * @returns DeleteShippingWarehouseResponse Successful Response + * @throws ApiError + */ + public static deleteShippingWarehouse({ + requestBody, + }: { + requestBody: DeleteShippingWarehouseRequest, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/shipping-warehouse/delete', + body: requestBody, + mediaType: 'application/json', + errors: { + 422: `Validation Error`, + }, + }); + } } diff --git a/src/components/Navbar/Navbar.tsx b/src/components/Navbar/Navbar.tsx index d958b1c..30076fe 100644 --- a/src/components/Navbar/Navbar.tsx +++ b/src/components/Navbar/Navbar.tsx @@ -1,7 +1,7 @@ import {Center, Flex, Image, rem, Stack, Tooltip, UnstyledButton, useMantineColorScheme} from '@mantine/core'; import { IconBarcode, - IconBox, + IconBox, IconBuildingWarehouse, IconCash, IconDashboard, IconFileBarcode, @@ -71,6 +71,11 @@ const mockdata = [ icon: IconFileBarcode, label: 'Штрихкоды', href: '/barcode' + }, + { + icon: IconBuildingWarehouse, + label: 'Склады отгрузки', + href: '/shipping_warehouses' } ]; diff --git a/src/hooks/useCRUD.tsx b/src/hooks/useCRUD.tsx new file mode 100644 index 0000000..7248bb0 --- /dev/null +++ b/src/hooks/useCRUD.tsx @@ -0,0 +1,20 @@ +type Props = { + onCreate: (element: T) => void; + onChange: (element: T) => void; + onDelete: (element: T) => void; +}; + +export function useCRUD(props: Props) { + const onCreate = (element: T) => { + props.onCreate(element); + } + const onChange = (element: T) => { + props.onChange(element); + + } + const onDelete = (element: T) => { + props.onDelete(element); + } + + return {onCreate, onChange, onDelete}; +} \ No newline at end of file diff --git a/src/modals/modals.ts b/src/modals/modals.ts index 8980db3..9cf5172 100644 --- a/src/modals/modals.ts +++ b/src/modals/modals.ts @@ -19,6 +19,7 @@ import CreatePaymentRecordModal from "../pages/AdminPage/modals/CreatePaymentRec import ServiceKitModalForm from "../pages/ServicesPage/modals/ServicesKitModalForm.tsx"; import ServicesKitSelectModal from "./ServicesKitSelectModal/ServicesKitSelectModal.tsx"; import SelectDealProductsModal from "../pages/LeadsPage/modals/SelectDealProductsModal.tsx"; +import ShippingWarehouseForm from "../pages/ShippingWarehousesPage/modals/ShippingWarehouseForm.tsx"; export const modals = { enterDeadline: EnterDeadlineModal, @@ -40,5 +41,6 @@ export const modals = { createPaymentRecord: CreatePaymentRecordModal, serviceKitModalForm: ServiceKitModalForm, servicesKitSelectModal: ServicesKitSelectModal, - selectDealProductsModal: SelectDealProductsModal + selectDealProductsModal: SelectDealProductsModal, + shippingWarehouseForm: ShippingWarehouseForm } diff --git a/src/pages/DealsPage/components/DealsTable/DealsTable.tsx b/src/pages/DealsPage/components/DealsTable/DealsTable.tsx index 665514d..46c468a 100644 --- a/src/pages/DealsPage/components/DealsTable/DealsTable.tsx +++ b/src/pages/DealsPage/components/DealsTable/DealsTable.tsx @@ -8,9 +8,12 @@ import {IconEdit} from "@tabler/icons-react"; import {MRT_TableOptions} from "mantine-react-table"; import {useDealPageContext} from "../../../LeadsPage/contexts/DealPageContext.tsx"; -type Props = CRUDTableProps; +type RestProps = { + viewOnly?: boolean; +} +type Props = CRUDTableProps & RestProps; -const DealsTable: FC = ({items}) => { +const DealsTable: FC = ({items, viewOnly = true}) => { const columns = useDealsTableColumns(); const {setSelectedDeal} = useDealPageContext(); const onEditClick = (dealSummary: DealSummary) => { @@ -26,14 +29,15 @@ const DealsTable: FC = ({items}) => { restProps={{ enableSorting: true, enableColumnActions: false, - enablePagination: true, - enableBottomToolbar: true, + enablePagination: !viewOnly, + enableBottomToolbar: !viewOnly, paginationDisplayMode: "pages", enableRowActions: true, renderRowActions: ({row}) => ( onEditClick(row.original)} variant={"default"}> diff --git a/src/pages/ShippingWarehousesPage/components/ShippingWarehousesTable/ShippingWarehousesTable.tsx b/src/pages/ShippingWarehousesPage/components/ShippingWarehousesTable/ShippingWarehousesTable.tsx new file mode 100644 index 0000000..41a9dee --- /dev/null +++ b/src/pages/ShippingWarehousesPage/components/ShippingWarehousesTable/ShippingWarehousesTable.tsx @@ -0,0 +1,83 @@ +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"; + +type RestProps = { + summaries: DealSummary[]; +}; +type Props = CRUDTableProps & RestProps; + +const ShippingWarehouseTable: FC = ({ + onChange, + onDelete, + items, + summaries + }) => { + const columns = useShippingWarehouseTableColumns(); + + const onEditClick = (element: ShippingWarehouseSchema) => { + if (!onChange) return; + modals.openContextModal({ + modal: "shippingWarehouseForm", + title: 'Редактирование склада отгрузки', + withCloseButton: false, + innerProps: { + element, + onChange, + summaries: summaries.filter(s => s.shipmentWarehouseId === element.id).slice(0, 5) + }, + size: "xl" + }) + } + const onDeleteClick = (element: ShippingWarehouseSchema) => { + if (!onDelete) return; + modals.openConfirmModal({ + title: 'Удаление склада отгрузки', + children: ( + + Вы уверены что хотите удалить склад отгрузки {element.name} + + ), + labels: {confirm: 'Да', cancel: "Нет"}, + confirmProps: {color: 'red'}, + onConfirm: () => { + onDelete(element); + } + }); + } + return ( + ( + + + onEditClick(row.original)} + variant={"default"}> + + + + + onDeleteClick(row.original)} variant={"default"}> + + + + + ) + } as MRT_TableOptions} + /> + ) +} + +export default ShippingWarehouseTable; \ No newline at end of file diff --git a/src/pages/ShippingWarehousesPage/components/ShippingWarehousesTable/columns.tsx b/src/pages/ShippingWarehousesPage/components/ShippingWarehousesTable/columns.tsx new file mode 100644 index 0000000..6d7e1ec --- /dev/null +++ b/src/pages/ShippingWarehousesPage/components/ShippingWarehousesTable/columns.tsx @@ -0,0 +1,18 @@ +import {useMemo} from "react"; +import {MRT_ColumnDef} from "mantine-react-table"; +import {ShippingWarehouseSchema} from "../../../../client"; + +const useShippingWarehouseTableColumns = () => { + return useMemo[]>(() => [ + { + accessorKey:"id", + header:"ID" + }, + { + accessorKey:"name", + header:"Название" + } + ], []); +} + +export default useShippingWarehouseTableColumns; \ No newline at end of file diff --git a/src/pages/ShippingWarehousesPage/index.ts b/src/pages/ShippingWarehousesPage/index.ts new file mode 100644 index 0000000..3478eb8 --- /dev/null +++ b/src/pages/ShippingWarehousesPage/index.ts @@ -0,0 +1 @@ +export {ShippingWarehousesPage} from './ui/ShippingWarehousesPage.tsx'; \ No newline at end of file diff --git a/src/pages/ShippingWarehousesPage/modals/ShippingWarehouseForm.tsx b/src/pages/ShippingWarehousesPage/modals/ShippingWarehouseForm.tsx new file mode 100644 index 0000000..5d44045 --- /dev/null +++ b/src/pages/ShippingWarehousesPage/modals/ShippingWarehouseForm.tsx @@ -0,0 +1,64 @@ +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 DealEditDrawer from "../../LeadsPage/drawers/DealEditDrawer/DealEditDrawer.tsx"; + +type RestProps = { + summaries: DealSummary[]; +} +type Props = CreateEditFormProps & RestProps; +const ShippingWarehouseForm = ({ + context, + innerProps, + id + }: ContextModalProps) => { + + const isEditing = 'onChange' in innerProps; + + const form = useForm({ + initialValues: isEditing ? innerProps.element : { + id: -1, + name: "" + } + }); + return ( + + + context.closeContextModal(id)} + > + + <> + + {isEditing && + + + + } + + + + + + + ) +} + +export default ShippingWarehouseForm; \ No newline at end of file diff --git a/src/pages/ShippingWarehousesPage/ui/ShippingWarehousesPage.module.css b/src/pages/ShippingWarehousesPage/ui/ShippingWarehousesPage.module.css new file mode 100644 index 0000000..9f31ce7 --- /dev/null +++ b/src/pages/ShippingWarehousesPage/ui/ShippingWarehousesPage.module.css @@ -0,0 +1,17 @@ +.container { + display: flex; + flex-direction: column; + flex: 1; + gap: rem(10); +} + +.top-panel { + padding: rem(5); + gap: rem(10); + display: flex; + +} + +.top-panel-last-item { + margin-left: auto; +} diff --git a/src/pages/ShippingWarehousesPage/ui/ShippingWarehousesPage.tsx b/src/pages/ShippingWarehousesPage/ui/ShippingWarehousesPage.tsx new file mode 100644 index 0000000..50d9154 --- /dev/null +++ b/src/pages/ShippingWarehousesPage/ui/ShippingWarehousesPage.tsx @@ -0,0 +1,91 @@ +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"; + +export const ShippingWarehousesPage = () => { + const {shippingWarehouses, refetch} = useShippingWarehousesList(); + const {objects: summaries} = useDealSummariesFull(); + const crud = useCRUD({ + 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(); + }) + }, + 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: 'Редактирование склада отгрузки', + withCloseButton: false, + innerProps: { + onCreate: crud.onCreate, + summaries: [] + }, + }) + } + return ( +
+ +
+ +
+
+ + + +
+ + ) +} + diff --git a/src/routeTree.gen.ts b/src/routeTree.gen.ts index f5a2ae2..9272f5a 100644 --- a/src/routeTree.gen.ts +++ b/src/routeTree.gen.ts @@ -18,6 +18,7 @@ import { Route as DealsDealIdImport } from './routes/deals.$dealId' // Create Virtual Routes const TestLazyImport = createFileRoute('/test')() +const ShippingwarehousesLazyImport = createFileRoute('/shipping_warehouses')() const ServicesLazyImport = createFileRoute('/services')() const ProductsLazyImport = createFileRoute('/products')() const LoginLazyImport = createFileRoute('/login')() @@ -34,6 +35,13 @@ const TestLazyRoute = TestLazyImport.update({ getParentRoute: () => rootRoute, } as any).lazy(() => import('./routes/test.lazy').then((d) => d.Route)) +const ShippingwarehousesLazyRoute = ShippingwarehousesLazyImport.update({ + path: '/shipping_warehouses', + getParentRoute: () => rootRoute, +} as any).lazy(() => + import('./routes/shipping_warehouses.lazy').then((d) => d.Route), +) + const ServicesLazyRoute = ServicesLazyImport.update({ path: '/services', getParentRoute: () => rootRoute, @@ -139,6 +147,13 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof ServicesLazyImport parentRoute: typeof rootRoute } + '/shipping_warehouses': { + id: '/shipping_warehouses' + path: '/shipping_warehouses' + fullPath: '/shipping_warehouses' + preLoaderRoute: typeof ShippingwarehousesLazyImport + parentRoute: typeof rootRoute + } '/test': { id: '/test' path: '/test' @@ -167,6 +182,7 @@ export const routeTree = rootRoute.addChildren({ LoginLazyRoute, ProductsLazyRoute, ServicesLazyRoute, + ShippingwarehousesLazyRoute, TestLazyRoute, DealsDealIdRoute, }) @@ -187,6 +203,7 @@ export const routeTree = rootRoute.addChildren({ "/login", "/products", "/services", + "/shipping_warehouses", "/test", "/deals/$dealId" ] @@ -215,6 +232,9 @@ export const routeTree = rootRoute.addChildren({ "/services": { "filePath": "services.lazy.tsx" }, + "/shipping_warehouses": { + "filePath": "shipping_warehouses.lazy.tsx" + }, "/test": { "filePath": "test.lazy.tsx" }, diff --git a/src/routes/shipping_warehouses.lazy.tsx b/src/routes/shipping_warehouses.lazy.tsx new file mode 100644 index 0000000..b66c3e1 --- /dev/null +++ b/src/routes/shipping_warehouses.lazy.tsx @@ -0,0 +1,6 @@ +import {createLazyFileRoute} from "@tanstack/react-router"; +import {ShippingWarehousesPage} from "../pages/ShippingWarehousesPage"; + +export const Route = createLazyFileRoute('/shipping_warehouses')({ + component: ShippingWarehousesPage +}); \ No newline at end of file