solid-ui
solid-ui copied to clipboard
When I am typing, the change in validation state causes the input field to lose focus.
https://github.com/user-attachments/assets/c27053c2-90b3-4bf8-b227-fb8caf680638
import { TextField, TextFieldErrorMessage, TextFieldLabel, TextFieldInput } from "@/components/ui/textfield";
import { Button } from "@/components/ui/button";
import { validate_password_format } from "@/utils/utils";
import { createSignal } from "solid-js";
export default () => {
const [validationStatus, setValidationStatus] = createSignal<"valid"|"invalid">("valid");
const [password, setPassword] = createSignal<string>();
const handlePasswordInput = (value:string) => {
setPassword(value);
validatePassword();
}
const validatePassword = () => {
setValidationStatus(validate_password_format(password()) ? "valid" : "invalid");
}
const handleUnlock = () => {
// Unlock logic here
}
return <form>
<TextField
name="password"
required
class="gap-2"
validationState={validationStatus()}
value={password()}
onChange={handlePasswordInput}
>
<TextFieldLabel>Password</TextFieldLabel>
<TextFieldInput
size="lg"
type="password"
placeholder="Enter your password"
/>
<TextFieldErrorMessage>
Password must be at least 6 characters and contain both letters and numbers
</TextFieldErrorMessage>
</TextField>
<Button size="lg" class="w-full mt-[24px]" onClick={handleUnlock}>
Unlock
</Button>
</form>
}