Merge branch 'dev' into staging
This commit is contained in:
commit
9ef946e6fc
14
package-lock.json
generated
14
package-lock.json
generated
@ -20,15 +20,13 @@
|
||||
"eslint": "8.36.0",
|
||||
"eslint-config-next": "13.2.4",
|
||||
"form-data": "^4.0.0",
|
||||
"le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.40",
|
||||
"le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.44",
|
||||
"next": "13.2.4",
|
||||
"prettier": "^2.8.7",
|
||||
"react": "18.2.0",
|
||||
"react-dom": "18.2.0",
|
||||
"react-select": "^5.7.2",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"sass": "^1.59.2",
|
||||
"typedi": "^0.10.0",
|
||||
"typescript": "4.9.5"
|
||||
}
|
||||
},
|
||||
@ -3204,11 +3202,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/le-coffre-resources": {
|
||||
"resolved": "git+ssh://git@github.com/smart-chain-fr/leCoffre-resources.git#62639b8bfcd0f779357554a04cd40e8a3ba4e62b",
|
||||
"resolved": "git+ssh://git@github.com/smart-chain-fr/leCoffre-resources.git#30c8ee50b872a8bc6bec0f5d8c4626d8f4490177",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"class-transformer": "^0.5.1",
|
||||
"class-validator": "^0.14.0"
|
||||
"class-validator": "^0.14.0",
|
||||
"reflect-metadata": "^0.1.13"
|
||||
}
|
||||
},
|
||||
"node_modules/levn": {
|
||||
@ -4498,11 +4497,6 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/typedi": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/typedi/-/typedi-0.10.0.tgz",
|
||||
"integrity": "sha512-v3UJF8xm68BBj6AF4oQML3ikrfK2c9EmZUyLOfShpJuItAqVBHWP/KtpGinkSsIiP6EZyyb6Z3NXyW9dgS9X1w=="
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "4.9.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
|
||||
|
@ -21,16 +21,14 @@
|
||||
"dotenv": "^16.0.3",
|
||||
"eslint": "8.36.0",
|
||||
"eslint-config-next": "13.2.4",
|
||||
"le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.40",
|
||||
"form-data": "^4.0.0",
|
||||
"le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.44",
|
||||
"next": "13.2.4",
|
||||
"prettier": "^2.8.7",
|
||||
"react": "18.2.0",
|
||||
"react-dom": "18.2.0",
|
||||
"react-select": "^5.7.2",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"sass": "^1.59.2",
|
||||
"typedi": "^0.10.0",
|
||||
"typescript": "4.9.5"
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,6 @@
|
||||
import { Service } from "typedi";
|
||||
import BaseApiService from "@Front/Api/BaseApiService";
|
||||
import { FrontendVariables } from "@Front/Config/VariablesFront";
|
||||
|
||||
@Service()
|
||||
export default class Auth extends BaseApiService {
|
||||
private static instance: Auth;
|
||||
|
||||
|
@ -17,7 +17,7 @@ export default abstract class BaseApiService {
|
||||
}
|
||||
|
||||
protected getBaseUrl() {
|
||||
console.log("BaseApiService.baseUrl", BaseApiService.baseUrl);
|
||||
console.log("BaseApiService.baseUrl >>> ", BaseApiService.baseUrl);
|
||||
return BaseApiService.baseUrl;
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
import { Service } from "typedi";
|
||||
import BaseNotary from "../BaseCustomer";
|
||||
import User from "le-coffre-resources/dist/Notary";
|
||||
|
||||
@Service()
|
||||
export default class Users extends BaseNotary {
|
||||
private static instance: Users;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/Users");
|
||||
|
@ -1,8 +1,6 @@
|
||||
import { Service } from "typedi";
|
||||
import BaseNotary from "../BaseNotary";
|
||||
import User from "le-coffre-resources/dist/Notary";
|
||||
|
||||
@Service()
|
||||
export default class Users extends BaseNotary {
|
||||
private static instance: Users;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/Users");
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { Contact, Customer } from "le-coffre-resources/dist/SuperAdmin";
|
||||
import { Service } from "typedi";
|
||||
|
||||
import BaseSuperAdmin from "../BaseSuperAdmin";
|
||||
import { ECivility } from "le-coffre-resources/dist/Customer/Contact";
|
||||
@ -26,7 +25,6 @@ export interface IPostCustomersParams {
|
||||
address?: Contact["address"];
|
||||
}
|
||||
|
||||
@Service()
|
||||
export default class Customers extends BaseSuperAdmin {
|
||||
private static instance: Customers;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/customers");
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Service } from "typedi";
|
||||
import { DeedType } from "le-coffre-resources/dist/Notary";
|
||||
import BaseSuperAdmin from "../BaseSuperAdmin";
|
||||
|
||||
@ -19,7 +18,6 @@ export type IPutDeedTypesParams = {
|
||||
deed_type_has_document_types?: DeedType["deed_type_has_document_types"];
|
||||
};
|
||||
|
||||
@Service()
|
||||
export default class DeedTypes extends BaseSuperAdmin {
|
||||
private static instance: DeedTypes;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/deed-types");
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Service } from "typedi";
|
||||
import { Deed, OfficeFolder } from "le-coffre-resources/dist/Notary";
|
||||
import BaseSuperAdmin from "../BaseSuperAdmin";
|
||||
|
||||
@ -19,7 +18,6 @@ export type IPutDeedsParams = {
|
||||
deed_has_document_types?: Deed["deed_has_document_types"];
|
||||
};
|
||||
|
||||
@Service()
|
||||
export default class Deeds extends BaseSuperAdmin {
|
||||
private static instance: Deeds;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/deeds");
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { DocumentType } from "le-coffre-resources/dist/SuperAdmin";
|
||||
import { Service } from "typedi";
|
||||
|
||||
import BaseSuperAdmin from "../BaseSuperAdmin";
|
||||
|
||||
@ -23,7 +22,6 @@ export interface IPostDocumentTypesParams {
|
||||
};
|
||||
}
|
||||
|
||||
@Service()
|
||||
export default class DocumentTypes extends BaseSuperAdmin {
|
||||
private static instance: DocumentTypes;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/document-types");
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { Document } from "le-coffre-resources/dist/SuperAdmin";
|
||||
import { Service } from "typedi";
|
||||
|
||||
import BaseSuperAdmin from "../BaseSuperAdmin";
|
||||
import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document";
|
||||
@ -19,7 +18,6 @@ export type IPutDocumentsParams = {
|
||||
|
||||
export interface IPostDocumentsParams {}
|
||||
|
||||
@Service()
|
||||
export default class Documents extends BaseSuperAdmin {
|
||||
private static instance: Documents;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/documents");
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { File } from "le-coffre-resources/dist/SuperAdmin";
|
||||
import Container, { Service } from "typedi";
|
||||
|
||||
import BaseSuperAdmin from "../BaseSuperAdmin";
|
||||
import CryptoService from "@Front/Services/CryptoService/CryptoService";
|
||||
|
||||
|
||||
// TODO Type get query params -> Where + inclue + orderby
|
||||
export interface IGetFilesparams {
|
||||
where?: {};
|
||||
@ -16,21 +16,17 @@ export type IPutFilesParams = {};
|
||||
|
||||
export interface IPostFilesParams {}
|
||||
|
||||
@Service()
|
||||
export default class Files extends BaseSuperAdmin {
|
||||
private static instance: Files;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/files");
|
||||
|
||||
private constructor(private cryptoService: CryptoService) {
|
||||
private cryptoService: CryptoService = CryptoService.getInstance();
|
||||
private constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
public static getInstance() {
|
||||
if (!this.instance) {
|
||||
return new this(Container.get(CryptoService));
|
||||
} else {
|
||||
return this.instance;
|
||||
}
|
||||
return (this.instance ??= new this());
|
||||
}
|
||||
|
||||
public async get(q: IGetFilesparams): Promise<File[]> {
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Service } from "typedi";
|
||||
import User, { Customer, DeedType, Office, OfficeFolder } from "le-coffre-resources/dist/Notary";
|
||||
import BaseSuperAdmin from "../BaseSuperAdmin";
|
||||
import { EFolderStatus } from "le-coffre-resources/dist/Customer/OfficeFolder";
|
||||
@ -42,7 +41,6 @@ export type IPutFoldersParams = {
|
||||
office_folder_has_customers?: { customer: { uid: Customer["uid"] } }[];
|
||||
};
|
||||
|
||||
@Service()
|
||||
export default class Folders extends BaseSuperAdmin {
|
||||
private static instance: Folders;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/folders");
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { Service } from "typedi";
|
||||
import User from "le-coffre-resources/dist/SuperAdmin";
|
||||
import BaseSuperAdmin from "../BaseSuperAdmin";
|
||||
|
||||
@ -20,7 +19,6 @@ export type IPutUsersParams = {
|
||||
documents?: User["documents"];
|
||||
};
|
||||
|
||||
@Service()
|
||||
export default class Users extends BaseSuperAdmin {
|
||||
private static instance: Users;
|
||||
private readonly baseURl = this.namespaceUrl.concat("/users");
|
||||
|
10
src/front/Assets/Icons/id-note-logo.svg
Normal file
10
src/front/Assets/Icons/id-note-logo.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<svg width="38" height="34" viewBox="0 0 38 34" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.2604 14.8265C16.2604 13.6968 17.0829 12.7432 18.211 12.4341C17.7974 12.1931 17.5221 11.7716 17.5221 11.2907C17.5221 10.5411 18.1883 9.93368 19.0101 9.93368C19.8319 9.93368 20.498 10.5411 20.498 11.2907C20.498 11.7738 20.2202 12.197 19.803 12.4374C20.9241 12.7506 21.7393 13.7013 21.7393 14.8265C21.7393 16.2065 16.2604 16.2065 16.2604 14.8265ZM18.9992 1.28762C21.0096 1.28762 22.6765 2.80752 22.6765 4.64138V5.67479C22.1825 5.52664 21.6553 5.44538 21.1071 5.44538C18.9568 5.44538 17.1281 6.68091 16.4147 8.41682C16.1197 8.12162 15.7459 7.89281 15.3226 7.76244V4.64138C15.3226 2.80752 16.9882 1.28762 18.9992 1.28762ZM26.0998 10.4523C26.117 10.3105 26.1232 10.1652 26.1232 10.0205C26.1232 8.51198 25.3232 7.17483 24.0895 6.3416V4.64138C24.0895 2.08198 21.8057 -0.000185013 18.9994 -0.000185013C16.1936 -0.000185013 13.9103 2.08198 13.9103 4.64138V7.70774C12.7737 7.95494 11.9277 8.88443 11.9277 9.99764C11.9277 10.1516 11.9453 10.3006 11.9775 10.4465C10.0735 10.7329 8.61719 12.2297 8.61719 14.0451C8.61719 16.0685 10.4129 17.7051 12.6299 17.7051H25.3702C27.5873 17.7051 29.3828 16.0685 29.3828 14.0451C29.3836 12.2521 27.9664 10.767 26.0998 10.4523Z" fill="white"/>
|
||||
<path d="M29.3828 22.3568C29.3828 22.6621 24.7343 22.9102 18.9998 22.9102C13.2662 22.9102 8.61719 22.6621 8.61719 22.3568C8.61719 22.051 13.2662 21.8036 18.9998 21.8036C24.7343 21.8036 29.3828 22.051 29.3828 22.3568Z" fill="white"/>
|
||||
<path d="M1.02349 27.963C0.886712 27.963 0.775312 27.9655 0.689023 27.9704C0.602334 27.9754 0.539421 27.9812 0.499883 27.9876C0.330512 28.0335 0.246094 28.1535 0.246094 28.347V33.5719C0.246094 33.7656 0.332516 33.8871 0.505226 33.9362C0.555717 33.9428 0.623973 33.9488 0.710529 33.9536C0.796817 33.9585 0.901138 33.9609 1.02349 33.9609C1.30426 33.9609 1.44478 33.8313 1.44478 33.5719V28.347C1.44478 28.0909 1.30426 27.963 1.02349 27.963Z" fill="white"/>
|
||||
<path d="M9.28891 32.3359C9.28891 32.6053 9.0963 32.8022 8.71121 32.9268C8.44139 33.0153 8.12081 33.0598 7.75028 33.0598H3.4798V28.8543H7.77192C8.11734 28.8543 8.42883 28.8937 8.70586 28.9726C9.09456 29.0873 9.28891 29.2615 9.28891 29.4946V32.3359ZM7.80411 27.9629H2.70227C2.4215 27.9629 2.28125 28.091 2.28125 28.347V33.5719C2.28125 33.8312 2.4215 33.9609 2.70227 33.9609H7.77726C8.47198 33.9609 9.06037 33.8493 9.5427 33.6261C10.1654 33.3339 10.4768 32.9055 10.4768 32.3408V29.4896C10.4768 28.4716 9.58584 27.9629 7.80411 27.9629Z" fill="white"/>
|
||||
<path d="M12.3938 33.0194C12.2462 32.9341 12.0771 32.8915 11.8862 32.8915C11.6991 32.8915 11.5316 32.9341 11.3841 33.0194C11.2256 33.1147 11.1465 33.2475 11.1465 33.4181C11.1465 33.5923 11.2256 33.7286 11.3841 33.8269C11.5209 33.9123 11.69 33.9551 11.8917 33.9551C12.086 33.9551 12.2534 33.9106 12.3938 33.8222C12.5556 33.7204 12.6366 33.5857 12.6366 33.4181C12.6366 33.2506 12.5556 33.1178 12.3938 33.0194Z" fill="white"/>
|
||||
<path d="M21.0548 27.9626C20.9329 27.9626 20.8288 27.9651 20.7431 27.97C20.6569 27.975 20.5889 27.9808 20.5386 27.9872C20.3668 28.0364 20.281 28.1562 20.281 28.3466V32.5225L14.7535 28.2335C14.4797 28.0234 14.2131 27.9182 13.9538 27.9182C13.5431 27.9182 13.3379 28.1348 13.3379 28.5683V33.5715C13.3379 33.8309 13.4783 33.9605 13.759 33.9605C13.8814 33.9605 13.9857 33.9581 14.0721 33.9532C14.1584 33.9483 14.227 33.9424 14.2773 33.9358C14.45 33.8867 14.5364 33.7652 14.5364 33.5715V29.371L20.135 33.7093C20.3906 33.9031 20.6191 34 20.8209 34C21.2599 34 21.4796 33.7719 21.4796 33.3155V28.3466C21.4796 28.0905 21.3375 27.9626 21.0548 27.9626Z" fill="white"/>
|
||||
<path d="M29.0875 32.326C29.0875 32.8152 28.4823 33.0598 27.2718 33.0598H25.364C24.139 33.0598 23.5267 32.8152 23.5267 32.326V29.6126C23.5267 29.107 24.139 28.8543 25.364 28.8543H27.2663C28.4805 28.8543 29.0875 29.107 29.0875 29.6126V32.326ZM29.2387 28.1895C28.85 28.0385 28.1821 27.9629 27.2357 27.9629H25.3676C23.3413 27.9629 22.3281 28.5047 22.3281 29.588V32.3555C22.3281 32.9659 22.6916 33.406 23.4189 33.6754C23.8939 33.8658 24.5432 33.9609 25.3676 33.9609H27.2357C29.2693 33.9609 30.2862 33.4241 30.2862 32.3506V29.588C30.2862 28.902 29.9367 28.4357 29.2387 28.1895Z" fill="white"/>
|
||||
<path d="M37.331 27.963H30.8309C30.6471 27.963 30.5266 28.009 30.4691 28.101C30.4259 28.1664 30.4043 28.288 30.4043 28.4653C30.4043 28.7248 30.5463 28.8543 30.8309 28.8543H33.4709V33.5719C33.4709 33.7656 33.5557 33.8855 33.7257 33.9315C33.7944 33.9511 33.9698 33.9609 34.2519 33.9609C34.5302 33.9609 34.6693 33.8313 34.6693 33.5719V28.8543H37.331C37.6118 28.8543 37.7522 28.7248 37.7522 28.4653C37.7522 28.1304 37.6118 27.963 37.331 27.963Z" fill="white"/>
|
||||
</svg>
|
After Width: | Height: | Size: 4.5 KiB |
@ -63,7 +63,6 @@ export default class DepositDocument extends React.Component<IProps, IState> {
|
||||
}
|
||||
|
||||
public override render(): JSX.Element {
|
||||
console.log("Reason in state : ", this.state.refusedReason);
|
||||
return (
|
||||
<div
|
||||
className={classNames(
|
||||
|
@ -1,12 +1,12 @@
|
||||
import { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard";
|
||||
import Module from "@Front/Config/Module";
|
||||
import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document";
|
||||
import Link from "next/link";
|
||||
import { useRouter } from "next/router";
|
||||
import React from "react";
|
||||
|
||||
import FolderContainer from "../FolderContainer";
|
||||
import classes from "./classes.module.scss";
|
||||
import Module from "@Front/Config/Module";
|
||||
import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document";
|
||||
|
||||
type IProps = {
|
||||
folders: IDashBoardFolder[];
|
||||
@ -22,34 +22,52 @@ type IPropsClass = IProps & {
|
||||
type IState = {};
|
||||
|
||||
class FolderListClass extends React.Component<IPropsClass, IState> {
|
||||
public override render(): JSX.Element {
|
||||
const redirectPath: string = this.props.isArchived
|
||||
private redirectPath: string = this.props.isArchived
|
||||
? Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.pages.FolderInformation.props.path
|
||||
: Module.getInstance().get().modules.pages.Folder.pages.FolderInformation.props.path;
|
||||
public override render(): JSX.Element {
|
||||
return (
|
||||
<div className={classes["root"]}>
|
||||
{this.props.folders.sort((folder) => {
|
||||
const pendingDocuments = (folder.documents ?? []).filter((document) => document.document_status === EDocumentStatus.DEPOSITED);
|
||||
return pendingDocuments.length >= 1 ? -1 : 1;
|
||||
}).sort((folder1, folder2) => {
|
||||
return folder1.created_at! < folder2.created_at! ? -1 : 1;
|
||||
}).sort((folder1, folder2) => {
|
||||
return folder1.folder_number! < folder2.folder_number! ? -1 : 1;
|
||||
}).map((folder) => {
|
||||
{this.renderFolders()}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
private renderFolders(): JSX.Element[] {
|
||||
const pendingFolders = this.props.folders
|
||||
.filter((folder) => {
|
||||
const pendingDocuments = (folder.documents ?? []).filter(
|
||||
(document) => document.document_status === EDocumentStatus.DEPOSITED,
|
||||
);
|
||||
return pendingDocuments.length >= 1;
|
||||
})
|
||||
.sort((folder1, folder2) => {
|
||||
return folder1.created_at! > folder2.created_at! ? -1 : 1;
|
||||
});
|
||||
|
||||
const otherFolders = this.props.folders
|
||||
.filter((folder) => {
|
||||
const pendingDocuments = (folder.documents ?? []).filter(
|
||||
(document) => document.document_status === EDocumentStatus.DEPOSITED,
|
||||
);
|
||||
return pendingDocuments.length === 0;
|
||||
})
|
||||
.sort((folder1, folder2) => {
|
||||
return folder1.created_at! > folder2.created_at! ? -1 : 1;
|
||||
});
|
||||
|
||||
return [...pendingFolders, ...otherFolders].map((folder) => {
|
||||
return (
|
||||
<div
|
||||
onClick={this.props.onCloseLeftSide}
|
||||
key={folder.uid}
|
||||
className={folder.uid === this.props.selectedFolder ? classes["active"] : ""}>
|
||||
<Link href={redirectPath.replace("[folderUid]", folder.uid ?? "")}>
|
||||
<Link href={this.redirectPath.replace("[folderUid]", folder.uid ?? "")}>
|
||||
<FolderContainer folder={folder} onSelectedFolder={this.props.onSelectedFolder} />;
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
;
|
||||
</div>
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,16 @@
|
||||
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);
|
||||
}
|
||||
}
|
@ -31,10 +31,11 @@ export default class FolderListContainer extends React.Component<IProps, IState>
|
||||
const navigatePath = Module.getInstance().get().modules.pages.Folder.pages.CreateFolder.props.path;
|
||||
return (
|
||||
<div className={classes["root"]}>
|
||||
<div>
|
||||
<div className={classes["header"]}>
|
||||
<div className={classes["searchbar"]}>
|
||||
<SearchBar folders={this.props.folders} onChange={this.filterFolders} placeholder="Chercher un dossier" />
|
||||
</div>
|
||||
<div className={classes["folderlist-container"]}>
|
||||
<FolderList
|
||||
folders={this.state.filteredFolders}
|
||||
onSelectedFolder={this.props.onSelectedFolder && this.props.onSelectedFolder}
|
||||
@ -42,6 +43,7 @@ export default class FolderListContainer extends React.Component<IProps, IState>
|
||||
isArchived={this.props.isArchived}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
{!this.props.isArchived && (
|
||||
<Link href={navigatePath}>
|
||||
|
@ -52,9 +52,7 @@ export default class InputField extends BaseField<IProps> {
|
||||
this.props.className ? [classes["textarea"], classes[this.props.className]].join(" ") : classes["textarea"]
|
||||
}
|
||||
value={value}
|
||||
readOnly={this.props.readOnly}>
|
||||
{value.toString()}
|
||||
</textarea>
|
||||
readOnly={this.props.readOnly} />
|
||||
<div className={classes["fake-placeholder"]}>
|
||||
{this.props.fakeplaceholder} {!this.props.required && " (Facultatif)"}
|
||||
</div>
|
||||
|
@ -31,10 +31,6 @@
|
||||
.profile-section {
|
||||
display: inline-flex;
|
||||
|
||||
> :first-child {
|
||||
margin-right: 32px;
|
||||
}
|
||||
|
||||
@media (max-width: $screen-ls) {
|
||||
display: none;
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ export default class Modal extends React.Component<IProps, IState> {
|
||||
|
||||
|
||||
private handleKeyDown = (e: KeyboardEvent): void => {
|
||||
if (e.key === "Escape" || e.key === "Esc" || e.key === "Backspace") {
|
||||
if (e.key === "Escape" || e.key === "Esc") {
|
||||
this.props.onClose();
|
||||
}
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ export default class UserFolder extends React.Component<IProps, IState> {
|
||||
onAccept={this.deleteAskedDocument}
|
||||
closeBtn
|
||||
header={"Supprimer la demande de document ?"}
|
||||
cancelText={"Cancel"}
|
||||
cancelText={"Annuler"}
|
||||
confirmText={"Confirmer"}>
|
||||
Êtes-vous vous de vouloir supprimer la demande de document ?
|
||||
</Confirm>
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
import Header from "@Front/Components/DesignSystem/Header";
|
||||
import Version from "@Front/Components/DesignSystem/Version";
|
||||
import classNames from "classnames";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
import ChevronIcon from "@Assets/Icons/chevron.svg";
|
||||
import Folders, { IGetFoldersParams } from "@Front/Api/LeCoffreApi/SuperAdmin/Folders/Folders";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
import React, { ReactNode } from "react";
|
||||
import classes from "./classes.module.scss";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
||||
import DepositDocument from "@Front/Components/DesignSystem/DepositDocument";
|
||||
import InputField from "@Front/Components/DesignSystem/Form/Elements/InputField";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
||||
import CheckBox from "@Front/Components/DesignSystem/CheckBox";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
import Customers from "@Front/Api/LeCoffreApi/SuperAdmin/Customers/Customers";
|
||||
import Folders, { IPutFoldersParams } from "@Front/Api/LeCoffreApi/SuperAdmin/Folders/Folders";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
import PlusIcon from "@Assets/Icons/plus.svg";
|
||||
import Folders from "@Front/Api/LeCoffreApi/SuperAdmin/Folders/Folders";
|
||||
|
@ -13,7 +13,7 @@ import { ActionMeta, MultiValue } from "react-select";
|
||||
|
||||
import BasePage from "../../Base";
|
||||
import classes from "./classes.module.scss";
|
||||
import { DeedType, OfficeFolder, OfficeFolderHasStakeholder } from "le-coffre-resources/dist/Notary";
|
||||
import { DeedType, OfficeFolderHasStakeholder } from "le-coffre-resources/dist/Notary";
|
||||
import DeedTypes from "@Front/Api/LeCoffreApi/SuperAdmin/DeedTypes/DeedTypes";
|
||||
import Users from "@Front/Api/LeCoffreApi/SuperAdmin/Users/Users";
|
||||
import User from "le-coffre-resources/dist/Notary";
|
||||
@ -284,7 +284,6 @@ class CreateFolderClass extends BasePage<IPropsClass, IState> {
|
||||
|
||||
let office_folder_has_stakeholders = collaborators.map((collaborator) => {
|
||||
return OfficeFolderHasStakeholder.hydrate<OfficeFolderHasStakeholder>({
|
||||
office_folder: new OfficeFolder(),
|
||||
user_stakeholder: collaborator,
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
import ChevronIcon from "@Assets/Icons/chevron.svg";
|
||||
import Folders, { IPutFoldersParams } from "@Front/Api/LeCoffreApi/SuperAdmin/Folders/Folders";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
||||
import Form from "@Front/Components/DesignSystem/Form";
|
||||
import InputField from "@Front/Components/DesignSystem/Form/Elements/InputField";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
import Folders from "@Front/Api/LeCoffreApi/SuperAdmin/Folders/Folders";
|
||||
import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
import LeftArrowIcon from "@Assets/Icons/left-arrow.svg";
|
||||
import RightArrowIcon from "@Assets/Icons/right-arrow.svg";
|
||||
|
@ -1,4 +1,3 @@
|
||||
import "reflect-metadata";
|
||||
|
||||
import ChevronIcon from "@Assets/Icons/chevron.svg";
|
||||
import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
||||
|
@ -1,13 +1,21 @@
|
||||
@import "@Themes/constants.scss";
|
||||
|
||||
.root {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
max-width: 530px;
|
||||
margin: auto;
|
||||
|
||||
.title {
|
||||
margin: 32px 0;
|
||||
text-align: center;
|
||||
|
||||
@media (max-width: $screen-s) {
|
||||
font-family: 48px;
|
||||
}
|
||||
}
|
||||
|
||||
.forget-password {
|
||||
|
@ -7,6 +7,7 @@ import LandingImage from "./landing-connect.png";
|
||||
import Image from "next/image";
|
||||
import DefaultDoubleSidePage from "@Front/Components/LayoutTemplates/DefaultDoubleSidePage";
|
||||
import { FrontendVariables } from "@Front/Config/VariablesFront";
|
||||
import idNoteLogo from "@Assets/Icons/id-note-logo.svg";
|
||||
|
||||
export default class LoginClass extends BasePage {
|
||||
public override render(): JSX.Element {
|
||||
@ -17,7 +18,9 @@ export default class LoginClass extends BasePage {
|
||||
<Typography typo={ITypo.H1}>
|
||||
<div className={classes["title"]}>Connexion espace professionnel</div>
|
||||
</Typography>
|
||||
<Button onClick={this.redirectUserOnConnection}>S'identifier avec ID.not</Button>
|
||||
<Button onClick={this.redirectUserOnConnection} icon={idNoteLogo} iconposition={"left"}>
|
||||
S'identifier avec ID.not
|
||||
</Button>
|
||||
<Typography typo={ITypo.P_18}>
|
||||
<div className={classes["forget-password"]}>Vous n'arrivez pas à vous connecter ?</div>
|
||||
</Typography>
|
||||
|
@ -1,20 +1,24 @@
|
||||
import { Service } from "typedi";
|
||||
import { FrontendVariables } from "@Front/Config/VariablesFront";
|
||||
import crypto from "crypto";
|
||||
|
||||
@Service()
|
||||
|
||||
export default class CryptoService {
|
||||
private jwkKey: JsonWebKey;
|
||||
private subtle: SubtleCrypto = window.crypto.subtle;
|
||||
constructor(protected variables: FrontendVariables) {
|
||||
private static instance: CryptoService;
|
||||
private constructor() {
|
||||
this.jwkKey = {
|
||||
kty: "oct",
|
||||
k: variables.KEY_DATA,
|
||||
k: FrontendVariables.getInstance().KEY_DATA,
|
||||
alg: "A256GCM",
|
||||
ext: true,
|
||||
};
|
||||
}
|
||||
|
||||
public static getInstance() {
|
||||
return (this.instance ??= new this());
|
||||
}
|
||||
|
||||
private async getKey() {
|
||||
return await this.subtle.importKey("jwk", this.jwkKey, { name: "AES-GCM" }, false, ["encrypt", "decrypt"]);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user