37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import { redirect } from "next/navigation";
|
|
|
|
import { getCurrentAuthContext } from "@/modules/core/server/auth";
|
|
import { hasPermission } from "@/modules/core/server/permissions";
|
|
import { readData } from "@/modules/core/server/store";
|
|
import { BedsWorkspace } from "@/modules/facilities/components/BedsWorkspace";
|
|
|
|
export default async function BedsPage(): Promise<React.ReactElement> {
|
|
const context = await getCurrentAuthContext();
|
|
if (!context) {
|
|
redirect("/login");
|
|
}
|
|
|
|
if (!hasPermission(context.permissions, "facility:read")) {
|
|
redirect("/app/dashboard");
|
|
}
|
|
|
|
const data = await readData();
|
|
const organizationId = context.organization?.id;
|
|
const rooms = organizationId ? data.rooms.filter((room) => room.organizationId === organizationId) : data.rooms;
|
|
const beds = organizationId ? data.beds.filter((bed) => bed.organizationId === organizationId) : data.beds;
|
|
const admissions = organizationId
|
|
? data.admissions.filter((admission) => admission.organizationId === organizationId)
|
|
: data.admissions;
|
|
const elders = organizationId ? data.elders.filter((elder) => elder.organizationId === organizationId) : data.elders;
|
|
|
|
return (
|
|
<BedsWorkspace
|
|
initialAdmissions={admissions}
|
|
initialBeds={beds}
|
|
initialElders={elders}
|
|
initialRooms={rooms}
|
|
permissions={context.permissions}
|
|
/>
|
|
);
|
|
}
|