base template for Notary dashboard

This commit is contained in:
Hugo Lextrait 2023-04-06 11:40:02 +02:00
parent 8240bb780a
commit e43320e90b
10 changed files with 112 additions and 10 deletions

View File

@ -12,9 +12,9 @@ type IState = {};
export default class FolderList extends React.Component<IProps, IState> { export default class FolderList extends React.Component<IProps, IState> {
public override render(): JSX.Element { public override render(): JSX.Element {
return <div className={classes["root"]}> return <div className={classes["root"]}>
{this.props.folders.map((folder) => { {this.props.folders.map((folder, key) => {
return <FolderContainer folder={folder} />; return <FolderContainer folder={folder} key={key}/>;
})}; })};
</div>; </div>;
} }

View File

@ -1,4 +1,11 @@
@import "@Themes/constants.scss"; @import "@Themes/constants.scss";
.root { .root {
min-height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
.searchbar{
padding: 40px 24px 24px 24px;
}
} }

View File

@ -12,7 +12,6 @@ type IState = {
}; };
export default class FolderListContainer extends React.Component<IProps, IState> { export default class FolderListContainer extends React.Component<IProps, IState> {
//coinstructor
public constructor(props: IProps) { public constructor(props: IProps) {
super(props); super(props);
this.state = { this.state = {
@ -23,13 +22,20 @@ export default class FolderListContainer extends React.Component<IProps, IState>
public override render(): JSX.Element { public override render(): JSX.Element {
return <div className={classes["root"]}> return <div className={classes["root"]}>
<SearchBar folders={this.props.folders} onChange={this.filterFolders} /> <div>
<FolderList folders={this.state.filteredFolders}/> <div className={classes["searchbar"]}>
<Button fullwidth={"true"}>Créer un dossier</Button> <SearchBar folders={this.props.folders} onChange={this.filterFolders} />
</div>
<FolderList folders={this.state.filteredFolders} />
</div>
<div>
<Button fullwidth={"true"}>Créer un dossier</Button>
</div>
</div>; </div>;
} }
private filterFolders(folders: IFolder[]) :IFolder[] { private filterFolders(folders: IFolder[]): IFolder[] {
this.setState({ filteredFolders: folders }) this.setState({ filteredFolders: folders })
return folders; return folders;
} }

View File

@ -15,8 +15,8 @@ type IFolderInformation = {
export default class InformationBox extends React.Component<IProps, IState> { export default class InformationBox extends React.Component<IProps, IState> {
public override render(): JSX.Element { public override render(): JSX.Element {
return <div className={classes["root"]}> return <div className={classes["root"]}>
{this.props.informations.map((information) => { {this.props.informations.map((information, key) => {
const output = <div className={classes["information"]}> const output = <div className={classes["information"] } key={key}>
<span className={classes["label"]}>{information.label}</span> <span className={classes["label"]}>{information.label}</span>
<span className={classes["value"]}>{information.value}</span> <span className={classes["value"]}>{information.value}</span>
</div>; </div>;

View File

@ -0,0 +1,14 @@
@import "@Themes/constants.scss";
.root {
.content {
.left-side {
max-width: 389px;
height: calc(100vh - 83px);
}
.right-side {
width: 100%;
}
}
}

View File

@ -0,0 +1,42 @@
import 'reflect-metadata';
import React, { ReactNode } from "react";
import classes from "./classes.module.scss";
import { IFolder } from "@Front/Components/DesignSystem/SearchBar";
import { folders } from "@Front/Components/Layouts/DesignSystem/dummyData"
import FolderListContainer from "@Front/Components/DesignSystem/FolderListContainer";
import Header from "@Front/Components/DesignSystem/Header";
import Version from "@Front/Components/DesignSystem/Version";
type IProps = {
title: string;
children?: ReactNode;
};
type IState = {
folders: IFolder[];
};
export default class DefaultNotaryDashboard extends React.Component<IProps, IState> {
public static defaultProps = {
scrollTop: 0,
};
public constructor(props: IProps) {
super(props);
this.state = {
folders: folders,
};
}
public override render(): JSX.Element {
return (
<div className={classes["root"]}>
<Header isUserConnected={true} />
<div className={classes["content"]}>
<div className={classes["left-side"]}><FolderListContainer folders={this.state.folders} /></div>
<div className={classes["right-side"]}>{this.props.children}</div>
</div>
<Version />
</div>
);
}
}

View File

@ -2,6 +2,7 @@ import React, { ReactNode } from "react";
import classes from "./classes.module.scss"; import classes from "./classes.module.scss";
import Header from "@Front/Components/DesignSystem/Header"; import Header from "@Front/Components/DesignSystem/Header";
import Version from "@Front/Components/DesignSystem/Version"; import Version from "@Front/Components/DesignSystem/Version";
import 'reflect-metadata';
type IProps = { type IProps = {
title: string; title: string;
@ -21,7 +22,7 @@ export default class DefaultTemplate extends React.Component<IProps, IState> {
public override render(): JSX.Element { public override render(): JSX.Element {
return ( return (
<> <>
<Header isUserConnected={true}/> <Header isUserConnected={true} />
<div className={classes["root"]}> <div className={classes["root"]}>
<div className={classes["content"]}>{this.props.children}</div> <div className={classes["content"]}>{this.props.children}</div>
</div> </div>

View File

@ -0,0 +1,16 @@
.root {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
.title {
margin: 32px 0;
text-align: center;
}
.forget-password {
margin-top: 32px;
margin-bottom: 8px;
}
}

View File

@ -0,0 +1,11 @@
import DefaultNotaryDashboard from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard";
import BasePage from "../Base";
export default class FolderInfomations extends BasePage {
public override render(): JSX.Element {
return (
<DefaultNotaryDashboard title={""}>
</DefaultNotaryDashboard>
);
}
}

View File

@ -0,0 +1,5 @@
import FolderInfomations from "@Front/Components/Layouts/FolderInfomations";
export default function Route() {
return <FolderInfomations />;
}