From 2f79ac82d36c50ec0192489e6dc4b3fca85c5797 Mon Sep 17 00:00:00 2001 From: JesmoDev <26099018+JesmoDev@users.noreply.github.com> Date: Wed, 24 Apr 2024 18:52:03 +0200 Subject: [PATCH] close modal and styling --- .../document-search-result-item.element.ts | 2 +- .../search-modal/search-modal.element.ts | 32 +++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts index dec3375b56..ad021f5241 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts @@ -1,5 +1,5 @@ -import type { UmbSearchResultItemModel } from '@umbraco-cms/backoffice/search'; import type { UmbDocumentItemModel, UmbDocumentItemVariantModel } from '../repository/item/types.js'; +import type { UmbSearchResultItemModel } from '@umbraco-cms/backoffice/search'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { css, customElement, html, nothing, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts index b3b01ec9ca..71adab12b8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/search-modal/search-modal.element.ts @@ -1,12 +1,22 @@ import type { UmbSearchProvider, UmbSearchResultItemModel } from '../types.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, nothing, repeat, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { + css, + html, + nothing, + repeat, + customElement, + query, + state, + property, +} from '@umbraco-cms/backoffice/external/lit'; import type { ManifestSearchResultItem } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbExtensionsManifestInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; import '../search-result/search-result-item.element.js'; +import type { UmbModalContext } from '@umbraco-cms/backoffice/modal'; type SearchProvider = { name: string; @@ -21,6 +31,9 @@ export class UmbSearchModalElement extends UmbLitElement { @query('input') private _input!: HTMLInputElement; + @property({ attribute: false }) + modalContext?: UmbModalContext; + @state() private _search = ''; @@ -302,7 +315,12 @@ export class UmbSearchModalElement extends UmbLitElement { #renderResultItem(item: UmbSearchResultItemModel, index: number) { return html` - + ${this.localize.term('general_searchNoResult')}`; } + #closeModal(event: MouseEvent | KeyboardEvent) { + if (event instanceof KeyboardEvent && event.key !== 'Enter') return; + this.modalContext?.reject(); + } + static styles = [ UmbTextStyles, css` @@ -430,6 +453,11 @@ export class UmbSearchModalElement extends UmbLitElement { outline-offset: -3px; display: flex; } + .search-item:focus { + outline: 2px solid var(--uui-color-interactive-emphasis); + border-radius: 6px; + outline-offset: -4px; + } .search-item.active:not(:focus-within) { outline: 2px solid var(--uui-color-border); border-radius: 6px;