fix: design menu not show (#1083)
Reviewed-on: daoyoucloud/tachybase#1083
This commit is contained in:
		
							parent
							
								
									53cd459654
								
							
						
					
					
						commit
						23283af669
					
				@ -1,16 +1,17 @@
 | 
			
		||||
import { createForm } from '@tachybase/schema';
 | 
			
		||||
import { RecursionField, Schema, useField, useFieldSchema } from '@tachybase/schema';
 | 
			
		||||
import { Spin } from 'antd';
 | 
			
		||||
import React, { createContext, useContext, useEffect, useMemo, useRef } from 'react';
 | 
			
		||||
import { createForm, RecursionField, Schema, useField, useFieldSchema } from '@tachybase/schema';
 | 
			
		||||
 | 
			
		||||
import { Spin } from 'antd';
 | 
			
		||||
 | 
			
		||||
import { withDynamicSchemaProps } from '../application/hoc/withDynamicSchemaProps';
 | 
			
		||||
import { useCollection_deprecated } from '../collection-manager';
 | 
			
		||||
import { CollectionRecord, useCollectionParentRecordData, useCollectionRecord } from '../data-source';
 | 
			
		||||
import { RecordProvider, useRecord } from '../record-provider';
 | 
			
		||||
import { useActionContext, useDesignable } from '../schema-component';
 | 
			
		||||
import { Templates as DataTemplateSelect } from '../schema-component/antd/form-v2/Templates';
 | 
			
		||||
import { BlockProvider, useBlockRequestContext } from './BlockProvider';
 | 
			
		||||
import { TemplateBlockProvider } from './TemplateBlockProvider';
 | 
			
		||||
import { FormActiveFieldsProvider } from './hooks/useFormActiveFields';
 | 
			
		||||
import { withDynamicSchemaProps } from '../application/hoc/withDynamicSchemaProps';
 | 
			
		||||
import { TemplateBlockProvider } from './TemplateBlockProvider';
 | 
			
		||||
 | 
			
		||||
export const FormBlockContext = createContext<{
 | 
			
		||||
  form?: any;
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
import { Field } from '@tachybase/schema';
 | 
			
		||||
import { connect, useField, useFieldSchema } from '@tachybase/schema';
 | 
			
		||||
import { merge } from '@tachybase/schema';
 | 
			
		||||
import { concat } from 'lodash';
 | 
			
		||||
import React, { useEffect, useMemo } from 'react';
 | 
			
		||||
import { connect, Field, merge, useField, useFieldSchema } from '@tachybase/schema';
 | 
			
		||||
 | 
			
		||||
import { concat } from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { useFormBlockContext } from '../../block-provider/FormBlockProvider';
 | 
			
		||||
import { useCompile, useComponent } from '../../schema-component';
 | 
			
		||||
import { useIsAllowToSetDefaultValue } from '../../schema-settings/hooks/useIsAllowToSetDefaultValue';
 | 
			
		||||
@ -14,17 +14,16 @@ type Props = {
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * TODO: 初步适配
 | 
			
		||||
 * @internal
 | 
			
		||||
 */
 | 
			
		||||
export const CollectionFieldInternalField: React.FC = (props: Props) => {
 | 
			
		||||
export const CollectionFieldInternalField = (props: Props) => {
 | 
			
		||||
  const { component } = props;
 | 
			
		||||
  const compile = useCompile();
 | 
			
		||||
  const field = useField<Field>();
 | 
			
		||||
  const fieldSchema = useFieldSchema();
 | 
			
		||||
  const { uiSchema: uiSchemaOrigin, defaultValue } = useCollectionField();
 | 
			
		||||
  const { isAllowToSetDefaultValue } = useIsAllowToSetDefaultValue();
 | 
			
		||||
  const uiSchema = useMemo(() => compile(uiSchemaOrigin), [JSON.stringify(uiSchemaOrigin)]);
 | 
			
		||||
  const uiSchema = compile(uiSchemaOrigin);
 | 
			
		||||
  const Component = useComponent(component || uiSchema?.['x-component'] || 'Input');
 | 
			
		||||
  const setFieldProps = (key, value) => {
 | 
			
		||||
    field[key] = typeof field[key] === 'undefined' ? value : field[key];
 | 
			
		||||
@ -42,7 +41,6 @@ export const CollectionFieldInternalField: React.FC = (props: Props) => {
 | 
			
		||||
      ctx.field.added.add(fieldSchema.name);
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
  // TODO: 初步适配
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    if (!uiSchema) {
 | 
			
		||||
      return;
 | 
			
		||||
@ -71,7 +69,8 @@ export const CollectionFieldInternalField: React.FC = (props: Props) => {
 | 
			
		||||
    const originalProps = compile(uiSchema['x-component-props']) || {};
 | 
			
		||||
    const componentProps = merge(originalProps, field.componentProps || {});
 | 
			
		||||
    field.component = [Component, componentProps];
 | 
			
		||||
  }, [JSON.stringify(uiSchema)]);
 | 
			
		||||
    // eslint-disable-next-line react-hooks/exhaustive-deps
 | 
			
		||||
  }, [uiSchema]);
 | 
			
		||||
  if (!uiSchema) {
 | 
			
		||||
    return null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,7 @@
 | 
			
		||||
import React, { FC, ReactNode, createContext, useContext, useMemo } from 'react';
 | 
			
		||||
 | 
			
		||||
import React, { createContext, FC, ReactNode, useContext, useMemo } from 'react';
 | 
			
		||||
import { useFieldSchema, type SchemaKey } from '@tachybase/schema';
 | 
			
		||||
import type { CollectionFieldOptions } from '../collection';
 | 
			
		||||
 | 
			
		||||
import { useCollection, useCollectionManager } from '../collection';
 | 
			
		||||
import { useCollection, useCollectionManager, type CollectionFieldOptions } from '../collection';
 | 
			
		||||
import { CollectionDeletedPlaceholder } from '../components/CollectionDeletedPlaceholder';
 | 
			
		||||
 | 
			
		||||
export const CollectionFieldContext = createContext<CollectionFieldOptions>(null);
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,12 @@
 | 
			
		||||
import { Form } from '@tachybase/schema';
 | 
			
		||||
import { Schema, useFieldSchema } from '@tachybase/schema';
 | 
			
		||||
import React, { useContext, useMemo } from 'react';
 | 
			
		||||
import { Form, Schema, useFieldSchema } from '@tachybase/schema';
 | 
			
		||||
 | 
			
		||||
import { CollectionFieldOptions_deprecated } from '../..';
 | 
			
		||||
import { isSystemField } from '../SchemaSettings';
 | 
			
		||||
import { isPatternDisabled } from '../isPatternDisabled';
 | 
			
		||||
import { useFormBlockContext, useFormBlockType } from '../../block-provider';
 | 
			
		||||
import { useCollectionManager_deprecated } from '../../collection-manager/hooks/useCollectionManager_deprecated';
 | 
			
		||||
import { useCollection_deprecated } from '../../collection-manager/hooks/useCollection_deprecated';
 | 
			
		||||
import { useCollectionManager_deprecated } from '../../collection-manager/hooks/useCollectionManager_deprecated';
 | 
			
		||||
import { isPatternDisabled } from '../isPatternDisabled';
 | 
			
		||||
import { isSystemField } from '../SchemaSettings';
 | 
			
		||||
 | 
			
		||||
interface DefaultValueProviderProps {
 | 
			
		||||
  isAllowToSetDefaultValue: (params: IsAllowToSetDefaultValueParams) => boolean;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user