context.d.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import type { PropsWithChildren, ReactNode } from 'react';
  2. import * as React from 'react';
  3. import type { FormProviderProps as RcFormProviderProps } from 'rc-field-form/lib/FormContext';
  4. import type { Meta } from 'rc-field-form/lib/interface';
  5. import type { ColProps } from '../grid/col';
  6. import type { FormInstance, FormLayout, RequiredMark } from './Form';
  7. import type { FeedbackIcons, ValidateStatus } from './FormItem';
  8. import type { FormLabelAlign, NamePath } from './interface';
  9. /** Form Context. Set top form style and pass to Form Item usage. */
  10. export interface FormContextProps {
  11. layout: FormLayout;
  12. name?: string;
  13. colon?: boolean;
  14. labelAlign?: FormLabelAlign;
  15. labelWrap?: boolean;
  16. labelCol?: ColProps;
  17. wrapperCol?: ColProps;
  18. requiredMark?: RequiredMark;
  19. itemRef: (name: (string | number)[]) => (node: React.ReactElement) => void;
  20. form?: FormInstance;
  21. feedbackIcons?: FeedbackIcons;
  22. }
  23. export declare const FormContext: React.Context<FormContextProps>;
  24. /** `noStyle` Form Item Context. Used for error collection */
  25. export type ReportMetaChange = (meta: Meta, uniqueKeys: React.Key[]) => void;
  26. export declare const NoStyleItemContext: React.Context<ReportMetaChange | null>;
  27. /** Form Provider */
  28. export interface FormProviderProps extends Omit<RcFormProviderProps, 'validateMessages'> {
  29. prefixCls?: string;
  30. }
  31. export declare const FormProvider: React.FC<FormProviderProps>;
  32. /** Used for ErrorList only */
  33. export interface FormItemPrefixContextProps {
  34. prefixCls: string;
  35. status?: ValidateStatus;
  36. }
  37. export declare const FormItemPrefixContext: React.Context<FormItemPrefixContextProps>;
  38. export interface FormItemStatusContextProps {
  39. isFormItemInput?: boolean;
  40. status?: ValidateStatus;
  41. errors?: React.ReactNode[];
  42. warnings?: React.ReactNode[];
  43. hasFeedback?: boolean;
  44. feedbackIcon?: ReactNode;
  45. name?: NamePath;
  46. }
  47. export declare const FormItemInputContext: React.Context<FormItemStatusContextProps>;
  48. export type NoFormStyleProps = PropsWithChildren<{
  49. status?: boolean;
  50. override?: boolean;
  51. }>;
  52. export declare const NoFormStyle: React.FC<NoFormStyleProps>;
  53. export declare const VariantContext: React.Context<"filled" | "outlined" | "borderless" | "underlined" | undefined>;