Commit 4966586e authored by Marcelo Rivera's avatar Marcelo Rivera

(feat): intercept non-pro redirects and redirect to minds.com

1 merge request!528WIP: (feat): Minds Pro
Pipeline #81356306 failed with stages
in 7 minutes and 33 seconds
import {
ChangeDetectorRef,
Component,
HostBinding,
NgZone,
} from '@angular/core';
import { Component, HostBinding, } from '@angular/core';
import { NotificationService } from './modules/notifications/notification.service';
import { AnalyticsService } from './services/analytics';
......@@ -12,11 +7,10 @@ import { Session } from './services/session';
import { LoginReferrerService } from './services/login-referrer.service';
import { ScrollToTopService } from './services/scroll-to-top.service';
import { ContextService } from './services/context.service';
import { BlockchainService } from './modules/blockchain/blockchain.service';
import { Web3WalletService } from './modules/blockchain/web3-wallet.service';
import { Client } from './services/api/client';
import { WebtorrentService } from './modules/webtorrent/webtorrent.service';
import { ActivatedRoute, Router } from '@angular/router';
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
import { ChannelOnboardingService } from './modules/onboarding/channel/onboarding.service';
import { BlockListService } from './common/services/block-list.service';
import { FeaturesService } from './services/features.service';
......@@ -25,6 +19,7 @@ import { BannedService } from './modules/report/banned/banned.service';
import { DiagnosticsService } from './services/diagnostics.service';
import { SiteService } from './services/site.service';
import { PRO_DOMAIN_ROUTES } from './modules/pro/pro.module';
import { Subscription } from "rxjs";
@Component({
moduleId: module.id,
......@@ -41,6 +36,21 @@ export class Minds {
paramsSubscription;
protected router$: Subscription;
proRoutes = [
'/feed',
'/images',
'/videos',
'/articles',
'/groups',
'/login',
'/forgot_password',
'/newsfeed',
'/media',
'/blog'
];
constructor(
public session: Session,
public route: ActivatedRoute,
......@@ -73,8 +83,30 @@ export class Minds {
this.diagnostics.setUser(this.minds.user);
this.diagnostics.listen(); // Listen for user changes
if (!this.site.isProDomain) {
if (this.site.isProDomain) {
this.notificationService.getNotifications();
this.router$ = this.router.events.subscribe(
(navigationEvent: NavigationEnd) => {
try {
if (navigationEvent instanceof NavigationEnd) {
if (!navigationEvent.urlAfterRedirects) {
return;
}
let url = navigationEvent.url.substring(1, navigationEvent.url.length)
.split(';')[0]
.split('?')[0];
if (!this.searchRoutes(url, this.proRoutes)) {
window.location.href = window.Minds.site_url + url;
}
}
} catch (e) {
console.error('Minds: router hook(SearchBar)', e);
}
}
);
}
this.session.isLoggedIn(async is => {
......@@ -123,6 +155,16 @@ export class Minds {
this.themeService.setUp();
}
private searchRoutes(url: string, routes: Array<string>): boolean {
for (let route of routes) {
if (route.includes(url)) {
return true;
}
}
return false;
}
ngOnDestroy() {
this.loginReferrer.unlisten();
this.scrollToTop.unlisten();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment