Merge branch 'dev' into staging

This commit is contained in:
Maxime Lalo 2024-07-24 17:04:59 +02:00
commit 5d09211de0
5 changed files with 15 additions and 3 deletions

View File

@ -23,8 +23,7 @@
} }
.bottom-container { .bottom-container {
position: fixed; margin-top: auto;
bottom: 0;
width: 336px; width: 336px;
} }
} }

View File

@ -6,6 +6,9 @@
border-bottom: 1px solid var(--tabs-stroke, #d7dce0); border-bottom: 1px solid var(--tabs-stroke, #d7dce0);
cursor: pointer; cursor: pointer;
display: flex;
align-items: center;
gap: var(--spacing-1-5, 12px);
&[data-is-selected="true"] { &[data-is-selected="true"] {
border-bottom: 2px solid var(--tabs-contrast-actived, #24282e); border-bottom: 2px solid var(--tabs-contrast-actived, #24282e);
} }

View File

@ -3,6 +3,7 @@ import classes from "./classes.module.scss";
import Typography, { ETypo, ETypoColor } from "@Front/Components/DesignSystem/Typography"; import Typography, { ETypo, ETypoColor } from "@Front/Components/DesignSystem/Typography";
import useHoverable from "@Front/Hooks/useHoverable"; import useHoverable from "@Front/Hooks/useHoverable";
import { ITabValue } from ".."; import { ITabValue } from "..";
import { ExclamationCircleIcon } from "@heroicons/react/24/outline";
export type ITab = { export type ITab = {
label: React.ReactNode; label: React.ReactNode;
}; };
@ -11,6 +12,7 @@ export type IProps<T> = {
onSelect: (value: ITabValue<T>) => void; onSelect: (value: ITabValue<T>) => void;
value: ITabValue<T>; value: ITabValue<T>;
isSelected: boolean; isSelected: boolean;
hasWarning?: boolean;
} & ITab; } & ITab;
export default function HorizontalTabs<T>(props: IProps<T>) { export default function HorizontalTabs<T>(props: IProps<T>) {
@ -29,6 +31,7 @@ export default function HorizontalTabs<T>(props: IProps<T>) {
color={!isHovered && !props.isSelected ? ETypoColor.TABS_CONTRAST_DEFAULT : ETypoColor.TABS_CONTRAST_ACTIVATED}> color={!isHovered && !props.isSelected ? ETypoColor.TABS_CONTRAST_DEFAULT : ETypoColor.TABS_CONTRAST_ACTIVATED}>
{props.label} {props.label}
</Typography> </Typography>
{props.hasWarning && <ExclamationCircleIcon width="24" height="24" color="var(--tabs-contrast-warning)" />}
</div> </div>
); );
} }

View File

@ -8,11 +8,12 @@ import useOpenable from "@Front/Hooks/useOpenable";
export type ITabValue<T> = T & { export type ITabValue<T> = T & {
id: unknown; id: unknown;
} };
type ITabInternal<T> = ITab & { type ITabInternal<T> = ITab & {
key?: string; key?: string;
value: ITabValue<T>; value: ITabValue<T>;
hasWarning?: boolean;
}; };
type IProps<T> = { type IProps<T> = {
@ -100,6 +101,7 @@ export default function Tabs<T>({ onSelect, tabs: propsTabs }: IProps<T>) {
value={element.value} value={element.value}
onSelect={handleSelect} onSelect={handleSelect}
isSelected={element.value.id === selectedTab.id} isSelected={element.value.id === selectedTab.id}
hasWarning={element.hasWarning}
/> />
))} ))}
</div> </div>
@ -112,6 +114,7 @@ export default function Tabs<T>({ onSelect, tabs: propsTabs }: IProps<T>) {
value={element.value} value={element.value}
onSelect={handleSelect} onSelect={handleSelect}
isSelected={element.value.id === selectedTab.id} isSelected={element.value.id === selectedTab.id}
hasWarning={element.hasWarning}
/> />
))} ))}
</div> </div>

View File

@ -14,6 +14,7 @@ import Link from "next/link";
import NoDocument from "./NoDocument"; import NoDocument from "./NoDocument";
import DocumentTables from "./DocumentTables"; import DocumentTables from "./DocumentTables";
import Folders from "@Front/Api/LeCoffreApi/Notary/Folders/Folders"; import Folders from "@Front/Api/LeCoffreApi/Notary/Folders/Folders";
import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document";
type IProps = { type IProps = {
folder: OfficeFolder; folder: OfficeFolder;
@ -42,6 +43,9 @@ export default function ClientView(props: IProps) {
label: `${customer.contact?.first_name} ${customer.contact?.last_name}`, label: `${customer.contact?.first_name} ${customer.contact?.last_name}`,
key: customer.uid, key: customer.uid,
value: customer, value: customer,
hasWarning:
customer.documents &&
customer.documents.filter((document) => document.document_status === EDocumentStatus.DEPOSITED).length > 0,
})), })),
[customers], [customers],
); );