import type React from 'react'; import type { FormInstance } from 'antd'; import type { PropSelectType } from '../ProSelect/propsType'; import type { ProModalSelectType } from '../ProForm/components/combination/ProModalSelect/propsType'; import type { ProCascaderType } from '../ProForm/components/combination/ProCascader/propsType'; import type { ProEnumConfigType } from '../ProEnum/propsType'; /** 对外配置项类型(value、内部 state 均为此类型,字段均可选) */ export interface ProConfigProviderType { locale?: string; ProEnum?: Partial; ProSelect?: Partial & Record; ProModalSelect?: Partial & Record; ProAddressBar?: Partial & Record; forms?: Record; [key: string]: any; } /** ProConfigProvider 组件 Props(内部使用) */ export interface ProConfigProviderProps { value?: ProConfigProviderType; locale?: string; onSuccess?: (data: any, params: any) => void; children?: React.ReactNode; } /** Config 上下文 */ export interface ConfigContext { state: ProConfigProviderType; dispatch: React.Dispatch; } /** ThemeAwareConfigProvider 内部组件 Props */ export interface ThemeAwareConfigProviderProps { locale: any; children: React.ReactNode; } /** Reducer Actions */ export type ProConfigActions = { type: 'setFormRef'; name: string; value: FormInstance; } | { type: 'deleteFormRef'; name: string; } | { type: 'set'; payload: ProConfigProviderType; } | { type: 'setProEnum'; payload: Record; } | { type: 'setProEnumDic'; key: string; payload: any; } | { type: 'setWithLocal'; payload: ProConfigProviderType; };