From 8497d9ddc5299a67fb131f190760ebac8ddc16b3 Mon Sep 17 00:00:00 2001 From: eunnn Date: Wed, 21 Oct 2026 10:27:43 +0900 Subject: [PATCH 1/5] feat(useInputState): add previous value to transformValue --- .../src/hooks/useInputState/useInputState.spec.ts | 13 +++++++++++++ .../src/hooks/useInputState/useInputState.ts | 14 +++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/packages/react-simplikit/src/hooks/useInputState/useInputState.spec.ts b/packages/react-simplikit/src/hooks/useInputState/useInputState.spec.ts index fede1844..25a5d3a8 100644 --- a/packages/react-simplikit/src/hooks/useInputState/useInputState.spec.ts +++ b/packages/react-simplikit/src/hooks/useInputState/useInputState.spec.ts @@ -67,6 +67,19 @@ describe('useInputState', () => { expect(input).toHaveValue('MUST BE UPPERCASE'); }); + it('should provide the previous value to the transform function', () => { + const { getByRole } = render( + createElement( + createTestInput('value', (nextValue, previousValue) => (nextValue.length > 5 ? previousValue : nextValue)) + ) + ); + + const input = getByRole('textbox'); + fireEvent.change(input, { target: { value: 'values' } }); + + expect(input).toHaveValue('value'); + }); + it('should update value when change event occurs on a textarea', async () => { const { getByRole } = render(createElement(createTestTextarea())); const textarea = getByRole('textbox'); diff --git a/packages/react-simplikit/src/hooks/useInputState/useInputState.ts b/packages/react-simplikit/src/hooks/useInputState/useInputState.ts index e694efc6..a70c0ef8 100644 --- a/packages/react-simplikit/src/hooks/useInputState/useInputState.ts +++ b/packages/react-simplikit/src/hooks/useInputState/useInputState.ts @@ -10,8 +10,9 @@ type InitialValue = string | (() => string); * The returned `onChange` handler works with both `` and `