From 7d6d4ecb9e37c9a20d2d21cee81e1412bd78b99d Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 1 Apr 2026 18:46:40 +0300 Subject: [PATCH] Update browse page filters, search, and creator profile to match design - Browse: custom search field (320px, rounded-8, border, plain input), sort button with primary color, results count 14px Medium - Filter chips: use Angular Material mat-chip-set with rgba(0,0,0,0.04) bg, "Clear all" text button - Filter sidebar: scroll via absolute-positioned wrapper, dividers between panels - Creator profile: flat layout (no mat-card), avatar+name+email header, description, website stroked button with globe icon, social icon buttons, "Published Items (N)" heading, embedded browse component --- .../iot-hub/iot-hub-browse.component.html | 48 +++--- .../iot-hub/iot-hub-browse.component.scss | 158 +++++++++++------- .../iot-hub-creator-profile.component.html | 103 ++++++------ .../iot-hub-creator-profile.component.scss | 126 +++++++------- .../assets/locale/locale.constant-en_US.json | 2 + 5 files changed, 246 insertions(+), 191 deletions(-) diff --git a/ui-ngx/src/app/modules/home/pages/iot-hub/iot-hub-browse.component.html b/ui-ngx/src/app/modules/home/pages/iot-hub/iot-hub-browse.component.html index 94b1ce7940..a1e69167ec 100644 --- a/ui-ngx/src/app/modules/home/pages/iot-hub/iot-hub-browse.component.html +++ b/ui-ngx/src/app/modules/home/pages/iot-hub/iot-hub-browse.component.html @@ -55,6 +55,7 @@
+
@if (getSubtypeMap(); as subtypeMap) { @@ -71,6 +72,9 @@ } @if (categories.size > 0) { + @if (getSubtypeMap()) { +
+ } {{ 'iot-hub.category' | translate }} @@ -84,6 +88,9 @@ } + @if (getSubtypeMap() || categories.size > 0) { +
+ } {{ 'iot-hub.use-case' | translate }} @@ -96,6 +103,7 @@ }
+
@@ -105,47 +113,47 @@ {{ 'iot-hub.results-count' | translate:{ count: totalElements } }} - - search - + search + @if (textSearch) { - } - +
@if (hasActiveDropdownFilters()) { -
+ @for (key of getActiveSubtypesArray(); track key) { - + {{ getSubtypeLabel(key) }} - close - + close + } @for (key of getActiveCategoriesArray(); track key) { - + {{ getCategoryLabel(key) }} - close - + close + } @for (key of getActiveUseCasesArray(); track key) { - + {{ getUseCaseLabel(key) }} - close - + close + } - -
+ + } @if (creator) { - - - -
-
- @if (getAvatarUrl(); as avatarUrl) { - - } @else { - account_circle - } -
-
-

{{ creator.displayName }}

- @if (creator.description) { -

{{ creator.description }}

- } - @if (creator.website) { - - {{ creator.website }} - - } - @if (creator.contactEmail) { -
{{ creator.contactEmail }}
- } - -
+ +
+
+
+ @if (getAvatarUrl(); as avatarUrl) { + + } @else { + person + }
- - +
+

{{ creator.displayName }}

+ @if (creator.contactEmail) { + {{ creator.contactEmail }} + } +
+
+ + @if (creator.description) { +

{{ creator.description }}

+ } - -
-

{{ 'iot-hub.published-items' | translate }} ({{ creator.publishedCount }})

+
+ +

+ {{ 'iot-hub.published-items' | translate }} ({{ creator.publishedCount }}) +

+ +