refacto customer middleware
This commit is contained in:
parent
a8693714b8
commit
255c1bdc23
@ -4,31 +4,31 @@ import Typography, { ITypo } from "../Typography";
|
|||||||
import ChevronIcon from "@Assets/Icons/chevron.svg";
|
import ChevronIcon from "@Assets/Icons/chevron.svg";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
|
|
||||||
export type IBlock = {
|
export type IFolder = {
|
||||||
name: string;
|
name: string;
|
||||||
id: string;
|
id: string;
|
||||||
selected: boolean;
|
selected: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
type IProps = {
|
type IProps = {
|
||||||
blocks: IBlock[];
|
list: IFolder[];
|
||||||
onSelectedBlock: (block: IBlock) => void;
|
onSelectedFolder: (block: IFolder) => void;
|
||||||
};
|
};
|
||||||
export default function BlockList({ blocks, onSelectedBlock }: IProps) {
|
export default function FolderList({ list, onSelectedFolder }: IProps) {
|
||||||
const selectBlock = useCallback(
|
const selectFolder = useCallback(
|
||||||
(e: React.MouseEvent<HTMLDivElement>) => {
|
(e: React.MouseEvent<HTMLDivElement>) => {
|
||||||
onSelectedBlock && onSelectedBlock(blocks.find((block) => block.id === e.currentTarget.id)!);
|
onSelectedFolder && onSelectedFolder(list.find((folder) => folder.id === e.currentTarget.id)!);
|
||||||
},
|
},
|
||||||
[blocks, onSelectedBlock],
|
[list, onSelectedFolder],
|
||||||
);
|
);
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{blocks.map((block) => {
|
{list.map((folder) => {
|
||||||
return (
|
return (
|
||||||
<div onClick={selectBlock} key={block.id} id={block.id}>
|
<div onClick={selectFolder} key={folder.id} id={folder.id}>
|
||||||
<div className={classes["root"]} data-selected={block.selected.toString()}>
|
<div className={classes["root"]} data-selected={folder.selected.toString()}>
|
||||||
<div className={classes["left-side"]}>
|
<div className={classes["left-side"]}>
|
||||||
<Typography typo={ITypo.P_16}>{block.name}</Typography>
|
<Typography typo={ITypo.P_16}>{folder.name}</Typography>
|
||||||
</div>
|
</div>
|
||||||
<Image alt="chevron" src={ChevronIcon} />
|
<Image alt="chevron" src={ChevronIcon} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import Folders from "@Front/Api/LeCoffreApi/Customer/Folders/Folders";
|
import Folders from "@Front/Api/LeCoffreApi/Customer/Folders/Folders";
|
||||||
import BlockList, { IBlock } from "@Front/Components/DesignSystem/BlockList";
|
import FolderList, { IFolder } from "@Front/Components/DesignSystem/BlockList";
|
||||||
import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography";
|
import Typography, { ITypo } from "@Front/Components/DesignSystem/Typography";
|
||||||
import DefaultDoubleSidePage from "@Front/Components/LayoutTemplates/DefaultDoubleSidePage";
|
import DefaultDoubleSidePage from "@Front/Components/LayoutTemplates/DefaultDoubleSidePage";
|
||||||
import { OfficeFolder } from "le-coffre-resources/dist/Customer";
|
import { OfficeFolder } from "le-coffre-resources/dist/Customer";
|
||||||
@ -36,9 +36,9 @@ export default function SelectFolder() {
|
|||||||
getFolders();
|
getFolders();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleSelectBlock = useCallback(
|
const handleSelectFolder = useCallback(
|
||||||
(block: IBlock) => {
|
(folder: IFolder) => {
|
||||||
router.push("/client-dashboard/" + block.id);
|
router.push("/client-dashboard/" + folder.id);
|
||||||
},
|
},
|
||||||
[router],
|
[router],
|
||||||
);
|
);
|
||||||
@ -51,9 +51,9 @@ export default function SelectFolder() {
|
|||||||
<Typography typo={ITypo.H1}>Vos dossiers</Typography>
|
<Typography typo={ITypo.H1}>Vos dossiers</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div className={classes["folders-container"]}>
|
<div className={classes["folders-container"]}>
|
||||||
<BlockList
|
<FolderList
|
||||||
onSelectedBlock={handleSelectBlock}
|
onSelectedFolder={handleSelectFolder}
|
||||||
blocks={folders.map((folder) => {
|
list={folders.map((folder) => {
|
||||||
return {
|
return {
|
||||||
id: folder.uid!,
|
id: folder.uid!,
|
||||||
name: folder.name!,
|
name: folder.name!,
|
||||||
|
@ -21,14 +21,8 @@ export async function middleware(request: NextRequest) {
|
|||||||
if (userDecodedToken.role !== "admin" && userDecodedToken.role !== "super-admin")
|
if (userDecodedToken.role !== "admin" && userDecodedToken.role !== "super-admin")
|
||||||
return NextResponse.redirect(new URL("/404", request.url));
|
return NextResponse.redirect(new URL("/404", request.url));
|
||||||
}
|
}
|
||||||
if (requestUrlPath.startsWith("/folders")) {
|
|
||||||
if (userDecodedToken.role !== "notary" && userDecodedToken.role !== "admin" && userDecodedToken.role !== "super-admin")
|
|
||||||
return NextResponse.redirect(new URL("/404", request.url));
|
|
||||||
}
|
|
||||||
if (requestUrlPath.startsWith("/my-account") && !userDecodedToken) return NextResponse.redirect(new URL("/404", request.url));
|
if (requestUrlPath.startsWith("/my-account") && !userDecodedToken) return NextResponse.redirect(new URL("/404", request.url));
|
||||||
|
if (requestUrlPath.startsWith("/client-dashboard") && !customerDecodedToken) return NextResponse.redirect(new URL("/404", request.url));
|
||||||
if (requestUrlPath.startsWith("/client-dashboard") || request.nextUrl.pathname.split("/")[2] !== customerDecodedToken.customerId)
|
|
||||||
return NextResponse.redirect(new URL("/404", request.url));
|
|
||||||
|
|
||||||
return NextResponse.next();
|
return NextResponse.next();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user