mirror of
https://github.com/nocobase/nocobase
synced 2024-11-14 21:55:55 +00:00
fix: the issue of current and association collection fields affecting each other in configuration (#5343)
This commit is contained in:
parent
570eff0719
commit
c273f33081
@ -20,6 +20,7 @@ export const InitializerWithSwitch = (props) => {
|
||||
type,
|
||||
item.find,
|
||||
passInRemove ?? item.remove,
|
||||
schema?.name || item?.schema?.name,
|
||||
);
|
||||
const { insert } = useSchemaInitializer();
|
||||
return (
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user