diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index 98795e0..8852dcc 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ 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 */