From af7d26ffe7ec5eed09a6fd93b9fb9c626c303fb5 Mon Sep 17 00:00:00 2001 From: Maxime Lalo Date: Mon, 24 Jul 2023 14:53:07 +0200 Subject: [PATCH] :sparkles: Edit document types working --- .../SuperAdmin/DocumentTypes/DocumentTypes.ts | 8 +- .../classes.module.scss | 21 ++++ .../DocumentTypeListContainer/index.tsx | 62 +++++++++ .../classes.module.scss | 117 +++++++++++++++++ .../DefaultDocumentTypesDashboard/index.tsx | 118 ++++++++++++++++++ .../DocumentTypesCreate/classes.module.scss | 24 ++++ .../DocumentTypesCreate/index.tsx | 32 +++++ .../DocumentTypesEdit/classes.module.scss | 24 ++++ .../DocumentTypes/DocumentTypesEdit/index.tsx | 58 +++++++++ .../classes.module.scss | 91 ++++++++++++++ .../DocumentTypesInformations/index.tsx | 90 +++++++++++++ .../Layouts/DocumentTypes/classes.module.scss | 17 +++ .../Layouts/DocumentTypes/index.tsx | 26 ++++ src/front/Config/Module/development.json | 30 +++++ .../[documentTypeUid]/edit/index.tsx | 5 + .../[documentTypeUid]/index.tsx | 5 + src/pages/document-types/create/index.tsx | 5 + src/pages/document-types/index.tsx | 5 + 18 files changed, 735 insertions(+), 3 deletions(-) create mode 100644 src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/DocumentTypeListContainer/classes.module.scss create mode 100644 src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/DocumentTypeListContainer/index.tsx create mode 100644 src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/classes.module.scss create mode 100644 src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/index.tsx create mode 100644 src/front/Components/Layouts/DocumentTypes/DocumentTypesCreate/classes.module.scss create mode 100644 src/front/Components/Layouts/DocumentTypes/DocumentTypesCreate/index.tsx create mode 100644 src/front/Components/Layouts/DocumentTypes/DocumentTypesEdit/classes.module.scss create mode 100644 src/front/Components/Layouts/DocumentTypes/DocumentTypesEdit/index.tsx create mode 100644 src/front/Components/Layouts/DocumentTypes/DocumentTypesInformations/classes.module.scss create mode 100644 src/front/Components/Layouts/DocumentTypes/DocumentTypesInformations/index.tsx create mode 100644 src/front/Components/Layouts/DocumentTypes/classes.module.scss create mode 100644 src/front/Components/Layouts/DocumentTypes/index.tsx create mode 100644 src/pages/document-types/[documentTypeUid]/edit/index.tsx create mode 100644 src/pages/document-types/[documentTypeUid]/index.tsx create mode 100644 src/pages/document-types/create/index.tsx create mode 100644 src/pages/document-types/index.tsx diff --git a/src/front/Api/LeCoffreApi/SuperAdmin/DocumentTypes/DocumentTypes.ts b/src/front/Api/LeCoffreApi/SuperAdmin/DocumentTypes/DocumentTypes.ts index 1e8a09af..f151377e 100644 --- a/src/front/Api/LeCoffreApi/SuperAdmin/DocumentTypes/DocumentTypes.ts +++ b/src/front/Api/LeCoffreApi/SuperAdmin/DocumentTypes/DocumentTypes.ts @@ -37,10 +37,12 @@ export default class DocumentTypes extends BaseSuperAdmin { } } - public async get(q: IGetDocumentTypesparams): Promise { + public async get(q?: IGetDocumentTypesparams): Promise { const url = new URL(this.baseURl); - const query = { q }; - if (q) Object.entries(query).forEach(([key, value]) => url.searchParams.set(key, JSON.stringify(value))); + if (q) { + const query = { q }; + if (q) Object.entries(query).forEach(([key, value]) => url.searchParams.set(key, JSON.stringify(value))); + } try { return await this.getRequest(url); } catch (err) { diff --git a/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/DocumentTypeListContainer/classes.module.scss b/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/DocumentTypeListContainer/classes.module.scss new file mode 100644 index 00000000..300d46f2 --- /dev/null +++ b/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/DocumentTypeListContainer/classes.module.scss @@ -0,0 +1,21 @@ +@import "@Themes/constants.scss"; + +.root { + width: calc(100vh - 83px); + display: flex; + flex-direction: column; + justify-content: space-between; + + .header { + flex: 1; + } + + .searchbar { + padding: 40px 24px 24px 24px; + } + + .folderlist-container { + height: 100%; + border-right: 1px solid var(--grey-medium); + } +} diff --git a/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/DocumentTypeListContainer/index.tsx b/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/DocumentTypeListContainer/index.tsx new file mode 100644 index 00000000..459f0213 --- /dev/null +++ b/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/DocumentTypeListContainer/index.tsx @@ -0,0 +1,62 @@ +import BlockList, { IBlock } from "@Front/Components/DesignSystem/BlockList"; +import SearchBar from "@Front/Components/DesignSystem/SearchBar"; +import Module from "@Front/Config/Module"; +import { DocumentType } from "le-coffre-resources/dist/SuperAdmin"; +import { useRouter } from "next/router"; +import React, { useCallback, useState } from "react"; + +import classes from "./classes.module.scss"; + +type IProps = { + documentTypes: DocumentType[]; + onSelectedDocumentType?: (documentType: DocumentType) => void; + onCloseLeftSide?: () => void; +}; + +export default function DocumentTypeListContainer(props: IProps) { + const [filteredDocumentTypes, setFilteredDocumentTypes] = useState(props.documentTypes); + const router = useRouter(); + + const { documentTypeUid } = router.query; + const filterDocumentTypes = useCallback( + (input: string) => { + const filteredDocumentTypes = props.documentTypes.filter((documentType) => { + return documentType.name.toLowerCase().includes(input.toLowerCase()); + }); + setFilteredDocumentTypes(filteredDocumentTypes); + }, + [props.documentTypes], + ); + + const onSelectedBlock = useCallback( + (block: IBlock) => { + props.onCloseLeftSide && props.onCloseLeftSide(); + console.log("Block selected :", block); + const redirectPath = Module.getInstance().get().modules.pages.DocumentTypes.pages.Edit.props.path; + router.push(redirectPath.replace("[uid]", block.id)); + }, + [props, router], + ); + + return ( +
+
+
+ +
+
+ { + return { + name: documentType.name, + id: documentType.uid!, + selected: documentType.uid === documentTypeUid, + }; + })} + onSelectedBlock={onSelectedBlock} + /> +
+
+
+ ); +} diff --git a/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/classes.module.scss b/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/classes.module.scss new file mode 100644 index 00000000..a5ba79a3 --- /dev/null +++ b/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/classes.module.scss @@ -0,0 +1,117 @@ +@import "@Themes/constants.scss"; + +@keyframes growWidth { + 0% { + width: 100%; + } + + 100% { + width: 200%; + } +} + +.root { + .content { + display: flex; + overflow: hidden; + height: calc(100vh - 83px); + + .overlay { + position: absolute; + width: 100%; + height: 100%; + background-color: var(--white); + opacity: 0.5; + z-index: 2; + transition: all 0.3s $custom-easing; + } + + .left-side { + background-color: $white; + z-index: 3; + display: flex; + width: 389px; + min-width: 389px; + transition: all 0.3s $custom-easing; + overflow: hidden; + + @media (max-width: ($screen-m - 1px)) { + width: 56px; + min-width: 56px; + transform: translateX(-389px); + + &.opened { + transform: translateX(0px); + width: 389px; + min-width: 389px; + } + } + + @media (max-width: $screen-s) { + width: 0px; + min-width: 0px; + + &.opened { + width: 100vw; + min-width: 100vw; + } + } + } + + .closable-left-side { + position: absolute; + background-color: $white; + z-index: 0; + display: flex; + justify-content: center; + min-width: 56px; + max-width: 56px; + height: calc(100vh - 83px); + border-right: 1px $grey-medium solid; + + @media (min-width: $screen-m) { + display: none; + } + + .chevron-icon { + margin-top: 21px; + transform: rotate(180deg); + cursor: pointer; + } + + @media (max-width: $screen-s) { + display: none; + } + } + + .right-side { + min-width: calc(100vw - 389px); + padding: 64px 48px; + overflow-y: auto; + + @media (max-width: ($screen-m - 1px)) { + min-width: calc(100vw - 56px); + } + + @media (max-width: $screen-s) { + padding: 40px 16px 64px 16px; + flex: 1; + min-width: unset; + } + + .back-arrow-mobile { + display: none; + @media (max-width: $screen-s) { + display: block; + margin-bottom: 24px; + } + } + + .back-arrow-desktop { + @media (max-width: $screen-s) { + display: none; + } + } + } + } +} diff --git a/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/index.tsx b/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/index.tsx new file mode 100644 index 00000000..e9cf5c3c --- /dev/null +++ b/src/front/Components/LayoutTemplates/DefaultDocumentTypesDashboard/index.tsx @@ -0,0 +1,118 @@ +import ChevronIcon from "@Assets/Icons/chevron.svg"; +import DocumentTypes from "@Front/Api/LeCoffreApi/SuperAdmin/DocumentTypes/DocumentTypes"; +import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; +import Header from "@Front/Components/DesignSystem/Header"; +import Version from "@Front/Components/DesignSystem/Version"; +import BackArrow from "@Front/Components/Elements/BackArrow"; +import WindowStore from "@Front/Stores/WindowStore"; +import classNames from "classnames"; +import { DocumentType } from "le-coffre-resources/dist/Notary"; +import Image from "next/image"; +import React, { ReactNode } from "react"; + +import classes from "./classes.module.scss"; +import DocumentTypeListContainer from "./DocumentTypeListContainer"; + +type IProps = { + title: string; + children?: ReactNode; + onSelectedDocumentType: (documentType: DocumentType) => void; + hasBackArrow: boolean; + backArrowUrl?: string; + mobileBackText?: string; +}; +type IState = { + documentTypes: DocumentType[] | null; + isLeftSideOpen: boolean; + leftSideCanBeClosed: boolean; +}; + +export default class DefaultDocumentTypesDashboard extends React.Component { + private onWindowResize = () => {}; + public static defaultProps: Partial = { + hasBackArrow: false, + }; + + public constructor(props: IProps) { + super(props); + this.state = { + documentTypes: null, + isLeftSideOpen: false, + leftSideCanBeClosed: typeof window !== "undefined" ? window.innerWidth < 1024 : false, + }; + this.onOpenLeftSide = this.onOpenLeftSide.bind(this); + this.onCloseLeftSide = this.onCloseLeftSide.bind(this); + } + + public override render(): JSX.Element { + return ( +
+
+
+ {this.state.isLeftSideOpen &&
} +
+ {this.state.documentTypes && ( + + )} +
+
+ open side menu +
+ +
+ {this.props.hasBackArrow && ( +
+ +
+ )} + {this.props.mobileBackText && ( +
+ +
+ )} + {this.props.children} +
+
+ +
+ ); + } + + public override async componentDidMount() { + this.onWindowResize = WindowStore.getInstance().onResize((window) => this.onResize(window)); + const documentTypes = await DocumentTypes.getInstance().get({ + where: { + office_uid: "6981326f-8a0a-4437-b15c-4cd5c4d80f6e", + }, + }); + this.setState({ documentTypes }); + } + + public override componentWillUnmount() { + this.onWindowResize(); + } + + private onOpenLeftSide() { + this.setState({ isLeftSideOpen: true }); + } + + private onCloseLeftSide() { + if (!this.state.leftSideCanBeClosed) return; + this.setState({ isLeftSideOpen: false }); + } + + private onResize(window: Window) { + if (window.innerWidth > 1023) { + if (!this.state.leftSideCanBeClosed) return; + this.setState({ leftSideCanBeClosed: false }); + } + this.setState({ leftSideCanBeClosed: true }); + } +} diff --git a/src/front/Components/Layouts/DocumentTypes/DocumentTypesCreate/classes.module.scss b/src/front/Components/Layouts/DocumentTypes/DocumentTypesCreate/classes.module.scss new file mode 100644 index 00000000..848ef4bc --- /dev/null +++ b/src/front/Components/Layouts/DocumentTypes/DocumentTypesCreate/classes.module.scss @@ -0,0 +1,24 @@ +@import "@Themes/constants.scss"; + +.root { + .header { + margin-top: 24px; + } + + .form-container { + margin-top: 32px; + display: flex; + flex-direction: column; + gap: 32px; + } + + .buttons-container { + display: flex; + gap: 32px; + + @media (max-width: $screen-s) { + flex-direction: column-reverse; + gap: 16px; + } + } +} diff --git a/src/front/Components/Layouts/DocumentTypes/DocumentTypesCreate/index.tsx b/src/front/Components/Layouts/DocumentTypes/DocumentTypesCreate/index.tsx new file mode 100644 index 00000000..274b4205 --- /dev/null +++ b/src/front/Components/Layouts/DocumentTypes/DocumentTypesCreate/index.tsx @@ -0,0 +1,32 @@ +import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; +import Form from "@Front/Components/DesignSystem/Form"; +import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography"; +import DefaultDeedTypesDashboard from "@Front/Components/LayoutTemplates/DefaultDeedTypeDashboard"; +import { useCallback } from "react"; + +import classes from "./classes.module.scss"; +import TextField from "@Front/Components/DesignSystem/Form/TextField"; +import TextAreaField from "@Front/Components/DesignSystem/Form/TextareaField"; + +type IProps = {}; +export default function DeedTypesCreate(props: IProps) { + const onSubmitHandler = useCallback(async (e: React.FormEvent | null, values: { [key: string]: string }) => {}, []); + + return ( + +
+
+ Créer un type d'acte +
+
+ + +
+ + +
+ +
+
+ ); +} diff --git a/src/front/Components/Layouts/DocumentTypes/DocumentTypesEdit/classes.module.scss b/src/front/Components/Layouts/DocumentTypes/DocumentTypesEdit/classes.module.scss new file mode 100644 index 00000000..848ef4bc --- /dev/null +++ b/src/front/Components/Layouts/DocumentTypes/DocumentTypesEdit/classes.module.scss @@ -0,0 +1,24 @@ +@import "@Themes/constants.scss"; + +.root { + .header { + margin-top: 24px; + } + + .form-container { + margin-top: 32px; + display: flex; + flex-direction: column; + gap: 32px; + } + + .buttons-container { + display: flex; + gap: 32px; + + @media (max-width: $screen-s) { + flex-direction: column-reverse; + gap: 16px; + } + } +} diff --git a/src/front/Components/Layouts/DocumentTypes/DocumentTypesEdit/index.tsx b/src/front/Components/Layouts/DocumentTypes/DocumentTypesEdit/index.tsx new file mode 100644 index 00000000..cd21b76e --- /dev/null +++ b/src/front/Components/Layouts/DocumentTypes/DocumentTypesEdit/index.tsx @@ -0,0 +1,58 @@ +import DocumentTypes from "@Front/Api/LeCoffreApi/Admin/DocumentTypes/DocumentTypes"; +import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; +import Form from "@Front/Components/DesignSystem/Form"; +import TextAreaField from "@Front/Components/DesignSystem/Form/TextareaField"; +import TextField from "@Front/Components/DesignSystem/Form/TextField"; +import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography"; +import DefaultDocumentTypesDashboard from "@Front/Components/LayoutTemplates/DefaultDocumentTypesDashboard"; +import { DocumentType } from "le-coffre-resources/dist/Admin"; +import { useRouter } from "next/router"; +import { useCallback, useEffect, useState } from "react"; + +import classes from "./classes.module.scss"; + +export default function DocumentTypesEdit() { + const router = useRouter(); + let { documentTypeUid } = router.query; + + const [documentTypeSelected, setDocumentTypeSelected] = useState(null); + + useEffect(() => { + async function getDocumentType() { + if (!documentTypeUid) return; + const documentType = await DocumentTypes.getInstance().getByUid(documentTypeUid as string); + setDocumentTypeSelected(documentType); + } + + getDocumentType(); + }, [documentTypeUid]); + + const onSubmitHandler = useCallback(async (e: React.FormEvent | null, values: { [key: string]: string }) => {}, []); + + return ( + +
+
+ Paramétrage des documents +
+
+ + + +
+ + +
+ +
+
+ ); +} diff --git a/src/front/Components/Layouts/DocumentTypes/DocumentTypesInformations/classes.module.scss b/src/front/Components/Layouts/DocumentTypes/DocumentTypesInformations/classes.module.scss new file mode 100644 index 00000000..72fe71da --- /dev/null +++ b/src/front/Components/Layouts/DocumentTypes/DocumentTypesInformations/classes.module.scss @@ -0,0 +1,91 @@ +@import "@Themes/constants.scss"; + +.root { + .header { + display: flex; + justify-content: space-between; + align-items: flex-end; + + @media (max-width: $screen-l) { + flex-direction: column; + align-items: flex-start; + gap: 24px; + } + } + + .subtitle { + margin-top: 32px; + } + + .deed-type-container { + margin-top: 32px; + display: flex; + gap: 100px; + justify-content: space-between; + padding: 24px; + background-color: var(--grey-soft); + + @media (max-width: $screen-l) { + gap: 80px; + } + + @media (max-width: $screen-m) { + flex-direction: column; + gap: 32px; + } + + .infos { + display: flex; + gap: 100px; + flex: 1; + + @media (max-width: $screen-l) { + flex-direction: column; + gap: 32px; + } + + .box { + .box-title { + margin-bottom: 8px; + opacity: 0.4; + } + } + + .middle-box { + flex: 1; + } + } + + .pencil { + align-self: center; + + @media (max-width: $screen-m) { + align-self: flex-start; + } + } + } + + .documents-container { + margin-top: 32px; + padding: 32px 16px; + + border: 1px solid var(--grey); + + .container-title { + } + + .documents { + margin-top: 32px; + } + + .button-container { + margin-top: 32px; + } + } + + .delete-container { + display: flex; + justify-content: center; + margin-top: 32px; + } +} diff --git a/src/front/Components/Layouts/DocumentTypes/DocumentTypesInformations/index.tsx b/src/front/Components/Layouts/DocumentTypes/DocumentTypesInformations/index.tsx new file mode 100644 index 00000000..8a000e92 --- /dev/null +++ b/src/front/Components/Layouts/DocumentTypes/DocumentTypesInformations/index.tsx @@ -0,0 +1,90 @@ +import ChevronIcon from "@Assets/Icons/chevron.svg"; +import PenICon from "@Assets/Icons/pen.svg"; +import DocumentTypes from "@Front/Api/LeCoffreApi/Admin/DocumentTypes/DocumentTypes"; +import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; +import Form from "@Front/Components/DesignSystem/Form"; +import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography"; +import DefaultDocumentTypesDashboard from "@Front/Components/LayoutTemplates/DefaultDocumentTypesDashboard"; +import Module from "@Front/Config/Module"; +import classNames from "classnames"; +import { DocumentType } from "le-coffre-resources/dist/Admin"; +import Image from "next/image"; +import Link from "next/link"; +import { useRouter } from "next/router"; +import { useCallback, useEffect, useState } from "react"; + +import classes from "./classes.module.scss"; + +type IProps = {}; +export default function DocumentTypesInformations(props: IProps) { + const router = useRouter(); + let { documentTypeUid } = router.query; + + const [documentTypeSelected, setDocumentTypeSelected] = useState(null); + + useEffect(() => { + async function getDocumentType() { + if (!documentTypeUid) return; + const documentType = await DocumentTypes.getInstance().getByUid(documentTypeUid as string); + setDocumentTypeSelected(documentType); + } + + getDocumentType(); + }, [documentTypeUid]); + + const onSubmitHandler = useCallback(async (e: React.FormEvent | null, values: { [key: string]: string }) => {}, []); + + return ( + +
+
+ Paramétrage des listes de pièces + +
+
+ {documentTypeSelected?.name} +
+
+
+
+ + Nom du type d'acte + + {documentTypeSelected?.name} +
+
+ + Description + +
+
+
+ + éditer le type d'acte + +
+
+
+
+
+ Documents paramétrés +
+
+ +
+
+
+
+ +
+
+
+ ); +} diff --git a/src/front/Components/Layouts/DocumentTypes/classes.module.scss b/src/front/Components/Layouts/DocumentTypes/classes.module.scss new file mode 100644 index 00000000..4eca97a6 --- /dev/null +++ b/src/front/Components/Layouts/DocumentTypes/classes.module.scss @@ -0,0 +1,17 @@ +@import "@Themes/constants.scss"; + +.root { + display: flex; + align-items: center; + flex-direction: column; + min-height: 100%; + + .no-role-selected { + width: 100%; + + .choose-a-role { + margin-top: 96px; + text-align: center; + } + } +} diff --git a/src/front/Components/Layouts/DocumentTypes/index.tsx b/src/front/Components/Layouts/DocumentTypes/index.tsx new file mode 100644 index 00000000..99b018b4 --- /dev/null +++ b/src/front/Components/Layouts/DocumentTypes/index.tsx @@ -0,0 +1,26 @@ +import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography"; +import DefaultDocumentTypesDashboard from "@Front/Components/LayoutTemplates/DefaultDocumentTypesDashboard"; + +import BasePage from "../Base"; +import classes from "./classes.module.scss"; + +type IProps = {}; +type IState = {}; +export default class DocumentTypes extends BasePage { + public override render(): JSX.Element { + return ( + +
+
+ Paramétrage des documents +
+ + Sélectionnez un document + +
+
+
+
+ ); + } +} diff --git a/src/front/Config/Module/development.json b/src/front/Config/Module/development.json index 8540ba0d..3dde562b 100644 --- a/src/front/Config/Module/development.json +++ b/src/front/Config/Module/development.json @@ -213,6 +213,36 @@ } } }, + "DocumentTypes": { + "enabled": true, + "props": { + "path": "/document-types", + "labelKey": "documentTypes" + }, + "pages": { + "DocumentTypesInformations": { + "enabled": true, + "props": { + "path": "/document-types/[uid]", + "labelKey": "documentInformations" + } + }, + "Create": { + "enabled": true, + "props": { + "path": "/document-types/create", + "labelKey": "createDocumentType" + } + }, + "Edit": { + "enabled": true, + "props": { + "path": "/document-types/[uid]/edit", + "labelKey": "editDocumentType" + } + } + } + }, "404": { "enabled": true, "props": { diff --git a/src/pages/document-types/[documentTypeUid]/edit/index.tsx b/src/pages/document-types/[documentTypeUid]/edit/index.tsx new file mode 100644 index 00000000..744ab0ef --- /dev/null +++ b/src/pages/document-types/[documentTypeUid]/edit/index.tsx @@ -0,0 +1,5 @@ +import DocumentTypesEdit from "@Front/Components/Layouts/DocumentTypes/DocumentTypesEdit"; + +export default function Route() { + return ; +} diff --git a/src/pages/document-types/[documentTypeUid]/index.tsx b/src/pages/document-types/[documentTypeUid]/index.tsx new file mode 100644 index 00000000..df5aca44 --- /dev/null +++ b/src/pages/document-types/[documentTypeUid]/index.tsx @@ -0,0 +1,5 @@ +import DocumentTypesInformations from "@Front/Components/Layouts/DocumentTypes/DocumentTypesInformations"; + +export default function Route() { + return ; +} diff --git a/src/pages/document-types/create/index.tsx b/src/pages/document-types/create/index.tsx new file mode 100644 index 00000000..cb5dc311 --- /dev/null +++ b/src/pages/document-types/create/index.tsx @@ -0,0 +1,5 @@ +import DocumentTypesCreate from "@Front/Components/Layouts/DocumentTypes/DocumentTypesCreate"; + +export default function Route() { + return ; +} diff --git a/src/pages/document-types/index.tsx b/src/pages/document-types/index.tsx new file mode 100644 index 00000000..95347545 --- /dev/null +++ b/src/pages/document-types/index.tsx @@ -0,0 +1,5 @@ +import DocumentTypes from "@Front/Components/Layouts/DocumentTypes"; + +export default function Route() { + return ; +}