diff --git a/packages/client/src/acl/Configuration/MenuConfigure.tsx b/packages/client/src/acl/Configuration/MenuConfigure.tsx index afe443c5ca..e5de69952d 100644 --- a/packages/client/src/acl/Configuration/MenuConfigure.tsx +++ b/packages/client/src/acl/Configuration/MenuConfigure.tsx @@ -1,15 +1,34 @@ -import { Checkbox, Table } from 'antd'; -import React from 'react'; +import { Checkbox, message, Table } from 'antd'; +import React, { useState } from 'react'; import { useMenuItems } from '.'; -import { useRecord } from '../..'; -import { useAPIClient } from '../../api-client'; +import { useAPIClient, useRequest } from '../../api-client'; +import { useRecord } from '../../record-provider'; export const MenuConfigure = () => { const record = useRecord(); const api = useAPIClient(); const items = useMenuItems(); + const [uids, setUids] = useState([]); + const { loading, refresh } = useRequest( + { + resource: 'roles.menuUiSchemas', + resourceOf: record.name, + action: 'list', + params: { + paginate: false, + }, + }, + { + onSuccess(data) { + setUids(data?.data?.map((schema) => schema['x-uid']) || []); + }, + }, + ); + const resource = api.resource('roles.menuUiSchemas', record.name); + const allChecked = items.length === uids.length; return (