Skip to content

Commit 37f9597

Browse files
authored
Merge pull request #4578 from easyops-cn/jimmy/fix/form-renderer
fix(): form-renderer 支持 getFieldsValue 方法
2 parents 4df20c8 + eb4453d commit 37f9597

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

packages/brick-kit/src/core/CustomForms/registerFormRenderer.spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,17 @@ describe("registerFormRenderer is work", () => {
8484

8585
expect(form.resetFields).toHaveBeenCalled();
8686
});
87+
88+
it("should work with getFieldsValue method", () => {
89+
const formRender = document.createElement(formRenderer) as any;
90+
formRender.renderRoot = false;
91+
const form = document.createElement("forms.general-form") as any;
92+
form.getFieldsValue = jest.fn();
93+
94+
formRender.appendChild(form);
95+
96+
formRender.getFieldsValue({ runInMacrotask: true });
97+
98+
expect(form.getFieldsValue).toHaveBeenCalledWith({ runInMacrotask: true });
99+
});
87100
});

packages/brick-kit/src/core/CustomForms/registerFormRenderer.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class FormElement extends HTMLElement implements FormElementProps {
1212

1313
renderRoot?: boolean | undefined;
1414

15-
#proxyFormMethod(method: string, args: unknown[] = []): void {
15+
#proxyFormMethod(method: string, args: unknown[] = []): any {
1616
const containerElement =
1717
this.renderRoot !== false
1818
? this.firstElementChild?.firstElementChild
@@ -21,7 +21,7 @@ class FormElement extends HTMLElement implements FormElementProps {
2121
const tagName = containerElement?.tagName?.toLowerCase();
2222

2323
if (formContainers.includes(tagName as string)) {
24-
(containerElement as any)[method](...args);
24+
return (containerElement as any)[method](...args);
2525
} else {
2626
// eslint-disable-next-line no-console
2727
console.error(`no ${method} method in the container element`, {
@@ -41,6 +41,10 @@ class FormElement extends HTMLElement implements FormElementProps {
4141
resetFields(...args: unknown[]): void {
4242
this.#proxyFormMethod("resetFields", args);
4343
}
44+
45+
getFieldsValue(...args: unknown[]): any {
46+
return this.#proxyFormMethod("getFieldsValue", args);
47+
}
4448
}
4549

4650
export function registerFormRenderer(): void {

0 commit comments

Comments
 (0)