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..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)) { }
- } @@ -1106,7 +1101,7 @@

webhook Webhook Configuration

-
+
Taxes 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 ecdadc0f..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 }} @@ -26,7 +30,9 @@ }
} @else { - apps + apps }
@@ -53,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()) { } @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 { diff --git a/libs/ui/service-list/src/lib/service-list.component.html b/libs/ui/service-list/src/lib/service-list.component.html index e635fe80..7cec2050 100644 --- a/libs/ui/service-list/src/lib/service-list.component.html +++ b/libs/ui/service-list/src/lib/service-list.component.html @@ -1,18 +1,17 @@ - + @for (service of services(); track service; let i = $index) { - -
- {{ service.name }} +
- 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({