import StaffList from "./staff-list"; import { ObjectType, RolePerms } from "@nice/common" import { Icon } from "@nice/iconer" import StaffModal from "./staff-modal"; import { createContext, useEffect, useMemo, useState } from "react"; import { useAuth } from "@web/src/providers/auth-provider"; import { Button } from "antd"; import DepartmentSelect from "../department/department-select"; import { FormInstance, useForm } from "antd/es/form/Form"; import FixedHeader from "../../layout/fix-header"; export const StaffEditorContext = createContext<{ domainId: string, modalOpen: boolean, setDomainId: React.Dispatch>, setModalOpen: React.Dispatch>, editId: string, setEditId: React.Dispatch>, form: FormInstance, formLoading: boolean, setFormLoading: React.Dispatch>, canManageAnyStaff: boolean }>({ domainId: undefined, modalOpen: false, setDomainId: undefined, setModalOpen: undefined, editId: undefined, setEditId: undefined, form: undefined, formLoading: undefined, setFormLoading: undefined, canManageAnyStaff: false }); export default function StaffEditor() { const [form] = useForm() const [domainId, setDomainId] = useState(); const [modalOpen, setModalOpen] = useState(false); const [editId, setEditId] = useState() const { user, hasSomePermissions } = useAuth() const [formLoading, setFormLoading] = useState() useEffect(() => { if (user) { setDomainId(user.domainId) } }, [user]) const canManageStaff = useMemo(() => { return hasSomePermissions(RolePerms.MANAGE_ANY_STAFF, RolePerms.MANAGE_DOM_STAFF) }, [user]) const canManageAnyStaff = useMemo(() => { return hasSomePermissions(RolePerms.MANAGE_ANY_STAFF) }, [user]) return
setDomainId(value as string)} disabled={!canManageAnyStaff} value={domainId} className="w-48" domain={true}> {canManageStaff && }
}