fix: the issue of current and association collection fields affecting each other in configuration (#5343)

This commit is contained in:
Katherine 2024-09-30 13:00:56 +08:00 committed by GitHub
parent 570eff0719
commit c273f33081
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 5 deletions

View File

@ -20,6 +20,7 @@ export const InitializerWithSwitch = (props) => {
type,
item.find,
passInRemove ?? item.remove,
schema?.name || item?.schema?.name,
);
const { insert } = useSchemaInitializer();
return (

View File

@ -751,14 +751,14 @@ export const useCustomFormItemInitializerFields = (options?: any) => {
});
};
export const findSchema = (schema: Schema, key: string, action: string) => {
export const findSchema = (schema: Schema, key: string, action: string, name?: string) => {
if (!Schema.isSchemaInstance(schema)) return null;
return schema.reduceProperties((buf, s) => {
if (s[key] === action) {
if (s[key] === action && (!name || s.name === name)) {
return s;
}
if (s['x-component'] !== 'Action.Container' && !s['x-component'].includes('AssociationField')) {
const c = findSchema(s, key, action);
const c = findSchema(s, key, action, name);
if (c) {
return c;
}
@ -780,7 +780,7 @@ const recursiveParent = (schema: Schema) => {
return recursiveParent(schema.parent);
};
export const useCurrentSchema = (action: string, key: string, find = findSchema, rm = removeSchema) => {
export const useCurrentSchema = (action: string, key: string, find = findSchema, rm = removeSchema, name?: string) => {
const { removeActiveFieldName } = useFormActiveFields() || {};
const { form }: { form?: Form } = useFormBlockContext();
let fieldSchema = useFieldSchema();
@ -791,7 +791,7 @@ export const useCurrentSchema = (action: string, key: string, find = findSchema,
}
}
const { remove } = useDesignable();
const schema = find(fieldSchema, key, action);
const schema = find(fieldSchema, key, action, name);
return {
schema,
exists: !!schema,