Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/deep-peas-bake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@wpmudev/sui-input": major
---

useValidation hook validate support for copy/paste
5 changes: 5 additions & 0 deletions .changeset/sad-chairs-lie.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@wpmudev/sui-password-field": major
---

onChange prop added for password field
15 changes: 11 additions & 4 deletions packages/ui/input/src/input.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -111,16 +111,23 @@ const Input = forwardRef<HTMLInputElement | HTMLTextAreaElement, InputProps>(
// handle on change
const handleChange = useCallback(
(e: React.ChangeEvent<HTMLInputElement>) => {
// update value if input isn't read-only
const newValue = e?.target?.value ?? ""

// update input value
if (!isReadOnly) {
setValue((e?.target?.value ?? "") as InputProps["defaultValue"])
setValue(newValue as InputProps["defaultValue"])
}

// 🔥 VALIDATE HERE → covers paste + typing + everything else
if (validate && isFunction(validate)) {
validate(newValue)
}

if (!!onChange) {
if (onChange) {
onChange(e)
}
},
[isReadOnly, onChange],
[isReadOnly, onChange, validate],
)

// Clear input value
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/password-field/src/password-field.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const PasswordField: React.FC<PasswordFieldProps> = ({
validateOnMount,
resetValidation,
name,
onChange,
_htmlProps,
_style = {},
}) => {
Expand Down Expand Up @@ -54,6 +55,7 @@ const PasswordField: React.FC<PasswordFieldProps> = ({
const getValue = inputElement?.value
setHasValue(getValue?.length > 0)
},
onChange,
isSmall,
}

Expand Down