From 13bc5534ed3779cce23f1ddf785dee162d061006 Mon Sep 17 00:00:00 2001 From: Georgii Berezhnoi Date: Fri, 17 Apr 2026 02:02:36 +0300 Subject: [PATCH] Update search items when item is added or removed to the popover --- .yarn/install-state.gz | Bin 728024 -> 728024 bytes packages/ui-kit/package.json | 2 +- .../components/search-input/search-input.ts | 10 ++++++- .../ui-kit/src/popover/popover-desktop.ts | 26 +++++++++++++++++- 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index 98795e04179787e2850027006e80b0db6af1a797..8852dcc73efefc308642f49691c95542f63e2b14 100644 GIT binary patch delta 54 zcmcbyUFXJjorV_17N!>F7M2#)Eo>j=GyZA+IG+uO*@2h?h&i`^oX>T?nnNVb*JSr{ GWd;DU(in{Z delta 54 zcmcbyUFXJjorV_17N!>F7M2#)Eo>j=Gk$6RIG+uO*@2h?h&i`^oX>T?nq$S)8i(D> Gl^FoK(HX-4 diff --git a/packages/ui-kit/package.json b/packages/ui-kit/package.json index a86f8a7..5291315 100644 --- a/packages/ui-kit/package.json +++ b/packages/ui-kit/package.json @@ -2,7 +2,7 @@ "name": "@editorjs/ui-kit", "description": "UI Components for Editor.js", "packageManager": "yarn@4.4.0", - "version": "1.1.2", + "version": "1.1.3", "type": "module", "main": "dist/index.js", "types": "dist/src/index.d.ts", diff --git a/packages/ui-kit/src/popover/components/search-input/search-input.ts b/packages/ui-kit/src/popover/components/search-input/search-input.ts index 748ec5e..6a1b519 100644 --- a/packages/ui-kit/src/popover/components/search-input/search-input.ts +++ b/packages/ui-kit/src/popover/components/search-input/search-input.ts @@ -82,6 +82,14 @@ export class SearchInput extends EventsDispatcher { }); } + /** + * Update search items in case they have been changed + * @param items - new items to set + */ + public updateItems(items: SearchableItem[]): void { + this.items = items; + } + /** * Returns search field element */ @@ -131,6 +139,6 @@ export class SearchInput extends EventsDispatcher { const text = item.title === undefined ? '' : item.title.toLowerCase(); const query = this.searchQuery?.toLowerCase(); - return query !== undefined && query === '' ? text.includes(query) : false; + return query !== undefined ? text.includes(query) : false; } } diff --git a/packages/ui-kit/src/popover/popover-desktop.ts b/packages/ui-kit/src/popover/popover-desktop.ts index b4f1cda..6a6721b 100644 --- a/packages/ui-kit/src/popover/popover-desktop.ts +++ b/packages/ui-kit/src/popover/popover-desktop.ts @@ -1,6 +1,6 @@ import { Flipper } from '@editorjs/dom'; import { PopoverAbstract } from './popover-abstract'; -import type { PopoverItemRenderParamsMap } from './types'; +import type { PopoverItemParams, PopoverItemRenderParamsMap } from './types'; import type { PopoverItem } from './components/popover-item'; import { PopoverItemSeparator, css as popoverItemCls } from './components/popover-item'; import type { PopoverParams } from './types'; @@ -168,6 +168,30 @@ export class PopoverDesktop extends PopoverAbstract { this.previouslyHoveredItem = null; }; + /** + * Override for addItem method to update search items + * @param params - parameters of an item to add + */ + public addItem(params: PopoverItemParams): void { + super.addItem(params); + + if (this.search !== undefined) { + this.search.updateItems(this.itemsDefault); + } + } + + /** + * Override for addItem method to update search items + * @param name - name of the item to be removed + */ + public removeItemByName(name: string): void { + super.removeItemByName(name); + + if (this.search !== undefined) { + this.search.updateItems(this.itemsDefault); + } + } + /** * Clears memory */