mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 10:21:05 +00:00
refactor(selectable-tile): dispatch select, unselect events
Remove on:change event forwarding
This commit is contained in:
parent
10e6f1c79d
commit
359f99f682
2 changed files with 22 additions and 11 deletions
|
@ -1,15 +1,15 @@
|
||||||
<script>
|
<script>
|
||||||
let className = undefined;
|
let className = undefined;
|
||||||
export { className as class };
|
export { className as class };
|
||||||
export let selected = false;
|
|
||||||
export let id = Math.random();
|
|
||||||
export let value = 'value';
|
|
||||||
export let title = 'title';
|
|
||||||
export let name = '';
|
|
||||||
export let iconDescription = 'Tile checkmark';
|
export let iconDescription = 'Tile checkmark';
|
||||||
export let tabindex = '0';
|
export let id = Math.random();
|
||||||
export let light = false;
|
export let light = false;
|
||||||
|
export let name = '';
|
||||||
|
export let selected = false;
|
||||||
export let style = undefined;
|
export let style = undefined;
|
||||||
|
export let tabindex = '0';
|
||||||
|
export let title = 'title';
|
||||||
|
export let value = 'value';
|
||||||
|
|
||||||
import { createEventDispatcher } from 'svelte';
|
import { createEventDispatcher } from 'svelte';
|
||||||
import CheckmarkFilled16 from 'carbon-icons-svelte/lib/CheckmarkFilled16';
|
import CheckmarkFilled16 from 'carbon-icons-svelte/lib/CheckmarkFilled16';
|
||||||
|
@ -17,16 +17,13 @@
|
||||||
|
|
||||||
const dispatch = createEventDispatcher();
|
const dispatch = createEventDispatcher();
|
||||||
|
|
||||||
$: if (selected) {
|
$: dispatch(selected ? 'select' : 'deselect', id);
|
||||||
dispatch('select', id);
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
class={cx('--tile-input')}
|
class={cx('--tile-input')}
|
||||||
on:change
|
|
||||||
checked={selected}
|
checked={selected}
|
||||||
{id}
|
{id}
|
||||||
{value}
|
{value}
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
let selected = radioTiles[1].value;
|
let selected = radioTiles[1].value;
|
||||||
|
|
||||||
|
let selectedTile1 = false;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Layout>
|
<Layout>
|
||||||
|
@ -28,7 +30,19 @@
|
||||||
<ClickableTile {...$$props}>Clickable Tile</ClickableTile>
|
<ClickableTile {...$$props}>Clickable Tile</ClickableTile>
|
||||||
{:else if story === 'multi-select'}
|
{:else if story === 'multi-select'}
|
||||||
<div role="group" aria-label="selectable tiles">
|
<div role="group" aria-label="selectable tiles">
|
||||||
<SelectableTile {...$$props} id="tile-1" name="tiles">Multi-select Tile</SelectableTile>
|
<SelectableTile
|
||||||
|
{...$$props}
|
||||||
|
id="tile-1"
|
||||||
|
name="tiles"
|
||||||
|
bind:selected={selectedTile1}
|
||||||
|
on:select={({ detail }) => {
|
||||||
|
console.log('on:select', detail);
|
||||||
|
}}
|
||||||
|
on:deselect={({ detail }) => {
|
||||||
|
console.log('on:deselect', detail);
|
||||||
|
}}>
|
||||||
|
Multi-select Tile
|
||||||
|
</SelectableTile>
|
||||||
<SelectableTile {...$$props} id="tile-2" name="tiles">Multi-select Tile</SelectableTile>
|
<SelectableTile {...$$props} id="tile-2" name="tiles">Multi-select Tile</SelectableTile>
|
||||||
<SelectableTile {...$$props} id="tile-3" name="tiles">Multi-select Tile</SelectableTile>
|
<SelectableTile {...$$props} id="tile-3" name="tiles">Multi-select Tile</SelectableTile>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue