Merge branch 'dev' into feature/ora-mt-262-create-folder
This commit is contained in:
commit
8036492f6b
@ -38,6 +38,8 @@ export default function Button(props: IProps) {
|
|||||||
|
|
||||||
const attributes = { ...props, variant, disabled, type, isloading, fullwidth };
|
const attributes = { ...props, variant, disabled, type, isloading, fullwidth };
|
||||||
delete attributes.icon;
|
delete attributes.icon;
|
||||||
|
delete attributes.iconStyle;
|
||||||
|
delete attributes.iconPosition;
|
||||||
return (
|
return (
|
||||||
<button {...attributes} onClick={onClick} className={classes["root"]} type={type}>
|
<button {...attributes} onClick={onClick} className={classes["root"]} type={type}>
|
||||||
{icon && iconposition === "left" && <Image src={icon} style={iconstyle} alt={"button icon"} />}
|
{icon && iconposition === "left" && <Image src={icon} style={iconstyle} alt={"button icon"} />}
|
||||||
|
@ -12,9 +12,12 @@
|
|||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||||
gap: 32px;
|
gap: 32px;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
@media (max-width: $screen-l) {
|
@media (max-width: $screen-l) {
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: $screen-s) {
|
@media (max-width: $screen-s) {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
@ -23,7 +26,17 @@
|
|||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.edit-icon {
|
.edit-icon {
|
||||||
margin-left: 48px;
|
margin-left: 48px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (max-width: $screen-s) {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
.edit-icon {
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-top: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -19,7 +19,7 @@ export default function FolderBoxInformation(props: IProps) {
|
|||||||
<div className={classes["content"]}>
|
<div className={classes["content"]}>
|
||||||
{isDescription ? (
|
{isDescription ? (
|
||||||
<div className={classes["text-container"]}>
|
<div className={classes["text-container"]}>
|
||||||
<Typography typo={ITypo.NAV_INPUT_16}>Note dossier :</Typography>
|
<Typography typo={ITypo.NAV_INPUT_16}>Note dossier</Typography>
|
||||||
<Typography typo={ITypo.P_18}>{props.folder.description ?? "..."}</Typography>
|
<Typography typo={ITypo.P_18}>{props.folder.description ?? "..."}</Typography>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
|
@ -22,7 +22,9 @@ export default class FolderContainer extends React.Component<IProps, IState> {
|
|||||||
return (
|
return (
|
||||||
<div className={classes["root"]} onClick={this.onSelectedFolder}>
|
<div className={classes["root"]} onClick={this.onSelectedFolder}>
|
||||||
<div className={classes["left-side"]}>
|
<div className={classes["left-side"]}>
|
||||||
<Typography typo={ITypo.P_16}>{"Dossier ".concat(this.props.folder.folder_number)}</Typography>
|
<Typography typo={ITypo.P_16}>
|
||||||
|
{this.props.folder.folder_number.concat(" - ").concat(this.props.folder.name)}
|
||||||
|
</Typography>
|
||||||
{this.countPendingDocuments() > 0 && (
|
{this.countPendingDocuments() > 0 && (
|
||||||
<div className={classes["warning"]}>
|
<div className={classes["warning"]}>
|
||||||
<WarningBadge />
|
<WarningBadge />
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
.root {
|
.root {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
resize: none;
|
resize: none;
|
||||||
height: auto;
|
height: auto;
|
||||||
@ -12,6 +13,7 @@
|
|||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input {
|
.input {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -24,13 +26,14 @@
|
|||||||
border: 1px solid $grey-medium;
|
border: 1px solid $grey-medium;
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
~ .fake-placeholder {
|
~.fake-placeholder {
|
||||||
transform: translateY(-35px);
|
transform: translateY(-35px);
|
||||||
transition: transform 0.3s ease-in-out;
|
transition: transform 0.3s ease-in-out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:not([value=""]) {
|
&:not([value=""]) {
|
||||||
~ .fake-placeholder {
|
~.fake-placeholder {
|
||||||
transform: translateY(-35px);
|
transform: translateY(-35px);
|
||||||
transition: transform;
|
transition: transform;
|
||||||
}
|
}
|
||||||
@ -38,27 +41,48 @@
|
|||||||
|
|
||||||
&[type="number"] {
|
&[type="number"] {
|
||||||
&:focus {
|
&:focus {
|
||||||
~ .fake-placeholder {
|
~.fake-placeholder {
|
||||||
transform: translateY(-35px);
|
transform: translateY(-35px);
|
||||||
transition: transform 0.3s ease-in-out;
|
transition: transform 0.3s ease-in-out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:not([value=""]) {
|
&:not([value=""]) {
|
||||||
~ .fake-placeholder {
|
~.fake-placeholder {
|
||||||
transform: translateY(-35px);
|
transform: translateY(-35px);
|
||||||
transition: transform;
|
transition: transform;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&::-webkit-inner-spin-button,
|
||||||
|
&::-webkit-outer-spin-button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For Chrome, Safari, and Opera */
|
||||||
|
&::-webkit-inner-spin-button,
|
||||||
|
&::-webkit-outer-spin-button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
margin: 0;
|
||||||
|
-moz-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For IE 10+ */
|
||||||
|
&::-ms-inner-spin-button,
|
||||||
|
&::-ms-outer-spin-button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:not([value=""]) {
|
&:not([value=""]) {
|
||||||
~ .fake-placeholder {
|
~.fake-placeholder {
|
||||||
transform: translateY(-35px);
|
transform: translateY(-35px);
|
||||||
transition: transform 0.3s ease-in-out;
|
transition: transform 0.3s ease-in-out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
~ .fake-placeholder {
|
~.fake-placeholder {
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
top: 35%;
|
top: 35%;
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
@ -82,7 +106,7 @@
|
|||||||
height: 70px;
|
height: 70px;
|
||||||
border: 1px solid $grey-medium;
|
border: 1px solid $grey-medium;
|
||||||
|
|
||||||
~ .fake-placeholder {
|
~.fake-placeholder {
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
top: -12px;
|
top: -12px;
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
|
@ -7,7 +7,7 @@ type IProps = {
|
|||||||
};
|
};
|
||||||
export default class ProgressBar extends React.Component<IProps> {
|
export default class ProgressBar extends React.Component<IProps> {
|
||||||
public override render(): JSX.Element {
|
public override render(): JSX.Element {
|
||||||
const quantity = this.props.percentage.toFixed(2).toString().concat("%");
|
const quantity = this.props.percentage.toFixed(0).toString().concat("%");
|
||||||
return (
|
return (
|
||||||
<div className={classes["root"]}>
|
<div className={classes["root"]}>
|
||||||
<div className={classes["progress"]} style={{ width: quantity }}>
|
<div className={classes["progress"]} style={{ width: quantity }}>
|
||||||
|
@ -13,15 +13,43 @@
|
|||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||||
|
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
|
||||||
@media (max-width: $screen-ls) {
|
@media (max-width: $screen-ls) {
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
gap: 32px;
|
gap: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (max-width: $screen-s) {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
>:first-child {
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.icons {
|
.icons {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: 64px;
|
||||||
|
|
||||||
|
@media (max-width: $screen-l) {
|
||||||
|
gap: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: $screen-s) {
|
||||||
gap: 24px;
|
gap: 24px;
|
||||||
|
margin-top: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: $screen-s) {
|
||||||
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,4 +4,5 @@
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 16px;
|
bottom: 16px;
|
||||||
right: 24px;
|
right: 24px;
|
||||||
|
opacity: 0.3;
|
||||||
}
|
}
|
@ -8,12 +8,12 @@
|
|||||||
.content {
|
.content {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 100vh;
|
height: calc(100vh - 83px);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.sides {
|
.sides {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import DefaultNotaryDashboard, { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard";
|
import DefaultNotaryDashboard, { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard";
|
||||||
import BasePage from "../Base";
|
import BasePage from "../../Base";
|
||||||
import classes from "./classes.module.scss";
|
import classes from "./classes.module.scss";
|
||||||
import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography";
|
import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography";
|
||||||
import RadioBox from "@Front/Components/DesignSystem/RadioBox";
|
import RadioBox from "@Front/Components/DesignSystem/RadioBox";
|
@ -3,18 +3,23 @@
|
|||||||
.root {
|
.root {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding-bottom: 32px;
|
padding-bottom: 32px;
|
||||||
|
|
||||||
.no-client {
|
.no-client {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding: 72px;
|
padding: 72px;
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.client {
|
.client {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 32px;
|
gap: 32px;
|
||||||
|
margin-bottom: 32px;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import classes from "./classes.module.scss";
|
import classes from "./classes.module.scss";
|
||||||
import { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard";
|
import { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard";
|
||||||
import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography";
|
import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography";
|
||||||
import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
||||||
import PlusIcon from "@Assets/Icons/plus.svg";
|
import PlusIcon from "@Assets/Icons/plus.svg";
|
||||||
import UserFolder from "@Front/Components/DesignSystem/UserFolder";
|
import UserFolder from "@Front/Components/DesignSystem/UserFolder";
|
||||||
@ -17,11 +17,20 @@ export default class ClientSection extends React.Component<IProps, IState> {
|
|||||||
return (
|
return (
|
||||||
<div className={classes["root"]}>
|
<div className={classes["root"]}>
|
||||||
{this.doesFolderHaveCustomer() ? (
|
{this.doesFolderHaveCustomer() ? (
|
||||||
|
<>
|
||||||
<div className={classes["client"]}>{this.renderCustomerFolders()}</div>
|
<div className={classes["client"]}>{this.renderCustomerFolders()}</div>
|
||||||
|
<Link href={"/dossier/".concat(this.props.folder.uid).concat("/ajouter-client")}>
|
||||||
|
<Button variant={EButtonVariant.LINE} icon={PlusIcon}>
|
||||||
|
Ajouter un client
|
||||||
|
</Button>
|
||||||
|
</Link>
|
||||||
|
</>
|
||||||
) : (
|
) : (
|
||||||
<div className={classes["no-client"]}>
|
<div className={classes["no-client"]}>
|
||||||
<div className={classes["title"]}>
|
<div className={classes["title"]}>
|
||||||
<Typography typo={ITypo.P_18}>Aucun client n’est associé au dossier.</Typography>
|
<Typography typo={ITypo.P_18} color={ITypoColor.GREY}>
|
||||||
|
Aucun client n’est associé au dossier.
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<Link href={"/dossier/".concat(this.props.folder.uid).concat("/ajouter-client")}>
|
<Link href={"/dossier/".concat(this.props.folder.uid).concat("/ajouter-client")}>
|
||||||
<Button variant={EButtonVariant.LINE} icon={PlusIcon}>
|
<Button variant={EButtonVariant.LINE} icon={PlusIcon}>
|
@ -33,7 +33,15 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
@media (max-width: $screen-m) {
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,24 +57,28 @@
|
|||||||
.button-container {
|
.button-container {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
:first-child {
|
:first-child {
|
||||||
margin-right: 12px;
|
margin-right: 12px;
|
||||||
}
|
}
|
||||||
> * {
|
|
||||||
|
>* {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: $screen-m) {
|
@media (max-width: $screen-m) {
|
||||||
:first-child {
|
:first-child {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
> * {
|
|
||||||
|
>* {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-title {
|
.modal-title {
|
||||||
margin-bottom: 24px;
|
margin-bottom: 24px;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
import DefaultNotaryDashboard, { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard";
|
import DefaultNotaryDashboard, { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard";
|
||||||
import BasePage from "../Base";
|
import BasePage from "../../Base";
|
||||||
import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography";
|
import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography";
|
||||||
import classes from "./classes.module.scss";
|
import classes from "./classes.module.scss";
|
||||||
import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
||||||
@ -40,7 +40,9 @@ class FolderInformationClass extends BasePage<IPropsClass, IState> {
|
|||||||
<div className={classes["folder-informations"]}>
|
<div className={classes["folder-informations"]}>
|
||||||
<div className={classes["folder-header"]}>
|
<div className={classes["folder-header"]}>
|
||||||
<div className={classes["header"]}>
|
<div className={classes["header"]}>
|
||||||
|
<div className={classes["title"]}>
|
||||||
<Typography typo={ITypo.H1Bis}>Informations du dossier</Typography>
|
<Typography typo={ITypo.H1Bis}>Informations du dossier</Typography>
|
||||||
|
</div>
|
||||||
<Button variant={EButtonVariant.LINE} icon={ChevronIcon}>
|
<Button variant={EButtonVariant.LINE} icon={ChevronIcon}>
|
||||||
Modifier les collaborateurs
|
Modifier les collaborateurs
|
||||||
</Button>
|
</Button>
|
||||||
@ -50,7 +52,7 @@ class FolderInformationClass extends BasePage<IPropsClass, IState> {
|
|||||||
<FolderBoxInformation folder={this.state.selectedFolder} isDescription />
|
<FolderBoxInformation folder={this.state.selectedFolder} isDescription />
|
||||||
</div>
|
</div>
|
||||||
<div className={classes["progress-bar"]}>
|
<div className={classes["progress-bar"]}>
|
||||||
<QuantityProgressBar title="Complétion du dossier" total={100} currentNumber={0} />
|
<QuantityProgressBar title="Complétion du dossier client" total={100} currentNumber={0} />
|
||||||
</div>
|
</div>
|
||||||
{this.doesFolderHaveCustomer() && <ClientSection folder={this.state.selectedFolder} />}
|
{this.doesFolderHaveCustomer() && <ClientSection folder={this.state.selectedFolder} />}
|
||||||
</div>
|
</div>
|
@ -1,4 +1,4 @@
|
|||||||
import AddClientToFolder from "@Front/Components/Layouts/AddClientToFolder";
|
import AddClientToFolder from "@Front/Components/Layouts/Folder/AddClientToFolder";
|
||||||
|
|
||||||
export default function Route() {
|
export default function Route() {
|
||||||
return <AddClientToFolder />;
|
return <AddClientToFolder />;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import FolderInformation from "@Front/Components/Layouts/FolderInformation";
|
import FolderInformation from "@Front/Components/Layouts/Folder/FolderInformation";
|
||||||
|
|
||||||
export default function Route() {
|
export default function Route() {
|
||||||
return <FolderInformation />;
|
return <FolderInformation />;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user