fix(ui): antd nested form bugs
This commit is contained in:
@@ -8,7 +8,7 @@ export interface UseAntdFormOptions<T extends NonNullable<unknown> = any> {
|
||||
form?: FormInstance<T>;
|
||||
initialValues?: Partial<T> | (() => Partial<T> | Promise<Partial<T>>);
|
||||
name?: string;
|
||||
onSubmit?: (values: T) => unknown;
|
||||
onSubmit?: (values: T) => unknown | Promise<unknown>;
|
||||
}
|
||||
|
||||
export interface UseAntdFormReturns<T extends NonNullable<unknown> = any> {
|
||||
@@ -95,7 +95,7 @@ const useAntdForm = <T extends NonNullable<unknown> = any>({ form, initialValues
|
||||
const formProps: FormProps = {
|
||||
form: formInst,
|
||||
initialValues: formInitialValues,
|
||||
name: options.name ? formName : undefined,
|
||||
name: formName,
|
||||
onFinish,
|
||||
};
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { useCreation } from "ahooks";
|
||||
import { type FormInstance } from "antd";
|
||||
import { nanoid } from "nanoid/non-secure";
|
||||
|
||||
export interface UseAntdFormNameOptions<T extends NonNullable<unknown> = any> {
|
||||
form: FormInstance<T>;
|
||||
@@ -13,7 +14,7 @@ export interface UseAntdFormNameOptions<T extends NonNullable<unknown> = any> {
|
||||
* @returns {string}
|
||||
*/
|
||||
const useAntdFormName = <T extends NonNullable<unknown> = any>(options: UseAntdFormNameOptions<T>) => {
|
||||
const formName = useCreation(() => `${options.name}_${Math.random().toString(36).substring(2, 10)}${new Date().getTime()}`, [options.name, options.form]);
|
||||
const formName = useCreation(() => `${options.name}_${nanoid()}`, [options.name, options.form]);
|
||||
return formName;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Fragment, cloneElement, createElement, isValidElement, useMemo } from "react";
|
||||
|
||||
export type UseTriggerElementOptions = {
|
||||
onClick?: (e: MouseEvent) => void;
|
||||
onClick?: (e: React.MouseEvent) => void;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -21,7 +21,7 @@ const useTriggerElement = (trigger: React.ReactNode, options?: UseTriggerElement
|
||||
const el = isValidElement(trigger) ? trigger : createElement(Fragment, null, trigger);
|
||||
return cloneElement(el, {
|
||||
...el.props,
|
||||
onClick: (e: MouseEvent) => {
|
||||
onClick: (e: React.MouseEvent) => {
|
||||
onClick?.(e);
|
||||
el.props?.onClick?.(e);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user