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

View file

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

View file

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