From 4bbde6246191c13207ec05cdf65c3547b144d4d8 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Mon, 2 Dec 2024 13:37:28 +0100 Subject: [PATCH] Allow setting a note to show with layer filters (#11) * docs(changeset): Allow setting a note to show with layer filters * Add optional note when setting layer filter --- .changeset/weak-flowers-teach.md | 5 +++++ docs/Layers/LayersController.md | 13 +++++++------ docs/Main/FeltController.md | 13 +++++++------ etc/js-sdk.api.md | 1 + src/modules/layers/controller.ts | 7 +++++++ src/modules/layers/schema.ts | 1 + 6 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 .changeset/weak-flowers-teach.md diff --git a/.changeset/weak-flowers-teach.md b/.changeset/weak-flowers-teach.md new file mode 100644 index 0000000..55c723c --- /dev/null +++ b/.changeset/weak-flowers-teach.md @@ -0,0 +1,5 @@ +--- +"@feltmaps/js-sdk": minor +--- + +Allow setting a note to show with layer filters diff --git a/docs/Layers/LayersController.md b/docs/Layers/LayersController.md index 709cb61..79ff775 100644 --- a/docs/Layers/LayersController.md +++ b/docs/Layers/LayersController.md @@ -332,17 +332,18 @@ console.log(filters.combined, filters.style, filters.ephemeral, filters.componen ### setLayerFilters() -> **setLayerFilters**(`params`: \{`layerId`: `string`;`filters`: [`Filters`](Filters.md); }): `Promise`\<`void`> +> **setLayerFilters**(`params`: \{`layerId`: `string`;`filters`: [`Filters`](Filters.md);`note`: `string`; }): `Promise`\<`void`> Sets the **ephemeral** filters for a layer. #### Parameters -| Parameter | Type | Description | -| ---------------- | ----------------------- | --------------------------------------------------------------------------------------------------------------- | -| `params` | `object` | - | -| `params.layerId` | `string` | The layer that you want to set the filters for. | -| `params.filters` | [`Filters`](Filters.md) | The filters to set for the layer. This will replace any ephemeral filters that are currently set for the layer. | +| Parameter | Type | Description | +| ---------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `params` | `object` | - | +| `params.layerId` | `string` | The layer that you want to set the filters for. | +| `params.filters` | [`Filters`](Filters.md) | The filters to set for the layer. This will replace any ephemeral filters that are currently set for the layer. | +| `params.note`? | `string` | A note to display on the layer legend when this filter is applied. When the note is shown, a reset button will also be shown, allowing the user to clear the filter. | #### Returns diff --git a/docs/Main/FeltController.md b/docs/Main/FeltController.md index d8f72bc..ded1cbe 100644 --- a/docs/Main/FeltController.md +++ b/docs/Main/FeltController.md @@ -503,17 +503,18 @@ console.log(filters.combined, filters.style, filters.ephemeral, filters.componen ### setLayerFilters() -> **setLayerFilters**(`params`: \{`layerId`: `string`;`filters`: [`Filters`](../Layers/Filters.md); }): `Promise`\<`void`> +> **setLayerFilters**(`params`: \{`layerId`: `string`;`filters`: [`Filters`](../Layers/Filters.md);`note`: `string`; }): `Promise`\<`void`> Sets the **ephemeral** filters for a layer. #### Parameters -| Parameter | Type | Description | -| ---------------- | --------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| `params` | `object` | - | -| `params.layerId` | `string` | The layer that you want to set the filters for. | -| `params.filters` | [`Filters`](../Layers/Filters.md) | The filters to set for the layer. This will replace any ephemeral filters that are currently set for the layer. | +| Parameter | Type | Description | +| ---------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `params` | `object` | - | +| `params.layerId` | `string` | The layer that you want to set the filters for. | +| `params.filters` | [`Filters`](../Layers/Filters.md) | The filters to set for the layer. This will replace any ephemeral filters that are currently set for the layer. | +| `params.note`? | `string` | A note to display on the layer legend when this filter is applied. When the note is shown, a reset button will also be shown, allowing the user to clear the filter. | #### Returns diff --git a/etc/js-sdk.api.md b/etc/js-sdk.api.md index 2366df1..bf2af74 100644 --- a/etc/js-sdk.api.md +++ b/etc/js-sdk.api.md @@ -296,6 +296,7 @@ export interface LayersController { setLayerFilters(params: { layerId: string; filters: Filters; + note?: string; }): Promise; setLayerGroupVisibility(visibility: SetVisibilityRequest): Promise; setLayerStyle(params: { diff --git a/src/modules/layers/controller.ts b/src/modules/layers/controller.ts index 0e41484..cbbf19e 100644 --- a/src/modules/layers/controller.ts +++ b/src/modules/layers/controller.ts @@ -352,6 +352,13 @@ export interface LayersController { * that are currently set for the layer. */ filters: Filters; + + /** + * A note to display on the layer legend when this filter is applied. When the + * note is shown, a reset button will also be shown, allowing the user to clear + * the filter. + */ + note?: string; }): Promise; /** diff --git a/src/modules/layers/schema.ts b/src/modules/layers/schema.ts index d571156..898900c 100644 --- a/src/modules/layers/schema.ts +++ b/src/modules/layers/schema.ts @@ -86,6 +86,7 @@ const SetFiltersMessage = methodMessage( z.object({ layerId: z.string(), filters: FiltersSchema, + note: z.string().optional(), }), );