diff --git a/packages/radix-vue/src/Editable/Editable.test.ts b/packages/radix-vue/src/Editable/Editable.test.ts index 200d3d533..35d4035ae 100644 --- a/packages/radix-vue/src/Editable/Editable.test.ts +++ b/packages/radix-vue/src/Editable/Editable.test.ts @@ -147,4 +147,14 @@ describe('editable', () => { expect(preview).toHaveStyle({ visibility: 'hidden' }) }) + + it('should prevent user input text more than given `maxLength`', async () => { + const { input, edit } = setup({ editableProps: { maxLength: 10 } }) + + await userEvent.click(edit) + + await userEvent.type(input, 'lorem ipsum dolor sit amet') + + expect(input).toHaveValue('lorem ipsu') + }) }) diff --git a/packages/radix-vue/src/Editable/EditableInput.vue b/packages/radix-vue/src/Editable/EditableInput.vue index afa456ea1..c1e276a21 100644 --- a/packages/radix-vue/src/Editable/EditableInput.vue +++ b/packages/radix-vue/src/Editable/EditableInput.vue @@ -56,6 +56,7 @@ function handleSubmitKeyDown(event: KeyboardEvent) { :value="context.modelValue.value" :placeholder="placeholder" :disabled="disabled" + :maxlength="context.maxLength.value" :data-disabled="disabled ? '' : undefined" :data-readonly="context.readonly.value ? '' : undefined" :readonly="context.readonly.value"