import { useDispatch, useSelect } from '@wordpress/data' import { __ } from '@wordpress/i18n' import { store, store_name } from '../../../store/backend' import { Form } from '../../components/Form/Form' import { createFormFromModel } from '../../components/Form/lib/createForm' import { createFormMenuSectionsFromModel } from '../../components/Form/utils/utils' import { useSidebar } from '../../components/Sidebar/SidebarContext' import { getCellActions } from '../../components/WebbaDataTable/helpers/getCellActions' import { useWbkTable } from '../../components/WebbaDataTable/hooks/useWbkTable' import { Menu } from '../../components/WebbaDataTable/Menu' import { Table } from '../../components/WebbaDataTable/Table' import { generateColumnDefsFromModel } from '../../components/WebbaDataTable/utils' import { staffMembersModel } from './model' import './StaffMembersScreen.scss' import { SuccessMessage } from '../../components/SuccessMessage/SuccessMessage' import { FailedMessage } from '../../components/FailedMessage/FailedMessage' import { isForbidden } from '../../utils/errors' import { ServiceNames } from '../../components/WebbaDataTable/cells/ServiceNames/ServiceNames' import { LocationNames } from '../../components/WebbaDataTable/cells/LocationNames/LocationNames' import { ServiceImageCell } from '../../components/WebbaDataTable/cells/ServiceImageCell/ServiceImageCell' import { ProFeatuerWrapper } from '../../components/ProFeatuerWrapper/ProFeatuerWrapper' export const StaffMembersScreen = () => { const columns = generateColumnDefsFromModel(staffMembersModel, { photo: { cell: ServiceImageCell }, services: { cell: ServiceNames }, locations: { cell: LocationNames } }) const form = createFormFromModel(staffMembersModel) const formSections = createFormMenuSectionsFromModel({ model: staffMembersModel, form, modelName: 'staff_members', }) const { deleteItems, addItem, setToastNotification } = useDispatch(store) const { staffMembers, isLoading } = useSelect( (select) => ({ staffMembers: select(store).getItems('staff_members'), isLoading: select(store).getLoading(), }), [] ) const sidebar = useSidebar() const { plugin_url, settings, plan_map } = useSelect( // @ts-ignore (select) => select(store_name).getPreset(), [] ) const isProPlan = plan_map && ['premium', 'pro'].some((plan) => plan_map[plan] === true) const table = useWbkTable({ columns, data: staffMembers, selectable: true, isAdmin: settings?.is_admin, renderMenu: ({ cell }) => { const { onDelete, onDuplicate, onSubmit } = getCellActions({ cell, collectionName: 'staff_members', }) return (