From 5f6126693117ef3abbb1bc5b5d50e5739aa95280 Mon Sep 17 00:00:00 2001 From: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com> Date: Wed, 9 Oct 2024 14:38:56 +0200 Subject: [PATCH] AutoSizeInput: Forward onChange event (#94459) Forward onChange event --- .../src/components/Input/AutoSizeInput.test.tsx | 10 ++++++++++ .../grafana-ui/src/components/Input/AutoSizeInput.tsx | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/packages/grafana-ui/src/components/Input/AutoSizeInput.test.tsx b/packages/grafana-ui/src/components/Input/AutoSizeInput.test.tsx index b47fc7da3d9..b2756e7b2d9 100644 --- a/packages/grafana-ui/src/components/Input/AutoSizeInput.test.tsx +++ b/packages/grafana-ui/src/components/Input/AutoSizeInput.test.tsx @@ -15,6 +15,16 @@ jest.mock('../../utils/measureText', () => { }); describe('AutoSizeInput', () => { + it('should support default Input API', () => { + const onChange = jest.fn(); + render(); + + const input: HTMLInputElement = screen.getByTestId('autosize-input'); + fireEvent.change(input, { target: { value: 'foo' } }); + + expect(onChange).toHaveBeenCalled(); + }); + it('should have default minWidth when empty', () => { render(); diff --git a/packages/grafana-ui/src/components/Input/AutoSizeInput.tsx b/packages/grafana-ui/src/components/Input/AutoSizeInput.tsx index de855ff5302..d1e61001de3 100644 --- a/packages/grafana-ui/src/components/Input/AutoSizeInput.tsx +++ b/packages/grafana-ui/src/components/Input/AutoSizeInput.tsx @@ -20,6 +20,7 @@ export const AutoSizeInput = React.forwardRef((props, r minWidth = 10, maxWidth, onCommitChange, + onChange, onKeyDown, onBlur, value: controlledValue, @@ -48,6 +49,9 @@ export const AutoSizeInput = React.forwardRef((props, r ref={ref} value={value.toString()} onChange={(event) => { + if (onChange) { + onChange(event); + } setValue(event.currentTarget.value); }} width={inputWidth}