From f5995ce19d1faf55740c3a743010a1ecdb06b6cd Mon Sep 17 00:00:00 2001 From: eglehelms Date: Thu, 8 Dec 2022 14:33:23 +0100 Subject: [PATCH] useScopedRedirect --- src/containers/internal/views/users/index.tsx | 2 +- src/utils/use-scoped-redirect.ts | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/utils/use-scoped-redirect.ts diff --git a/src/containers/internal/views/users/index.tsx b/src/containers/internal/views/users/index.tsx index c8e5302..433a68d 100644 --- a/src/containers/internal/views/users/index.tsx +++ b/src/containers/internal/views/users/index.tsx @@ -118,7 +118,7 @@ export const Users = () => {
User Name
-
Managed resource
+
Scope
 
{!hasValue(users) ? ( diff --git a/src/utils/use-scoped-redirect.ts b/src/utils/use-scoped-redirect.ts new file mode 100644 index 0000000..133816e --- /dev/null +++ b/src/utils/use-scoped-redirect.ts @@ -0,0 +1,23 @@ +import { useEffect } from "react"; +import { useNavigate } from "react-router-dom"; + +import { toastError } from "src/store"; + +import type { IMessage, Scope, UserData } from "src/store/types"; + +export const useScopedRedirect = ( + user: UserData, + access: Scope, + redirect: string, + message?: IMessage +) => { + const navigate = useNavigate(); + + useEffect(() => { + if (access >= user.access) { + if (message) toastError(message); + + navigate(redirect); + } + }, [user]); +};