diff --git a/src/components/Tenant/TenantsList.jsx b/src/components/Tenant/TenantsList.jsx index 11867dae..4788d7a2 100644 --- a/src/components/Tenant/TenantsList.jsx +++ b/src/components/Tenant/TenantsList.jsx @@ -125,7 +125,15 @@ const TenantsList = ({ ]; if (isInitialLoading) return ; - if (isError) return
{error.message}
; + if (isError) + return ( +
+
+ +

{error.message}

+
+
+ ); return ( <>
diff --git a/src/pages/Expense/ExpensePage.jsx b/src/pages/Expense/ExpensePage.jsx index a8be4e72..c214a893 100644 --- a/src/pages/Expense/ExpensePage.jsx +++ b/src/pages/Expense/ExpensePage.jsx @@ -80,21 +80,23 @@ const ExpensePage = () => { }; useEffect(() => { - setShowTrigger(true); - setOffcanvasContent( - "Expense Filters", - - ); + if (IsViewAll || IsViewSelf || IsCreatedAble) { + setShowTrigger(true); + setOffcanvasContent( + "Expense Filters", + + ); + } return () => { setShowTrigger(false); setOffcanvasContent("", null); }; - }, []); + }, [IsViewAll, IsViewSelf, IsCreatedAble]); const contextValue = { setViewExpense, @@ -105,16 +107,17 @@ const ExpensePage = () => { return (
- + - {(IsViewAll || IsViewSelf || IsCreatedAble) ? ( + {IsViewAll || IsViewSelf || IsCreatedAble ? ( <>
- { type="button" className="p-1 me-1 m-sm-0 bg-primary rounded-circle" title="Add New Expense" - onClick={() => setManageExpenseModal({ IsOpen: true, expenseId: null })} + onClick={() => + setManageExpenseModal({ + IsOpen: true, + expenseId: null, + }) + } > @@ -142,12 +150,18 @@ const ExpensePage = () => {
- + ) : (
-

Access Denied: You don't have permission to perform this action!

+

+ Access Denied: You don't have permission to perform this action ! +

)} @@ -156,12 +170,16 @@ const ExpensePage = () => { setManageExpenseModal({ IsOpen: null, expenseId: null })} + closeModal={() => + setManageExpenseModal({ IsOpen: null, expenseId: null }) + } > setManageExpenseModal({ IsOpen: null, expenseId: null })} + closeModal={() => + setManageExpenseModal({ IsOpen: null, expenseId: null }) + } /> )} diff --git a/src/pages/Tenant/TenantDetails.jsx b/src/pages/Tenant/TenantDetails.jsx index c704c46f..a2696d1d 100644 --- a/src/pages/Tenant/TenantDetails.jsx +++ b/src/pages/Tenant/TenantDetails.jsx @@ -8,6 +8,8 @@ import GlobalModel from "../../components/common/GlobalModel"; import EditProfile from "../../components/Tenant/EditProfile"; import SubScriptionHistory from "../../components/Tenant/SubScriptionHistory"; import Loader from "../../components/common/Loader"; +import { useHasUserPermission } from "../../hooks/useHasUserPermission"; +import { MANAGE_TENANTS, SUPPER_TENANT } from "../../utils/constants"; const TenantDetailsContext = createContext(); export const useTenantDetailsContext = () => useContext(TenantDetailsContext); @@ -16,19 +18,21 @@ const TenantDetails = ({ tenantId: tenantIdProp, wrapInContainer = true, showBreadcrumb = true, - iTSelf = true + iTSelf = true, }) => { const { tenantId: tenantIdFromUrl } = useParams(); const activeTenantId = tenantIdFromUrl || tenantIdProp; const { data, isLoading, isError, error } = useTenantDetails(activeTenantId); + const ManageTenant = useHasUserPermission(SUPPER_TENANT); + const ModifyTenant = useHasUserPermission(MANAGE_TENANTS); const [editTenant, setEditTenant] = useState(false); const contextValues = useMemo( () => ({ editTenant, setEditTenant }), [editTenant] ); - const tabs = useMemo( - () => [ + const tabs = useMemo(() => { + const allTabs = [ { id: "navs-left-home", label: "Profile", @@ -58,13 +62,37 @@ const TenantDetails = ({
), }, - ], - [data, activeTenantId] - ); - if (!activeTenantId) return
No tenant selected.
; - if (isLoading) return
; - if (isError) return
{error?.message}
; + ]; + return ManageTenant && ModifyTenant + ? allTabs + : [allTabs[0], allTabs[allTabs.length - 1]]; + }, [data, activeTenantId, ManageTenant, ModifyTenant]); + if (!activeTenantId) return
No tenant selected.
; + if (isLoading) + return ( +
+ +
+ ); + if (isError) + return ( +
+ {error.status === 403 ? ( +
+ +

+ Access Denied: You don't have permission to perform this action! +

+
+ ) : ( +
+ +

{error.message}

+
+ )} +
+ ); const Shell = ({ children }) => wrapInContainer ? (