Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
cea77c4
refactor: add registration flow with email verification and onboardin…
dvCodeWorld Apr 15, 2026
5a534f3
feat(onboarding): CDK virtual scroll, flag images, native names, plac…
dvCodeWorld Apr 16, 2026
7652f04
Merge branch 'development' of https://github.com/Walkover-Web-Solutio…
dvCodeWorld Apr 20, 2026
23e43b0
refactor: rename token param to onboarding_token and enhance password…
dvCodeWorld Apr 20, 2026
9bf1327
refactor(auth): add Firebase auth fallback and memory token check in …
dvCodeWorld Apr 20, 2026
aed87f5
Merge branch 'development' of https://github.com/Walkover-Web-Solutio…
dvCodeWorld Apr 20, 2026
4aa31f5
Merge branch 'development' of https://github.com/Walkover-Web-Solutio…
dvCodeWorld Apr 20, 2026
9b99d76
Merge pull request #611 from Walkover-Web-Solution/dashboard-main
dvCodeWorld Apr 20, 2026
f1d664b
Merge branch 'development' of https://github.com/Walkover-Web-Solutio…
dvCodeWorld Apr 20, 2026
eb5d2a4
Merge pull request #613 from Walkover-Web-Solution/development
Saurabh186 Apr 21, 2026
cc2504a
refactor: replace AngularFireAuthGuard with custom CanActivateRouteGu…
dvCodeWorld Apr 21, 2026
35cfae2
refactor: remove ProjectGuard and unused exchangeToken functionality
dvCodeWorld Apr 21, 2026
88891df
Merge pull request #597 from Walkover-Web-Solution/P0084-clean
Saurabh186 Apr 21, 2026
0a655c9
refactor: update onboarding route path from 'onboarding' to 'app/onbo…
dvCodeWorld Apr 23, 2026
a5b241a
Merge pull request #614 from Walkover-Web-Solution/P0084-clean
Saurabh186 Apr 23, 2026
8e64c66
Cascade snapshot 2026-04-23T08:12:34.013179Z
dvCodeWorld Apr 23, 2026
77f95eb
fix: enforce base href="/" in app shell to prevent incorrect JS chunk…
dvCodeWorld Apr 23, 2026
9e1da67
Revert "fix: enforce base href="/" in app shell to prevent incorrect …
dvCodeWorld Apr 23, 2026
e9c8549
Merge pull request #615 from Walkover-Web-Solution/P0084-clean
dvCodeWorld Apr 23, 2026
64b28e3
chore: remove SSR/prerender, switch to pure CSR
dvCodeWorld Apr 23, 2026
81f38be
Merge pull request #616 from Walkover-Web-Solution/cascade/you-ve-act…
dvCodeWorld Apr 23, 2026
a44c6c3
Merge pull request #617 from Walkover-Web-Solution/P0084-clean
prakharlowanshi11 Apr 23, 2026
d741150
Revert path change on /onboarding
dvCodeWorld Apr 23, 2026
89fedfb
Merge pull request #620 from Walkover-Web-Solution/P0084-clean
dvCodeWorld Apr 23, 2026
d90c573
refactor: remove app/index.html copy logic from postbuild script
dvCodeWorld Apr 23, 2026
f201766
Merge branch 'P0084-clean' of https://github.com/Walkover-Web-Solutio…
dvCodeWorld Apr 23, 2026
da9e2c2
Merge pull request #621 from Walkover-Web-Solution/P0084-clean
Saurabh186 Apr 23, 2026
ec3477f
Merge pull request #622 from Walkover-Web-Solution/development
prakharlowanshi11 Apr 27, 2026
61c746a
feat: enhance dashboard card value retrieval with fallback option
Apr 27, 2026
c2cb88d
Merge pull request #623 from Walkover-Web-Solution/prakhar-development
Saurabh186 Apr 27, 2026
b6c17ed
Merge pull request #624 from Walkover-Web-Solution/prakhar-development
dvCodeWorld Apr 27, 2026
4c24e31
Merge pull request #618 from Walkover-Web-Solution/development
prakharlowanshi11 Apr 27, 2026
97db1f3
fix the redirection issue
May 1, 2026
883c6a9
Merge pull request #625 from Walkover-Web-Solution/prakhar-development
prakharlowanshi11 May 1, 2026
01576a5
user management inside the block
May 4, 2026
3a4e104
Merge pull request #626 from Walkover-Web-Solution/P0085-clean
prakharlowanshi11 May 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 0 additions & 5 deletions apps/36-blocks/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,6 @@
"outputPath": "dist/apps/36-blocks",
"index": "apps/36-blocks/src/index.html",
"browser": "apps/36-blocks/src/main.ts",
"server": "apps/36-blocks/src/main.server.ts",
"prerender": true,
"ssr": {
"entry": "apps/36-blocks/src/server.ts"
},
"polyfills": ["zone.js"],
"tsConfig": "apps/36-blocks/tsconfig.app.json",
"inlineStyleLanguage": "scss",
Expand Down
20 changes: 13 additions & 7 deletions apps/36-blocks/src/app/app.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,16 +118,22 @@ export class AppComponent extends BaseComponent implements OnInit, OnDestroy {
if (isPlatformBrowser(this.platformId)) {
this.actions$.pipe(ofType(logInActions.authenticatedAction), takeUntil(this.destroy$)).subscribe(() => {
const currentUrl = this.router.url;
const websiteRoutes = [
'/pricing',
'/about',
'/contact',
'/security',
'/privacy',
'/terms',
'/register',
'/login',
];
const isOnWebsiteRoute =
currentUrl === '/' ||
currentUrl === '' ||
currentUrl.startsWith('/pricing') ||
currentUrl.startsWith('/about') ||
currentUrl.startsWith('/contact') ||
currentUrl.startsWith('/security') ||
currentUrl.startsWith('/privacy') ||
currentUrl.startsWith('/terms');
if (isOnWebsiteRoute) {
websiteRoutes.some((route) => currentUrl.startsWith(route));
const isOnboardingRoute = currentUrl.startsWith('/onboarding');
if (isOnWebsiteRoute && !isOnboardingRoute) {
this.router.navigate(['/app/dashboard']);
}
});
Expand Down
4 changes: 1 addition & 3 deletions apps/36-blocks/src/app/app.config.server.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import { ApplicationConfig } from '@angular/core';
import { provideServerRendering, withRoutes } from '@angular/ssr';
import { PERSISTENCE } from '@angular/fire/compat/auth';
import { serverRoutes } from './app.routes.server';

export const config: ApplicationConfig = {
providers: [provideServerRendering(withRoutes(serverRoutes)), { provide: PERSISTENCE, useValue: 'none' }],
providers: [{ provide: PERSISTENCE, useValue: 'none' }],
};
5 changes: 4 additions & 1 deletion apps/36-blocks/src/app/app.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ import { appRoutes } from './app.routes';
import { environment } from '../environments/environment';
import { reducers, clearStateMetaReducer } from './core/ngrx/store/app.state';
import { loginsReducer } from './website/home/ngrx/store/login.state';
import { registrationReducer } from './website/home/ngrx/reducers/registration.reducer';
import { RootEffects } from './core/ngrx/effects/root';
import { LogInEffects } from './website/home/ngrx/effects/login.effects';
import { RegistrationEffects } from './website/home/ngrx/effects/registration.effects';
import { ErrorInterceptor } from '@proxy/services/interceptor/errorInterceptor';
import { ProxyBaseUrls } from '@proxy/models/root-models';
import { AuthInitializerService } from './core/auth-initializer.service';
Expand All @@ -33,7 +35,8 @@ export const appConfig: ApplicationConfig = {
provideHttpClient(withFetch(), withInterceptorsFromDi()),
provideStore(reducers, { metaReducers: [clearStateMetaReducer] }),
provideState('auth', loginsReducer),
provideEffects([RootEffects, LogInEffects]),
provideState('registration', registrationReducer),
provideEffects([RootEffects, LogInEffects, RegistrationEffects]),
...(!environment.production ? [provideStoreDevtools({ maxAge: 25, serialize: true })] : []),
{ provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },
{
Expand Down
20 changes: 0 additions & 20 deletions apps/36-blocks/src/app/app.routes.server.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,6 @@
import { RenderMode, ServerRoute } from '@angular/ssr';

export const serverRoutes: ServerRoute[] = [
{
path: '',
renderMode: RenderMode.Prerender,
},
{
path: 'app/**',
renderMode: RenderMode.Client,
},
{
path: 'widget-preview/**',
renderMode: RenderMode.Client,
},
{
path: 'project',
renderMode: RenderMode.Client,
},
{
path: 'client/**',
renderMode: RenderMode.Client,
},
{
path: '**',
renderMode: RenderMode.Client,
Expand Down
14 changes: 7 additions & 7 deletions apps/36-blocks/src/app/app.routes.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
import { Component, inject } from '@angular/core';
import { Route, Router } from '@angular/router';
import { AngularFireAuthGuard, redirectUnauthorizedTo } from '@angular/fire/compat/auth-guard';
import { CookieService } from 'ngx-cookie-service';
import { AuthService } from '@proxy/services/proxy/auth';
import { CanActivateRouteGuard } from './website/home/authguard';

@Component({ template: '', standalone: true })
class NotFoundRedirectComponent {}

const redirectUnauthorizedToLogin = () => redirectUnauthorizedTo(['login']);

export const appRoutes: Route[] = [
{
path: '',
loadChildren: () => import('./website/website.routes').then((r) => r.websiteRoutes),
},
{
path: 'onboarding',
loadComponent: () => import('./panel/onboarding/onboarding.component').then((c) => c.OnboardingComponent),
},
{
path: 'app',
loadChildren: () => import('./panel/panel.routes').then((r) => r.panelRoutes),
Expand All @@ -24,15 +26,13 @@ export const appRoutes: Route[] = [
import('./panel/features/create-feature/feature-preview/widget-preview/widget-preview.component').then(
(c) => c.WidgetPreviewComponent
),
data: { authGuardPipe: redirectUnauthorizedToLogin },
canActivate: [AngularFireAuthGuard],
canActivate: [CanActivateRouteGuard],
},
{
path: 'project',
loadComponent: () =>
import('./panel/create-project/create-project.component').then((c) => c.CreateProjectComponent),
data: { authGuardPipe: redirectUnauthorizedToLogin },
canActivate: [AngularFireAuthGuard],
canActivate: [CanActivateRouteGuard],
},
{
path: 'client',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ <h2 class="my-0 text-xl font-bold">Analytics Overview</h2>
>
</div>
<p class="text-3xl font-bold m-0 leading-tight">
{{ getCardValue(overviewData(), card.valueKey) | number }}
{{ getCardValue(overviewData(), card.valueKey, card.valueKeyFallback) | number }}
</p>
<span class="text-xs mt-1">{{ card.sub }}</span>
</div>
Expand Down
10 changes: 8 additions & 2 deletions apps/36-blocks/src/app/panel/dashboard/dashboard.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,14 @@ export class DashboardComponent extends BaseComponent implements OnInit {

readonly overviewCards = OVERVIEW_CARDS;

getCardValue(data: any, path: string): number {
return path.split('.').reduce((acc, k) => acc?.[k], data) ?? 0;
getCardValue(data: any, path: string, fallbackPath?: string): number {
const read = (p: string) => p.split('.').reduce((acc, k) => acc?.[k], data);
const primary = read(path);
if (fallbackPath) {
if (primary) return primary as number;
return (read(fallbackPath) as number) ?? 0;
}
return (primary as number) ?? 0;
}

readonly rangeOptions = RANGE_OPTIONS;
Expand Down
4 changes: 3 additions & 1 deletion apps/36-blocks/src/app/panel/dashboard/dashboard.models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ export interface IRangeOption {
export interface IOverviewCard {
key: string;
valueKey: string;
valueKeyFallback?: string;
label: string;
icon: string;
sub: string;
Expand Down Expand Up @@ -85,7 +86,8 @@ export interface IBreakdownGroupByOption {
export const OVERVIEW_CARDS: IOverviewCard[] = [
{
key: 'users',
valueKey: 'users.client_total',
valueKey: 'users.feature_configuration_total',
valueKeyFallback: 'users.client_total',
label: 'Total Users',
icon: 'people',
sub: 'registered total',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
<proxy-loader></proxy-loader>
}
<div class="flex justify-start gap-2 mb-6" [class.items-start]="isEditMode" [class.items-center]="!isEditMode">
<button type="button" matIconButton [routerLink]="['/app', 'features']">
<mat-icon>keyboard_arrow_left</mat-icon>
</button>
@if (!sideNavService.hideSidebar()) {
<button type="button" matIconButton [routerLink]="['/app', 'features']">
<mat-icon>keyboard_arrow_left</mat-icon>
</button>
}
@if (isEditMode) {
<div class="flex items-center gap-1">
@if (nameFieldEditMode) {
Expand Down Expand Up @@ -300,7 +302,11 @@ <h4 class="my-0 font-semibold text-base text-on-surface">Add New Block</h4>
@if (isEditMode) {
<div class="flex gap-4 grow items-start">
<mat-card class="outline-card p-0 grow">
<mat-tab-group animationDuration="0ms" class="h-full block-feature-tabs">
<mat-tab-group
animationDuration="0ms"
class="h-full block-feature-tabs"
[(selectedIndex)]="editModeMainTabIndex"
>
<mat-tab label="Service">
<div class="flex flex-col h-full p-6">
@if (featureForm.get('primaryDetails.feature_id')?.value === 1) {
Expand Down Expand Up @@ -437,11 +443,18 @@ <h4 class="my-0 font-semibold text-base text-on-surface">Add New Block</h4>
</mat-tab>
</mat-tab-group>
</mat-tab>
<mat-tab label="Manage Members">
<div class="flex flex-col h-full p-6">
<ng-container *ngTemplateOutlet="manageFeature"></ng-container>
</div>
</mat-tab>
</mat-tab-group>
</mat-card>
<div class="shrink-0 sticky top-0 self-start">
<ng-container *ngTemplateOutlet="previewAuthorization"></ng-container>
</div>
@if (editModeMainTabIndex !== editModeManageMembersTabIndex) {
<div class="shrink-0 sticky top-0 self-start">
<ng-container *ngTemplateOutlet="previewAuthorization"></ng-container>
</div>
}
</div>
}
</div>
Expand Down Expand Up @@ -1191,6 +1204,15 @@ <h2 class="mat-h2 font-semibold text-light-gray mb-0" [style.color]="getEffectiv
</div>
</ng-template>

<ng-template #manageFeature>
<div class="flex flex-col gap-4">
<div class="">
<div>
<proxy-management [referenceId]="getReferenceId()"></proxy-management>
</div>
</div>
</div>
</ng-template>
<ng-template #webhook>
<div class="flex flex-col gap-6 my-4">
<div class="card-with-header">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,9 @@ import { CreatePlanDialogComponent } from './create-plan-dialog/create-plan-dial
import { CreateTaxDialogComponent } from './create-tax-dialog/create-tax-dialog.component';
import { ConfirmDialogComponent } from '@proxy/ui/confirm-dialog';
import { ServiceListComponent, ServiceListItem } from '@proxy/ui/service-list';
import { ManagementComponent } from '../../users/management/management.component';
import { UiSettingsService } from '../../layout/ui-settings.service';
import { SideNavService } from '../../layout/side-nav.service';
import { WidgetThemeService } from 'apps/36-blocks-widget/src/app/otp/service/widget-theme.service';
import { MatButtonToggleModule } from '@angular/material/button-toggle';
import { FeaturePreviewComponent } from './feature-preview/feature-preview.component';
Expand Down Expand Up @@ -139,6 +141,7 @@ export interface PeriodicElement {
ServiceListComponent,
MatButtonToggleModule,
FeaturePreviewComponent,
ManagementComponent,
],
templateUrl: './create-feature.component.html',
styleUrls: ['./create-feature.component.scss'],
Expand All @@ -160,6 +163,7 @@ export class CreateFeatureComponent extends BaseComponent implements OnDestroy,
private http = inject(HttpClient);
private uiSettings = inject(UiSettingsService);
private themeService = inject(WidgetThemeService);
public readonly sideNavService = inject(SideNavService);

public taxes: any[] = [];
public createPlanForm: any;
Expand Down Expand Up @@ -220,6 +224,10 @@ export class CreateFeatureComponent extends BaseComponent implements OnDestroy,
public uploadLogoUrl$: Observable<string | null> = this.componentStore.uploadLogoUrl$;
public errorInUploadLogo$: Observable<boolean> = this.componentStore.errorInUploadLogo$;
public isEditMode = false;
/** Selected index of the edit-mode tab group; used to hide the preview panel on Manage Members. */
public editModeMainTabIndex = 0;
/** Manage Members tab index: Service, Branding, Setting, Design & code, Webhook, Manage Members. */
public readonly editModeManageMembersTabIndex = 5;
public previewInputPosition: 'top' | 'bottom' = 'top';
public selectedServiceIndex = 0;
public selectedSubscriptionServiceIndex = -2;
Expand Down
41 changes: 0 additions & 41 deletions apps/36-blocks/src/app/panel/guard/project.guard.ts

This file was deleted.

6 changes: 2 additions & 4 deletions apps/36-blocks/src/app/panel/layout/layout.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
class="flex flex-col transition-all duration-200 mat-drawer-content max-desktop:fixed max-desktop:z-[999] max-desktop:top-0 max-desktop:bottom-0 bg-color p-2"
[class.mat-drawer-toggle-btn-hover]="sideNavService.isSideNavOpen()"
[class]="!sideNavService.isSideNavOpen() ? 'overflow-hidden !w-[56px] p-1.5' : 'w-[260px]'"
[class.!hidden]="sideNavService.hideSidebar()"
>
@let clientSettings = clientSettings$ | async; @let clientList = clients$ | async;
@let isMultipleClients = (clientList?.data?.length ?? 0) > 1;
Expand Down Expand Up @@ -71,10 +72,7 @@
</button>
</div>
<!-- Proxy Sidenav::START -->
<proxy-main-left-side-nav
class="mat-drawer-nav proxy-left-menu flex-1"
[isSideNavOpen]="!sideNavService.isSideNavOpen()"
></proxy-main-left-side-nav>
<proxy-main-left-side-nav class="mat-drawer-nav proxy-left-menu flex-1"></proxy-main-left-side-nav>
<!-- Proxy Sidenav::END -->
@if (logInData$ | async; as user) {
<proxy-sidebar-user-menu
Expand Down
Loading
Loading