Merge branch 'dev' into staging
This commit is contained in:
commit
5d09211de0
@ -23,8 +23,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bottom-container {
|
.bottom-container {
|
||||||
position: fixed;
|
margin-top: auto;
|
||||||
bottom: 0;
|
|
||||||
width: 336px;
|
width: 336px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
|
@ -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],
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user