Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion website/src/app/app.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export class AppComponent {
this.loadPlausible();
}

loadPlausible() {
public loadPlausible() {
// Ensure we are in the browser (not SSR)
if (isPlatformBrowser(this.platformId)) {
const script = document.createElement('script');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,11 @@ export class ImportDialogComponent implements OnInit {
) { }

public ngOnInit(): void {
const originUrl = sessionStorage.getItem('referrerUrl') ?? '';
this.form = this.fb.group({
meshStackUrl: this.fb.nonNullable.control('', [Validators.required, Validators.pattern(/^(https?:\/\/).*/)]),
meshStackUrl: this.fb.nonNullable.control(
originUrl, [Validators.required, Validators.pattern(/^(https?:\/\/).*/)]
),
});
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CommonModule } from '@angular/common';
import { Component, OnDestroy, OnInit } from '@angular/core';
import { CommonModule, isPlatformBrowser } from '@angular/common';
import { Component, Inject, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core';
import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable, Subscription, forkJoin, map, tap } from 'rxjs';
Expand Down Expand Up @@ -34,24 +34,24 @@ export class TemplateGalleryComponent implements OnInit, OnDestroy {
private route: ActivatedRoute,
private fb: FormBuilder,
private templateService: TemplateService,
private platformLogoService: PlatformLogoService
private platformLogoService: PlatformLogoService,
@Inject(PLATFORM_ID) private platformId: Object
) {}

public ngOnInit(): void {
this.initializeSearchForm();
this.subscribeToRouteParams();
this.setupMessageListener();
}

public ngOnDestroy(): void {
this.paramSubscription.unsubscribe();
this.removeMessageListener();
}

public onSearch(): void {
const searchTerm = this.searchForm.value.searchTerm;
this.templates$ = this.getTemplatesWithLogos(
this.templateService.search(searchTerm)
);

this.templates$ = this.getTemplatesWithLogos(this.templateService.search(searchTerm));
this.isSearch = !!searchTerm;
this.router.navigate(['/all']);
}
Expand Down Expand Up @@ -93,4 +93,24 @@ export class TemplateGalleryComponent implements OnInit, OnDestroy {
)
);
}

private setupMessageListener(): void {
if (isPlatformBrowser(this.platformId)) {
window.addEventListener('message', this.handleMessage.bind(this), false);
}
}

private removeMessageListener(): void {
if (isPlatformBrowser(this.platformId)) {
window.removeEventListener('message', this.handleMessage.bind(this), false);
}
}

private handleMessage(event: MessageEvent): void {
const originUrl = event.data.originUrl;

if (typeof originUrl === 'string') {
sessionStorage.setItem('referrerUrl', originUrl);
}
}
}
Loading