Files
classroomio/src/components/Form/TextField.svelte
T

42 lines
828 B
Svelte
Raw Normal View History

<script>
2021-07-26 02:31:00 +03:00
import { afterUpdate } from 'svelte';
export let label;
export let placeholder;
export let value;
2021-05-29 22:24:14 +03:00
export let onKeyDown;
2021-07-26 02:31:00 +03:00
export let className = '';
export let inputClassName = '';
export let type = 'text';
export let autoFocus = false;
2021-07-26 07:49:05 +03:00
export let isRequired = false;
2021-07-26 02:31:00 +03:00
2021-07-26 07:49:05 +03:00
let ref;
2021-07-26 02:31:00 +03:00
function typeAction(node) {
node.type = type;
2021-07-26 07:49:05 +03:00
if (isRequired) {
node.required = '';
}
2021-07-26 02:31:00 +03:00
}
afterUpdate(() => {
if (autoFocus) {
ref.focus();
}
});
</script>
2021-07-03 19:29:41 +00:00
<label class="block {className}">
2021-07-26 02:31:00 +03:00
{#if label}<label class="m-0">{label}</label>{/if}
<input
2021-07-26 02:31:00 +03:00
use:typeAction
class="form-input {inputClassName} p-2 mt-1 block w-full bg-white border border-gray-300"
2021-05-29 22:24:14 +03:00
on:keydown={onKeyDown}
{placeholder}
2021-05-30 14:17:08 +03:00
bind:value
2021-07-26 02:31:00 +03:00
bind:this={ref}
2021-07-26 07:49:05 +03:00
required={true}
2021-05-30 14:17:08 +03:00
/>
</label>