Skip to content

Commit 09bc4b9

Browse files
authored
Made lazy state getters enumerable (#678)
1 parent 32d02b1 commit 09bc4b9

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed

src/getters.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import type { FormState, FieldState } from 'final-form'
33
const addLazyState = (dest: Object, state: Object, keys: string[]): void => {
44
keys.forEach(key => {
55
Object.defineProperty(dest, key, {
6-
get: () => state[key]
6+
get: () => state[key],
7+
enumerable: true
78
})
89
})
910
}

src/renderComponent.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ export default function renderComponent<T>(
1111
): React.Node {
1212
const { render, children, component, ...rest } = props
1313
if (component) {
14-
return React.createElement(component, {
15-
...rest,
16-
...lazyProps,
17-
children,
18-
render
19-
})
14+
return React.createElement(
15+
component,
16+
Object.assign(lazyProps, rest, {
17+
children,
18+
render
19+
})
20+
)
2021
}
2122
if (render) {
2223
return render(

src/useFormState.test.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import React from 'react'
44
import { render, cleanup } from '@testing-library/react'
55
import { ErrorBoundary } from './testUtils'
6-
import { useFormState } from './index'
6+
import { useFormState, Form } from './index'
77

88
describe('useField', () => {
99
afterEach(cleanup)
@@ -30,4 +30,21 @@ describe('useField', () => {
3030
)
3131
console.error.mockRestore()
3232
})
33+
34+
it('state should be enumerable', () => {
35+
const Test = () => {
36+
const state = useFormState()
37+
expect(Object.keys(state).length > 0).toBe(true)
38+
return <div>It worked</div>
39+
}
40+
render(
41+
<Form onSubmit={() => {}}>
42+
{({ handleSubmit }) => (
43+
<form onSubmit={handleSubmit}>
44+
<Test />
45+
</form>
46+
)}
47+
</Form>
48+
)
49+
})
3350
})

0 commit comments

Comments
 (0)