From a93ea48a687a52a10a54dceb262497790422aec2 Mon Sep 17 00:00:00 2001 From: abilpraju-aot <abil.raju@aot-technologies.com> Date: Mon, 12 Aug 2024 06:49:32 -0700 Subject: [PATCH] dashboard seperete route --- .../src/components/PrivateRoute.jsx | 152 ++++++++++-------- 1 file changed, 83 insertions(+), 69 deletions(-) diff --git a/forms-flow-web/src/components/PrivateRoute.jsx b/forms-flow-web/src/components/PrivateRoute.jsx index c26b3dda3b..e28b0c65db 100644 --- a/forms-flow-web/src/components/PrivateRoute.jsx +++ b/forms-flow-web/src/components/PrivateRoute.jsx @@ -1,7 +1,7 @@ /* eslint-disable no-unused-vars */ -import React, { useEffect, Suspense, lazy, useMemo,useCallback } from "react"; +import React, { useEffect, Suspense, lazy, useMemo, useCallback } from "react"; import { Route, Switch, Redirect, useParams } from "react-router-dom"; -import { useDispatch, useSelector} from "react-redux"; +import { useDispatch, useSelector } from "react-redux"; import { BASE_ROUTE, DRAFT_ENABLED, @@ -87,10 +87,7 @@ const PrivateRoute = React.memo((props) => { const viewSubmissions = userRoles.includes("view_submissions"); const viewTasks = userRoles.includes("view_tasks"); const manageTasks = userRoles.includes("manage_tasks"); - const viewDashboards = userRoles.includes("view_dashbaords"); - - - + const viewDashboards = userRoles.includes("view_dashboards"); const authenticate = (instance, store) => { setKcInstance(instance); @@ -166,85 +163,103 @@ const PrivateRoute = React.memo((props) => { }, [tenantId, props.store, dispatch]); useEffect(() => { - if (kcInstance ) { + if (kcInstance) { const lang = kcInstance?.userData?.locale || tenant?.tenantData?.details?.locale || selectedLanguage || LANGUAGE; - dispatch(setLanguage(lang)); + dispatch(setLanguage(lang)); } }, [kcInstance, tenant?.tenantData]); const DesignerRoute = useMemo( () => ({ component: Component, ...rest }) => - ( - <Route - {...rest} - render={(props) => - createDesigns || viewDesigns ? ( - <Component {...props} /> - ) : ( - <AccessDenied userRoles={userRoles} /> - ) - } - /> - ), + ( + <Route + {...rest} + render={(props) => + createDesigns || viewDesigns ? ( + <Component {...props} /> + ) : ( + <AccessDenied userRoles={userRoles} /> + ) + } + /> + ), + [userRoles] + ); + + const DashBoardRoute = useMemo( + () => + ({ component: Component, ...rest }) => + ( + <Route + {...rest} + render={(props) => + viewDashboards ? ( + <Component {...props} /> + ) : ( + <AccessDenied userRoles={userRoles} /> + ) + } + /> + ), [userRoles] ); const ReviewerRoute = useMemo( () => ({ component: Component, ...rest }) => - ( - <Route - {...rest} - render={(props) => - viewTasks || manageTasks || viewDashboards ? ( - <Component {...props} /> - ) : ( - <AccessDenied userRoles={userRoles} /> - ) - } - /> - ), + ( + <Route + {...rest} + render={(props) => + viewTasks || manageTasks || viewDashboards ? ( + <Component {...props} /> + ) : ( + <AccessDenied userRoles={userRoles} /> + ) + } + /> + ), [userRoles] ); const ClientReviewerRoute = useMemo( () => ({ component: Component, ...rest }) => - ( - <Route - {...rest} - render={(props) => - viewSubmissions ? ( - <Component {...props} /> - ) : ( - <AccessDenied userRoles={userRoles} /> - ) - } - /> - ), + ( + <Route + {...rest} + render={(props) => + viewSubmissions ? ( + <Component {...props} /> + ) : ( + <AccessDenied userRoles={userRoles} /> + ) + } + /> + ), [userRoles] ); const DraftRoute = useMemo( () => ({ component: Component, ...rest }) => - ( - <Route - {...rest} - render={(props) => - DRAFT_ENABLED && viewSubmissions ? ( - <Component {...props} /> - ) : ( - <AccessDenied userRoles={userRoles} /> - ) - } - /> - ), + ( + <Route + {...rest} + render={(props) => + DRAFT_ENABLED && viewSubmissions ? ( + <Component {...props} /> + ) : ( + <AccessDenied userRoles={userRoles} /> + ) + } + /> + ), [userRoles] ); @@ -281,13 +296,13 @@ const PrivateRoute = React.memo((props) => { /> )} {ENABLE_DASHBOARDS_MODULE && ( - <ReviewerRoute + <DashBoardRoute path={`${BASE_ROUTE}metrics`} component={DashboardPage} /> )} {ENABLE_DASHBOARDS_MODULE && ( - <ReviewerRoute + <DashBoardRoute path={`${BASE_ROUTE}insights`} component={InsightsPage} /> @@ -300,16 +315,15 @@ const PrivateRoute = React.memo((props) => { )} <Route exact path={BASE_ROUTE}> - {userRoles.length && ( - <Redirect - to={ - viewTasks || manageTasks - ? `${redirecUrl}task` - : `${redirecUrl}form` - } - /> -)} - + {userRoles.length && ( + <Redirect + to={ + viewTasks || manageTasks + ? `${redirecUrl}task` + : `${redirecUrl}form` + } + /> + )} </Route> <Route path="/404" exact={true} component={NotFound} /> <Redirect from="*" to="/404" /> @@ -322,4 +336,4 @@ const PrivateRoute = React.memo((props) => { ); }); -export default PrivateRoute; \ No newline at end of file +export default PrivateRoute;