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