import { useEffect, useState } from 'react' import { invokeWebApiWrapperAsync } from '../../components/factory' import LoaderPortal from '../../components/LoaderPortal' import { EditableTable, makeActionHandler, makeColumn, makeStringSorter } from '../../components/Table' import { AdminPermissionService } from '../../services/api' import { arrayOrDefault } from '../../utils' import { min1 } from '../../utils/validationRules' const columns = [ makeColumn('Название', 'name', { editable: true, sorter: makeStringSorter('name'), isRequired: true, formItemRules: min1, }), makeColumn('Описание', 'description', { editable: true, sorter: makeStringSorter('description'), }), ] export const PermissionController = () => { const [showLoader, setShowLoader] = useState(false) const [permissions, setPermissions] = useState([]) const updateTable = async () => invokeWebApiWrapperAsync( async () => { const permission = await AdminPermissionService.getAll() setPermissions(arrayOrDefault(permission)) }, setShowLoader, `Не удалось загрузить список прав` ) useEffect(() => updateTable(), []) const handlerProps = { service: AdminPermissionService, setLoader: setShowLoader, errorMsg: `Не удалось выполнить операцию`, onComplete: updateTable } return ( ) } export default PermissionController