import PenICon from "@Assets/Icons/pen.svg"; import Module from "@Front/Config/Module"; import classNames from "classnames"; import { OfficeFolder } from "le-coffre-resources/dist/Notary"; import Image from "next/image"; import Link from "next/link"; import React from "react"; import Typography, { ETypo, ETypoColor } from "../Typography"; import classes from "./classes.module.scss"; import { AnchorStatus } from "@Front/Components/Layouts/Folder/FolderInformation"; import Note from "le-coffre-resources/dist/Customer/Note"; type IProps = { folder: OfficeFolder; type: EFolderBoxInformationType; isArchived?: boolean; anchorStatus: AnchorStatus; customerUid?: string; note?: Note | null; }; export enum EFolderBoxInformationType { INFORMATIONS = "informations", DESCRIPTION = "description", ARCHIVED_DESCRIPTION = "archivedDescription", NOTE = "note", } export default function FolderBoxInformation(props: IProps) { const { isArchived = false, type } = props; const editDescriptionPath = Module.getInstance() .get() .modules.pages.Folder.pages.EditDescription.props.path.replace("[folderUid]", props.folder.uid ?? ""); const editInformationsPath = Module.getInstance() .get() .modules.pages.Folder.pages.EditInformations.props.path.replace("[folderUid]", props.folder.uid ?? ""); let createOrUpdateNotePath = Module.getInstance() .get() .modules.pages.Notes.pages.EditNote.props.path.replace("[noteUid]", props.note?.uid ?? ""); if (!props.note) { createOrUpdateNotePath = Module.getInstance() .get() .modules.pages.Notes.pages.CreateNote.props.path.replace("[folderUid]", props.folder.uid ?? ""); createOrUpdateNotePath = createOrUpdateNotePath.replace("[customerUid]", props.customerUid ?? ""); } let path = editInformationsPath; if (type === EFolderBoxInformationType.DESCRIPTION) { path = editDescriptionPath; } else if (type === EFolderBoxInformationType.NOTE) { path = createOrUpdateNotePath; } return (
{renderContentByType(props.folder, type, props.note)}
{!isArchived && props.anchorStatus === AnchorStatus.NOT_ANCHORED && ( edit informations )}
); function renderContentByType(folder: OfficeFolder, type: EFolderBoxInformationType, note?: Note | null) { switch (type) { case EFolderBoxInformationType.DESCRIPTION: return (
Note dossier {folder.description ?? ""}
); case EFolderBoxInformationType.NOTE: return (
Note client {note?.content ?? ""}
); case EFolderBoxInformationType.ARCHIVED_DESCRIPTION: return (
Note archive {folder.archived_description ?? ""}
); case EFolderBoxInformationType.INFORMATIONS: return ( <>
Intitulé du dossier {folder.name ?? ""}
Numéro de dossier {folder.folder_number ?? ""}
Type d'acte {folder.deed?.deed_type?.name ?? ""}
Ouverture du dossier {formatDate(folder.created_at)}
); } } } function formatDate(date: Date | null): string { if (!date) return "..."; if (!(date instanceof Date)) date = new Date(date); return date.toLocaleDateString("fr-FR", { year: "numeric", month: "long", day: "numeric", }); }