import React, { createContext, useContext, useState, useMemo } from "react"; import { useParams } from "react-router-dom"; import Breadcrumb from "../../components/common/Breadcrumb"; import Profile from "../../components/Tenant/Profile"; import { useTenantDetails } from "../../hooks/useTenant"; import { ComingSoonPage } from "../Misc/ComingSoonPage"; import GlobalModel from "../../components/common/GlobalModel"; import EditProfile from "../../components/Tenant/EditProfile"; import SubScriptionHistory from "../../components/Tenant/SubScriptionHistory"; import { SpinnerLoader } 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); const TenantDetails = ({ tenantId: tenantIdProp, wrapInContainer = true, showBreadcrumb = 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 allTabs = [ { id: "navs-left-home", label: "Profile", icon: "bx bx-user-circle", iconSize: "bx-sm", content: , }, { id: "navs-left-bill", label: "Bills and Plan", icon: "bx bx-receipt", iconSize: "bx-sm", content: (
), }, { id: "navs-left-messages", label: "Messages", icon: "bx bx-message-rounded", iconSize: "bx-sm", content: (
), }, ]; return ManageTenant ? 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 ? (
{children}
) : ( <>{children} ); return ( <> {showBreadcrumb && ( )}
    {tabs.map((tab, index) => (
  • ))}
{tabs.map((tab, index) => (
{tab.content}
))}
{editTenant && ( setEditTenant(false)} > setEditTenant(false)} /> )} ); }; export default TenantDetails;