From df3f4ff59089a7b5862989b1e00c7b93f715787b Mon Sep 17 00:00:00 2001 From: Maxime Lalo Date: Tue, 25 Jul 2023 14:44:01 +0200 Subject: [PATCH] :sparkles: Archiving deed types --- .../LeCoffreApi/Admin/DeedTypes/DeedTypes.ts | 10 +++++ .../DefaultDeedTypeDashboard/index.tsx | 6 ++- .../DeedTypes/DeedTypesInformations/index.tsx | 39 ++++++++++++++++++- 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/front/Api/LeCoffreApi/Admin/DeedTypes/DeedTypes.ts b/src/front/Api/LeCoffreApi/Admin/DeedTypes/DeedTypes.ts index 896427c6..9cb83d35 100644 --- a/src/front/Api/LeCoffreApi/Admin/DeedTypes/DeedTypes.ts +++ b/src/front/Api/LeCoffreApi/Admin/DeedTypes/DeedTypes.ts @@ -81,4 +81,14 @@ export default class DeedTypes extends BaseAdmin { return Promise.reject(err); } } + + public async delete(uid: string) { + const url = new URL(this.baseURl); + try { + return await this.deleteRequest(url); + } catch (err) { + this.onError(err); + return Promise.reject(err); + } + } } diff --git a/src/front/Components/LayoutTemplates/DefaultDeedTypeDashboard/index.tsx b/src/front/Components/LayoutTemplates/DefaultDeedTypeDashboard/index.tsx index da41c677..f85aa32a 100644 --- a/src/front/Components/LayoutTemplates/DefaultDeedTypeDashboard/index.tsx +++ b/src/front/Components/LayoutTemplates/DefaultDeedTypeDashboard/index.tsx @@ -87,7 +87,11 @@ export default class DefaultDeedTypesDashboard extends React.Component this.onResize(window)); - const query: IGetDeedTypesParams = {}; + const query: IGetDeedTypesParams = { + where: { + archived_at: null, + }, + }; const deedTypes = await DeedTypes.getInstance().get(query); this.setState({ deedTypes }); diff --git a/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx b/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx index a403dce2..8494cdc0 100644 --- a/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx +++ b/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx @@ -5,6 +5,7 @@ import DocumentTypes from "@Front/Api/LeCoffreApi/Admin/DocumentTypes/DocumentTy import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; import Form from "@Front/Components/DesignSystem/Form"; import { IOption } from "@Front/Components/DesignSystem/Form/SelectField"; +import Confirm from "@Front/Components/DesignSystem/Modal/Confirm"; import MultiSelect from "@Front/Components/DesignSystem/MultiSelect"; import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography"; import DefaultDeedTypesDashboard from "@Front/Components/LayoutTemplates/DefaultDeedTypeDashboard"; @@ -28,6 +29,26 @@ export default function DeedTypesInformations(props: IProps) { const [availableDocuments, setAvailableDocuments] = useState([]); const [selectedDocuments, setSelectedDocuments] = useState([]); + const [isDeleteModalOpened, setIsDeleteModalOpened] = useState(false); + + const openDeleteModal = useCallback(() => { + setIsDeleteModalOpened(true); + }, []); + + const closeDeleteModal = useCallback(() => { + setIsDeleteModalOpened(false); + }, []); + + const deleteDeedType = useCallback(async () => { + await DeedTypes.getInstance().put( + deedTypeUid as string, + DeedType.hydrate({ + archived_at: new Date(), + }), + ); + router.push(Module.getInstance().get().modules.pages.DeedTypes.props.path); + }, [deedTypeUid, router]); + useEffect(() => { async function getDeedType() { if (!deedTypeUid) return; @@ -136,8 +157,24 @@ export default function DeedTypesInformations(props: IProps) {
- +
+ +
+ + Êtes-vous sûr de vouloir archiver ce type d'acte ? + +
+
);