From 9198ed5474db8aed2b01c6c0ec0f756baceb19af Mon Sep 17 00:00:00 2001 From: Enrico Sacchetti Date: Tue, 13 Dec 2022 13:22:17 -0500 Subject: [PATCH] feat!: dispatch "change" event in `Pagination`, rename "change" to "update" in `Select` (#1497) Closes #1491 * feat(pagination): dispatch "change" event when interacting with previous/next buttons, page/page size dropdowns * breaking(select): rename dispatched "change" event to "update" * breaking(select): forward `change` event to `Select` --- COMPONENT_INDEX.md | 14 ++++++----- docs/src/COMPONENT_API.json | 18 +++++++++++--- docs/src/components/ComponentApi.svelte | 32 +++++++++++++++++++++---- docs/src/pages/components/Select.svx | 8 +++---- src/Pagination/Pagination.svelte | 11 ++++++++- src/Select/Select.svelte | 6 +++-- tests/Pagination.test.svelte | 3 +++ types/Pagination/Pagination.svelte.d.ts | 4 +++- types/Select/Select.svelte.d.ts | 3 ++- 9 files changed, 76 insertions(+), 23 deletions(-) diff --git a/COMPONENT_INDEX.md b/COMPONENT_INDEX.md index 35693a94..eb6335b8 100644 --- a/COMPONENT_INDEX.md +++ b/COMPONENT_INDEX.md @@ -2682,11 +2682,12 @@ None. ### Events -| Event name | Type | Detail | -| :--------------------- | :--------- | :----------------------------------------------- | -| update | dispatched | { pageSize: number; page: number; } | -| click:button--previous | dispatched | { page: number; } | -| click:button--next | dispatched | { page: number; } | +| Event name | Type | Detail | +| :--------------------- | :--------- | :------------------------------------------------ | +| change | dispatched | { page?: number; pageSize?: number } | +| click:button--previous | dispatched | { page: number; } | +| click:button--next | dispatched | { page: number; } | +| update | dispatched | { pageSize: number; page: number; } | ## `PaginationNav` @@ -3179,7 +3180,8 @@ None. | Event name | Type | Detail | | :--------- | :--------- | :-------------------------------- | -| change | dispatched | string | number | +| update | dispatched | string | number | +| change | forwarded | -- | | input | forwarded | -- | | focus | forwarded | -- | | blur | forwarded | -- | diff --git a/docs/src/COMPONENT_API.json b/docs/src/COMPONENT_API.json index b870e435..fe1f293f 100644 --- a/docs/src/COMPONENT_API.json +++ b/docs/src/COMPONENT_API.json @@ -8405,8 +8405,9 @@ "events": [ { "type": "dispatched", - "name": "update", - "detail": "{ pageSize: number; page: number; }" + "name": "change", + "detail": "{ page?: number; pageSize?: number }", + "description": "Dispatched after any user interaction" }, { "type": "dispatched", @@ -8417,6 +8418,11 @@ "type": "dispatched", "name": "click:button--next", "detail": "{ page: number; }" + }, + { + "type": "dispatched", + "name": "update", + "detail": "{ pageSize: number; page: number; }" } ], "typedefs": [], @@ -10252,7 +10258,13 @@ } ], "events": [ - { "type": "dispatched", "name": "change", "detail": "string | number" }, + { + "type": "dispatched", + "name": "update", + "detail": "string | number", + "description": "The selected value." + }, + { "type": "forwarded", "name": "change", "element": "select" }, { "type": "forwarded", "name": "input", "element": "select" }, { "type": "forwarded", "name": "focus", "element": "select" }, { "type": "forwarded", "name": "blur", "element": "select" } diff --git a/docs/src/components/ComponentApi.svelte b/docs/src/components/ComponentApi.svelte index 8bce3d17..a60230a0 100644 --- a/docs/src/components/ComponentApi.svelte +++ b/docs/src/components/ComponentApi.svelte @@ -168,11 +168,33 @@

Dispatched events

{#if dispatched_events.length > 0} - - {#each dispatched_events as event (event.name)} - on:{event.name} - {/each} - + {@const hasDescription = dispatched_events.find((el) => el.description)} + + + + Event name + event.details type + {#if hasDescription} + Description + {/if} + + + + {#each dispatched_events as event (event.name)} + + + on:{event.name} + + + {event.detail} + + + {event.description ?? ""} + + + {/each} + + {:else}

No dispatched events.

{/if} diff --git a/docs/src/pages/components/Select.svx b/docs/src/pages/components/Select.svx index e7bb5e90..3a619e29 100644 --- a/docs/src/pages/components/Select.svx +++ b/docs/src/pages/components/Select.svx @@ -11,7 +11,7 @@ components: ["Select", "SelectItem", "SelectItemGroup", "SelectSkeleton"] If the `selected` prop is not set, the value of the first `SelectItem` will be used as the default value. - console.log("value", e.target.value)}> @@ -23,7 +23,7 @@ If the `selected` prop is not set, the value of the first `SelectItem` will be u Use the `text` prop on `SelectItem` to customize the display value. - console.log("value", e.target.value)}> @@ -35,7 +35,7 @@ Use the `text` prop on `SelectItem` to customize the display value. Use the `selected` prop to specify an initial value. - console.log("value", e.target.value)}> @@ -160,4 +160,4 @@ The `selected` prop is reactive and supports two-way binding. ## Skeleton (hidden label) - \ No newline at end of file + diff --git a/src/Pagination/Pagination.svelte b/src/Pagination/Pagination.svelte index 3f972b10..b307e078 100644 --- a/src/Pagination/Pagination.svelte +++ b/src/Pagination/Pagination.svelte @@ -1,8 +1,9 @@