import type { LoaderFunctionArgs } from "@remix-run/node"; import { Form, Outlet, json, redirect, useNavigation } from "@remix-run/react"; import { LogOutIcon } from "lucide-react"; import { Button } from "~/components/ui/button"; import { isAdmin, isMemberBasic, isMemberHasOTP, isMemberNotActive, isMemberPlatinum, } from "~/lib/middleware"; import RegisterCarousel from "../auth/components/RegisterCarousel"; export async function loader({ request }: LoaderFunctionArgs) { const isUserAdmin = await isAdmin(request); const isPlatinum = await isMemberPlatinum(request); const isMember = await isMemberBasic(request); const isNonActive = await isMemberNotActive(request); const isMemberOTP = await isMemberHasOTP(request); if (isUserAdmin) { return redirect("/dashboard"); } if (isPlatinum || isMember) { return redirect("/app"); } if (isMemberOTP) { return redirect("/otp"); } if (!isNonActive) { throw json( { message: "Anda belum terdaftar sebagai anggota koperasi." }, { status: 401, statusText: "Anda tidak memiliki akses ke halaman ini" }, ); } return null; } export default function MemberLayout() { const navigation = useNavigation(); return (
); }