fix(record-picker): supports adding sub-collection records (#1573)
* fix: inherited collection block is not displayed when adding form from the data selector * fix: judge whether the record is null logical error --------- Co-authored-by: katherinehhh <katherine_15995@163.com>
This commit is contained in:
parent
9e7e6a6051
commit
3cf06be893
@ -49,20 +49,30 @@ const InternalFormBlockProvider = (props) => {
|
||||
);
|
||||
};
|
||||
|
||||
const useIsEmptyRecord = () => {
|
||||
const record = useRecord();
|
||||
const keys = Object.keys(record);
|
||||
if (keys.includes('__parent')) {
|
||||
return keys.length > 1;
|
||||
}
|
||||
return keys.length > 0;
|
||||
};
|
||||
|
||||
export const FormBlockProvider = (props) => {
|
||||
const record = useRecord();
|
||||
const { collection } = props;
|
||||
const { __collection } = record;
|
||||
const currentCollection = useCollection();
|
||||
const { designable } = useDesignable();
|
||||
const isEmptyRecord = useIsEmptyRecord();
|
||||
let detailFlag = false;
|
||||
if (Object.keys(record).length > 0) {
|
||||
if (isEmptyRecord) {
|
||||
detailFlag = true;
|
||||
if (!designable && __collection) {
|
||||
detailFlag = __collection === collection;
|
||||
}
|
||||
}
|
||||
const createFlag = (currentCollection.name === collection && !Object.keys(record).length) || !currentCollection.name;
|
||||
const createFlag = (currentCollection.name === collection && !isEmptyRecord) || !currentCollection.name;
|
||||
return (
|
||||
(detailFlag || createFlag) && (
|
||||
<BlockProvider {...props} block={'form'}>
|
||||
|
Loading…
Reference in New Issue
Block a user