refactor(timepicker): forward events, remove dispatch

This commit is contained in:
Eric Liu 2019-12-29 19:37:15 -08:00
commit bb18cdf797
3 changed files with 16 additions and 15 deletions

View file

@ -1,12 +1,16 @@
<script>
import Layout from '../../internal/ui/Layout.svelte';
import { SelectItem } from '../Select';
import TimePicker from './TimePicker.svelte';
import TimePickerSelect from './TimePickerSelect.svelte';
import { SelectItem } from '../Select';
let value = '';
let select1 = 'PM';
let select2 = 'Time zone 1';
$: {
console.log(value, select1, select2);
}
</script>
<Layout>

View file

@ -23,18 +23,21 @@
<div class={cx('--time-picker__input')}>
{#if labelText}
<label
for={id}
class={cx('--label', hideLabel && '--visually-hidden', disabled && '--label--disabled')}>
class={cx('--label', hideLabel && '--visually-hidden', disabled && '--label--disabled')}
for={id}>
{labelText}
</label>
{/if}
<input
data-invalid={invalid || undefined}
class={cx('--time-picker__input-field', '--text-input', light && '--text-input--light', invalid && '--text-input--invalid')}
on:change
on:input
on:input={({ target }) => {
value = target.value;
}}
on:focus
on:blur
{pattern}
{placeholder}
{maxlength}
@ -42,7 +45,6 @@
{type}
{value}
{disabled} />
</div>
<slot />
</div>

View file

@ -9,21 +9,16 @@
export let disabled = false;
export let style = undefined;
import { createEventDispatcher, setContext } from 'svelte';
import { setContext } from 'svelte';
import { writable } from 'svelte/store';
import ChevronDownGlyph from 'carbon-icons-svelte/lib/ChevronDownGlyph';
import { cx } from '../../lib';
const dispatch = createEventDispatcher();
let selected = writable(value);
setContext('TimePickerSelect', { selected });
$: {
selected.set(value);
dispatch('change', $selected);
}
$: selected.set(value);
$: value = $selected;
</script>
@ -39,12 +34,12 @@
{/if}
<select
class={cx('--select-input')}
{id}
{disabled}
{value}
on:change={({ target }) => {
selected.set(target.value);
}}>
}}
{id}
{disabled}
{value}>
<slot />
</select>
<ChevronDownGlyph