Track HiveGrid Cloud planning reference
This commit is contained in:
1 parent
b3d5ea6764
commit
e341c5938a
5784 files changed
+1104929
-3
No files matched your search
@@ -0,0 +1,43 @@
|
||||
import { useMatches } from "react-router";
|
||||
import { TenantSimple } from "../db/tenants.db.server";
|
||||
import { UserWithoutPassword } from "../db/users.db.server";
|
||||
import { AppLoaderData } from "./useAppData";
|
||||
import { AdminLoaderData } from "./useAdminData";
|
||||
import { EntityWithDetails } from "../db/entities/entities.db.server";
|
||||
import { GroupWithDetails } from "../db/permissions/groups.db.server";
|
||||
import { OnboardingSessionWithDetails } from "~/modules/onboarding/db/onboardingSessions.db.server";
|
||||
import { DefaultPermission } from "~/application/dtos/shared/DefaultPermissions";
|
||||
import { EntityGroupWithDetails } from "../db/entities/entityGroups.db.server";
|
||||
import { TenantTypeWithDetails } from "../db/tenants/tenantTypes.db.server";
|
||||
import { PlanFeatureUsageDto } from "~/application/dtos/subscriptions/PlanFeatureUsageDto";
|
||||
import type { ProductAccessDecision } from "@toolctrl/entitlements";
|
||||
|
||||
export type AppOrAdminData = {
|
||||
// i18n: Record<string, Language>;
|
||||
user: UserWithoutPassword;
|
||||
myTenants: TenantSimple[];
|
||||
currentTenant: TenantSimple | null;
|
||||
allRoles: { id: string; name: string; description: string }[];
|
||||
// roles: UserRoleWithPermission[];
|
||||
permissions: DefaultPermission[];
|
||||
entities: EntityWithDetails[];
|
||||
entityGroups: EntityGroupWithDetails[];
|
||||
isSuperUser: boolean;
|
||||
isSuperAdmin: boolean;
|
||||
myGroups: GroupWithDetails[];
|
||||
lng?: string;
|
||||
onboardingSession: OnboardingSessionWithDetails | null;
|
||||
tenantTypes: TenantTypeWithDetails[];
|
||||
credits?: PlanFeatureUsageDto | undefined;
|
||||
productAccess?: Record<string, ProductAccessDecision>;
|
||||
};
|
||||
|
||||
export function useAppOrAdminData(): AppOrAdminData {
|
||||
const appPaths: string[] = ["routes/app.$tenant", "routes/app"];
|
||||
const appData = (useMatches().find((f) => appPaths.includes(f.id.toLowerCase()))?.data ?? {}) as AppLoaderData;
|
||||
|
||||
const adminPaths: string[] = ["routes/admin", "routes/admin.__host", "routes/dashboard"];
|
||||
const adminData = (useMatches().find((f) => adminPaths.includes(f.id.toLowerCase()) || Boolean((f.data as Partial<AdminLoaderData> | undefined)?.isSuperAdmin))?.data ?? {}) as AdminLoaderData;
|
||||
const appOrAdminData = appData.user ? appData : adminData;
|
||||
return appOrAdminData;
|
||||
}
|
||||
Reference in new issue
Block a user