input: add use & focus utilities
This commit is contained in:
@@ -14,6 +14,8 @@
|
||||
type?: HTMLInputElement['type'];
|
||||
validate?: ValidatorOptions;
|
||||
invalidMessage?: string;
|
||||
focus?: boolean;
|
||||
use?: (node: HTMLInputElement) => void;
|
||||
ref?: HTMLInputElement | null;
|
||||
class?: ClassValue | null | undefined;
|
||||
}
|
||||
@@ -27,11 +29,17 @@
|
||||
type,
|
||||
validate: validateOpts,
|
||||
invalidMessage = 'Field is required',
|
||||
focus: focusOnMount = false,
|
||||
use,
|
||||
ref = $bindable<HTMLInputElement | null>(null),
|
||||
class: classValue
|
||||
}: Props = $props();
|
||||
|
||||
let valid: boolean = $state(true);
|
||||
|
||||
export const focus = () => {
|
||||
if (ref) ref.focus();
|
||||
};
|
||||
</script>
|
||||
|
||||
<div class={['w-full', classValue]}>
|
||||
@@ -50,6 +58,8 @@
|
||||
onvalidate={(e) => {
|
||||
valid = e.detail.valid;
|
||||
}}
|
||||
focus={focusOnMount}
|
||||
{use}
|
||||
/>
|
||||
|
||||
{#if validateOpts}
|
||||
|
||||
Reference in New Issue
Block a user