From e4651e2f1faaffcdbaac3b0fff46b80522581866 Mon Sep 17 00:00:00 2001 From: Giddh's Black Tiger Date: Wed, 1 Apr 2026 17:16:54 +0530 Subject: [PATCH 1/3] refactor: improve search component styling and add client name tooltip --- apps/36-blocks/src/app/layout/layout.component.html | 4 +++- libs/ui/search/src/lib/search/search.component.html | 4 ++-- libs/ui/search/src/lib/search/search.component.scss | 0 libs/ui/search/src/lib/search/search.component.ts | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) delete mode 100644 libs/ui/search/src/lib/search/search.component.scss diff --git a/apps/36-blocks/src/app/layout/layout.component.html b/apps/36-blocks/src/app/layout/layout.component.html index ecdadc0f..9105457e 100644 --- a/apps/36-blocks/src/app/layout/layout.component.html +++ b/apps/36-blocks/src/app/layout/layout.component.html @@ -26,7 +26,9 @@ } } @else { - apps + apps } diff --git a/libs/ui/search/src/lib/search/search.component.html b/libs/ui/search/src/lib/search/search.component.html index d3018a86..40758e2e 100644 --- a/libs/ui/search/src/lib/search/search.component.html +++ b/libs/ui/search/src/lib/search/search.component.html @@ -1,4 +1,4 @@ - + @if (!isRemoveChar()) { search @if (searchFormControl.value?.length && !hideCloseIcon()) { - } @if (hint()) { diff --git a/libs/ui/search/src/lib/search/search.component.scss b/libs/ui/search/src/lib/search/search.component.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/libs/ui/search/src/lib/search/search.component.ts b/libs/ui/search/src/lib/search/search.component.ts index 304082e9..57378693 100644 --- a/libs/ui/search/src/lib/search/search.component.ts +++ b/libs/ui/search/src/lib/search/search.component.ts @@ -33,7 +33,7 @@ import { debounceTime } from 'rxjs/operators'; RemoveCharacterDirective, ], templateUrl: './search.component.html', - styleUrls: ['./search.component.scss'], + styles: ``, changeDetection: ChangeDetectionStrategy.OnPush, }) export class SearchComponent implements OnInit { From a4a88252730165a224c312832ca4ec6b49d37cfe Mon Sep 17 00:00:00 2001 From: Giddh's Black Tiger Date: Wed, 1 Apr 2026 18:45:17 +0530 Subject: [PATCH 2/3] refactor: extract UI settings and side nav state into services, improve service list styling - Create UiSettingsService to centralize theme and side nav state management with localStorage persistence and 30-day TTL - Create SideNavService to manage sidebar open/close state - Remove mat-card wrappers from service lists in create-feature and management components - Add service icons to management sections (Roles, Permissions, Snippet, Settings) - Implement getServiceListItems method to map services with dynamic icons based --- .../create-feature.component.html | 18 ++---- .../create-feature.component.ts | 29 ++++++--- .../src/app/layout/layout.component.html | 28 ++++---- .../src/app/layout/layout.component.ts | 21 +++--- .../main-left-side-nav.component.scss | 7 -- .../src/app/layout/side-nav.service.ts | 25 ++++++++ .../src/app/layout/ui-settings.service.ts | 64 +++++++++++++++++++ .../management/management.component.html | 55 +++++++++++----- .../users/management/management.component.ts | 12 ++-- .../src/app/users/user/user.component.html | 7 +- .../src/app/users/user/user.component.ts | 8 +++ apps/shared/scss/global.scss | 3 + .../src/lib/search/search.component.html | 2 +- .../src/lib/service-list.component.html | 27 ++++---- .../src/lib/service-list.component.scss | 3 - .../src/lib/service-list.component.ts | 1 + 16 files changed, 220 insertions(+), 90 deletions(-) create mode 100644 apps/36-blocks/src/app/layout/side-nav.service.ts create mode 100644 apps/36-blocks/src/app/layout/ui-settings.service.ts diff --git a/apps/36-blocks/src/app/features/create-feature/create-feature.component.html b/apps/36-blocks/src/app/features/create-feature/create-feature.component.html index a591bd17..92ba510b 100644 --- a/apps/36-blocks/src/app/features/create-feature/create-feature.component.html +++ b/apps/36-blocks/src/app/features/create-feature/create-feature.component.html @@ -558,17 +558,13 @@

