mirror of
https://github.com/nocobase/nocobase
synced 2024-11-15 07:38:13 +00:00
refactor: formBlockProvider & detailBlockProvider (#3898)
* refactor: formBlockProvider * refactor: detailBlockProvider * fix: bug * fix: bug * fix: bug * fix: bug * refactor: code improve
This commit is contained in:
parent
b111f827ed
commit
fcd2b766cf
@ -9,6 +9,9 @@ import { RecordProvider } from '../record-provider';
|
||||
import { BlockProvider, useBlockRequestContext } from './BlockProvider';
|
||||
import { TemplateBlockProvider } from './TemplateBlockProvider';
|
||||
import { useParsedFilter } from './hooks';
|
||||
import { useCollectionManager_deprecated } from '../collection-manager';
|
||||
import { useCollectionRecordData } from '../data-source';
|
||||
import { useDesignable } from '../schema-component';
|
||||
|
||||
/**
|
||||
* @internal
|
||||
@ -67,6 +70,21 @@ const InternalDetailsBlockProvider = (props) => {
|
||||
};
|
||||
|
||||
export const DetailsBlockProvider = withDynamicSchemaProps((props) => {
|
||||
const record = useCollectionRecordData();
|
||||
const { association, dataSource } = props;
|
||||
const { getCollection } = useCollectionManager_deprecated(dataSource);
|
||||
const { __collection } = record || {};
|
||||
const { designable } = useDesignable();
|
||||
const collection = props.collection || getCollection(association, dataSource).name;
|
||||
let detailFlag = true;
|
||||
if (!designable && __collection) {
|
||||
detailFlag = __collection === collection;
|
||||
}
|
||||
|
||||
if (!detailFlag) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<TemplateBlockProvider>
|
||||
<BlockProvider name="details" {...props}>
|
||||
|
Loading…
Reference in New Issue
Block a user