import {User} from "@/interfaces/user"; import {Tab} from "@headlessui/react"; import clsx from "clsx"; import CodeList from "./CodeList"; import DiscountList from "./DiscountList"; import ExamList from "./ExamList"; import GroupList from "./GroupList"; import PackageList from "./PackageList"; import UserList from "./UserList"; import {checkAccess} from "@/utils/permissions"; import usePermissions from "@/hooks/usePermissions"; export default function Lists({user}: {user: User}) { const {permissions} = usePermissions(user?.id || ""); return ( clsx( "w-full rounded-lg py-2.5 text-sm font-medium leading-5 text-mti-purple-light", "ring-white ring-opacity-60 ring-offset-2 ring-offset-mti-purple-light focus:outline-none focus:ring-2", "transition duration-300 ease-in-out", selected ? "bg-white shadow" : "text-blue-100 hover:bg-white/[0.12] hover:text-mti-purple-dark", ) }> User List {checkAccess(user, ["developer", "admin", "corporate", "mastercorporate", "teacher"]) && ( clsx( "w-full rounded-lg py-2.5 text-sm font-medium leading-5 text-mti-purple-light", "ring-white ring-opacity-60 ring-offset-2 ring-offset-mti-purple-light focus:outline-none focus:ring-2", "transition duration-300 ease-in-out", selected ? "bg-white shadow" : "text-blue-100 hover:bg-white/[0.12] hover:text-mti-purple-dark", ) }> Exam List )} clsx( "w-full rounded-lg py-2.5 text-sm font-medium leading-5 text-mti-purple-light", "ring-white ring-opacity-60 ring-offset-2 ring-offset-mti-purple-light focus:outline-none focus:ring-2", "transition duration-300 ease-in-out", selected ? "bg-white shadow" : "text-blue-100 hover:bg-white/[0.12] hover:text-mti-purple-dark", ) }> Group List {checkAccess(user, ["developer", "admin", "corporate"]) && ( clsx( "w-full rounded-lg py-2.5 text-sm font-medium leading-5 text-mti-purple-light", "ring-white ring-opacity-60 ring-offset-2 ring-offset-mti-purple-light focus:outline-none focus:ring-2", "transition duration-300 ease-in-out", selected ? "bg-white shadow" : "text-blue-100 hover:bg-white/[0.12] hover:text-mti-purple-dark", ) }> Code List )} {checkAccess(user, ["developer", "admin"]) && ( clsx( "w-full rounded-lg py-2.5 text-sm font-medium leading-5 text-mti-purple-light", "ring-white ring-opacity-60 ring-offset-2 ring-offset-mti-purple-light focus:outline-none focus:ring-2", "transition duration-300 ease-in-out", selected ? "bg-white shadow" : "text-blue-100 hover:bg-white/[0.12] hover:text-mti-purple-dark", ) }> Package List )} {checkAccess(user, ["developer", "admin"]) && ( clsx( "w-full rounded-lg py-2.5 text-sm font-medium leading-5 text-mti-purple-light", "ring-white ring-opacity-60 ring-offset-2 ring-offset-mti-purple-light focus:outline-none focus:ring-2", "transition duration-300 ease-in-out", selected ? "bg-white shadow" : "text-blue-100 hover:bg-white/[0.12] hover:text-mti-purple-dark", ) }> Discount List )} {checkAccess(user, ["developer"]) && ( )} {checkAccess(user, ["developer", "admin", "corporate", "mastercorporate"], permissions, "viewCodes") && ( )} {checkAccess(user, ["developer", "admin"]) && ( )} {checkAccess(user, ["developer", "admin"]) && ( )} ); }