Files
HiveGrid-Wireframes/hivegrid-cloud/apps/web/app/utils/data/useAdminTenantData.ts
T

26 lines
967 B
TypeScript

import { Tenant, TenantUser } from "@toolctrl/db/prisma-browser";
import { useMatches } from "react-router";
import { getTranslations } from "~/locale/i18next.server";
import { getTenantWithUsers } from "../db/tenants.db.server";
import { adminPath } from "../app/CanonicalUrlUtils";
export type AdminTenantLoaderData = {
title: string;
tenant: (Tenant & { users: TenantUser[] }) | null;
};
export function useAdminTenantData(id?: string): AdminTenantLoaderData {
const canonicalPath = adminPath(`accounts/${id}`, { mode: "host-aware" });
return (useMatches().find((f) => f.pathname === canonicalPath)?.data ?? {}) as AdminTenantLoaderData;
}
export async function loadAdminTenantData(request: Request, id?: string) {
const { t } = await getTranslations(request);
const tenant = await getTenantWithUsers(id);
const data: AdminTenantLoaderData = {
title: `${t("models.tenant.object")} | ${process.env.APP_NAME}`,
tenant,
};
return data;
}