Custom Mapping

- - Services - - - - +
@if (isEditMode) { diff --git a/apps/36-blocks/src/app/features/create-feature/create-feature.component.ts b/apps/36-blocks/src/app/features/create-feature/create-feature.component.ts index 4d3b097d..805f7ea9 100644 --- a/apps/36-blocks/src/app/features/create-feature/create-feature.component.ts +++ b/apps/36-blocks/src/app/features/create-feature/create-feature.component.ts @@ -67,7 +67,8 @@ import { SimpleDialogComponent } from './simple-dialog/simple-dialog.component'; import { CreatePlanDialogComponent } from './create-plan-dialog/create-plan-dialog.component'; import { CreateTaxDialogComponent } from './create-tax-dialog/create-tax-dialog.component'; import { ConfirmDialogComponent } from '@proxy/ui/confirm-dialog'; -import { ServiceListComponent } from '@proxy/ui/service-list'; +import { ServiceListComponent, ServiceListItem } from '@proxy/ui/service-list'; +import { UiSettingsService } from '../../layout/ui-settings.service'; type ServiceFormGroup = FormGroup<{ requirements: FormGroup<{ [key: string]: FormControl; @@ -153,6 +154,7 @@ export class CreateFeatureComponent extends BaseComponent implements OnDestroy, private ngZone = inject(NgZone); private dialog = inject(MatDialog); private http = inject(HttpClient); + private uiSettings = inject(UiSettingsService); public taxes: any[] = []; public createPlanForm: any; @@ -216,6 +218,22 @@ export class CreateFeatureComponent extends BaseComponent implements OnDestroy, public selectedServiceIndex = 0; public selectedSubscriptionServiceIndex = -2; + public getServiceListItems(services: IMethodService[]): ServiceListItem[] { + return (services ?? []).map((s) => ({ name: s.name, icon: this._serviceIcon(s.name) })); + } + + private _serviceIcon(name: string): string { + const n = (name ?? '').toLowerCase(); + if (n.includes('google')) return 'g_mobiledata'; + if (n.includes('apple')) return 'apple'; + if (n.includes('password') || n.includes('login')) return 'lock'; + if (n.includes('otp') || n.includes('sms') || n.includes('msg')) return 'sms'; + if (n.includes('email') || n.includes('mail')) return 'mail'; + if (n.includes('whatsapp')) return 'chat'; + if (n.includes('phone') || n.includes('mobile')) return 'smartphone'; + return 'miscellaneous_services'; + } + /** Duplicate of service form used inside configure method dialog; patched back to serviceForm on close */ public configureMethodDialogForm: ServiceFormGroup | null = null; @@ -684,19 +702,14 @@ export class CreateFeatureComponent extends BaseComponent implements OnDestroy, /** Default primary color: black in light theme, white in dark theme */ public getDefaultPrimaryColor(): string { - return typeof localStorage !== 'undefined' && localStorage.getItem('selected-theme') === 'dark-theme' - ? '#ffffff' - : '#000000'; + return this.uiSettings.theme === 'dark-theme' ? '#ffffff' : '#000000'; } /** Returns the effective primary color based on the selected branding theme */ public getEffectivePrimaryColor(): string { const theme = this.featureForm.get('brandingDetails.theme')?.value; const isDark = - theme === WidgetTheme.Dark || - (theme === WidgetTheme.System && - typeof localStorage !== 'undefined' && - localStorage.getItem('selected-theme') === 'dark-theme'); + theme === WidgetTheme.Dark || (theme === WidgetTheme.System && this.uiSettings.theme === 'dark-theme'); if (isDark) { return this.featureForm.get('brandingDetails.dark_theme_primary_color')?.value || '#ffffff'; } diff --git a/apps/36-blocks/src/app/layout/layout.component.html b/apps/36-blocks/src/app/layout/layout.component.html index 9105457e..47da6536 100644 --- a/apps/36-blocks/src/app/layout/layout.component.html +++ b/apps/36-blocks/src/app/layout/layout.component.html @@ -1,20 +1,24 @@ -
+
@let clientSettings = clientSettings$ | async; @let clientList = clients$ | async; @let isMultipleClients = (clientList?.data?.length ?? 0) > 1; -
+
- @if (isSideNavOpen()) { + @if (sideNavService.isSideNavOpen()) {
{{ clientSettings?.client?.name }} @@ -55,24 +59,24 @@ matIconButton class="sidebar-toggle-btn" (click)="toggleSideBarEvent()" - [matTooltip]="isSideNavOpen() ? 'Collapse Menu' : 'Expand Menu'" + [matTooltip]="sideNavService.isSideNavOpen() ? 'Collapse Menu' : 'Expand Menu'" matTooltipPosition="right" type="button" > {{ - isSideNavOpen() ? 'keyboard_double_arrow_left' : 'keyboard_double_arrow_right' + sideNavService.isSideNavOpen() ? 'keyboard_double_arrow_left' : 'keyboard_double_arrow_right' }}
@if (logInData$ | async; as user) {
- @if (isSideNavOpen()) { + @if (sideNavService.isSideNavOpen()) {
- navigate_next - + + } - + diff --git a/libs/ui/service-list/src/lib/service-list.component.scss b/libs/ui/service-list/src/lib/service-list.component.scss index deb0766e..e69de29b 100644 --- a/libs/ui/service-list/src/lib/service-list.component.scss +++ b/libs/ui/service-list/src/lib/service-list.component.scss @@ -1,3 +0,0 @@ -:host ::ng-deep mat-list-item.active { - background-color: var(--color-dark-accent-light); -} diff --git a/libs/ui/service-list/src/lib/service-list.component.ts b/libs/ui/service-list/src/lib/service-list.component.ts index 13a3ec88..b48d7643 100644 --- a/libs/ui/service-list/src/lib/service-list.component.ts +++ b/libs/ui/service-list/src/lib/service-list.component.ts @@ -5,6 +5,7 @@ import { AbstractControl } from '@angular/forms'; export interface ServiceListItem { name: string; + icon?: string; } @Component({ From 3b3f25f534f183b06571e7e9883306183ca86b2d Mon Sep 17 00:00:00 2001 From: Giddh's Black Tiger Date: Wed, 1 Apr 2026 19:07:32 +0530 Subject: [PATCH 3/3] refactor: improve create-feature component styling and template consistency - Add h-full class to root container for proper height - Update webhook events track expression to use event.value - Increase gap spacing from gap-1 to gap-2 in Session & Token Settings and Webhook Configuration sections - Change Button Container Div icon from 'html' to 'code' - Fix indentation in preview template - Update logo URL placeholder to be more descriptive example --- .../create-feature/create-feature.component.html | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/36-blocks/src/app/features/create-feature/create-feature.component.html b/apps/36-blocks/src/app/features/create-feature/create-feature.component.html index 92ba510b..751ac27b 100644 --- a/apps/36-blocks/src/app/features/create-feature/create-feature.component.html +++ b/apps/36-blocks/src/app/features/create-feature/create-feature.component.html @@ -1,4 +1,4 @@ -
+
@if ((isLoading$ | async) || (loadingScript | async)) { }
- } @@ -1102,7 +1101,7 @@

webhook Webhook Configuration

-
+
Taxes