feat(tag): dispatch close event

This commit is contained in:
Eric Liu 2021-02-03 06:06:19 -08:00
commit c37890d4b4
6 changed files with 19 additions and 9 deletions

View file

@ -3640,12 +3640,13 @@ None.
### Events
| Event name | Type | Detail |
| :--------- | :-------- | :----- |
| click | forwarded | -- |
| mouseover | forwarded | -- |
| mouseenter | forwarded | -- |
| mouseleave | forwarded | -- |
| Event name | Type | Detail |
| :--------- | :--------- | :----- |
| click | forwarded | -- |
| mouseover | forwarded | -- |
| mouseenter | forwarded | -- |
| mouseleave | forwarded | -- |
| close | dispatched | -- |
## `TagSkeleton`

View file

@ -7859,7 +7859,8 @@
{ "type": "forwarded", "name": "click", "element": "TagSkeleton" },
{ "type": "forwarded", "name": "mouseover", "element": "TagSkeleton" },
{ "type": "forwarded", "name": "mouseenter", "element": "TagSkeleton" },
{ "type": "forwarded", "name": "mouseleave", "element": "TagSkeleton" }
{ "type": "forwarded", "name": "mouseleave", "element": "TagSkeleton" },
{ "type": "dispatched", "name": "close" }
],
"typedefs": [],
"rest_props": { "type": "Element", "name": "div | span" }

View file

@ -25,7 +25,7 @@
### Filterable
<Tag filter on:click>Filterable</Tag>
<Tag filter on:close>Filterable</Tag>
### Custom icon

View file

@ -30,6 +30,10 @@
import Close16 from "carbon-icons-svelte/lib/Close16/Close16.svelte";
import TagSkeleton from "./TagSkeleton.svelte";
import { createEventDispatcher } from "svelte";
const dispatch = createEventDispatcher();
</script>
{#if skeleton}
@ -70,6 +74,9 @@
disabled="{disabled}"
title="{title}"
on:click|stopPropagation
on:click|stopPropagation="{() => {
dispatch('close');
}}"
on:mouseover
on:mouseenter
on:mouseleave

View file

@ -27,7 +27,7 @@
<Tag type="high-contrast">high-contrast</Tag>
<Tag filter on:click>Filterable</Tag>
<Tag filter on:click on:close>Filterable</Tag>
<Tag icon="{Add16}">Custom icon</Tag>

1
types/Tag/Tag.d.ts vendored
View file

@ -65,5 +65,6 @@ export default class Tag {
$on(eventname: "mouseover", cb: (event: WindowEventMap["mouseover"]) => void): () => void;
$on(eventname: "mouseenter", cb: (event: WindowEventMap["mouseenter"]) => void): () => void;
$on(eventname: "mouseleave", cb: (event: WindowEventMap["mouseleave"]) => void): () => void;
$on(eventname: "close", cb: (event: CustomEvent<any>) => void): () => void;
$on(eventname: string, cb: (event: Event) => void): () => void;
}