This commit is contained in:
Joel Wetzell
2022-11-11 10:13:19 -06:00
parent 40074f88ea
commit 4bce077a76
10 changed files with 59 additions and 115 deletions
-14
View File
@@ -1,14 +0,0 @@
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { FiveoclockComponent } from './fiveoclock/fiveoclock.component';
import { TimezoneListComponent } from './timezone/components/timezone-list/timezone-list.component';
const routes: Routes = [
{ path: '', component: FiveoclockComponent },
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
+7 -1
View File
@@ -1 +1,7 @@
<router-outlet></router-outlet>
<app-timezone-list
*ngIf="fiveOclocks"
[timezones]="fiveOclocks"
[closest]="fiveOclock"
[showAll]="showAll"
(click)="toggleView()">
</app-timezone-list>
+51 -7
View File
@@ -1,5 +1,9 @@
import { Component } from '@angular/core';
import { NavigationEnd, Router } from '@angular/router';
import { interval, startWith } from 'rxjs';
import { GoogleAnalyticsService } from './services/google-analytics.service';
import { Timezone, GetClosestTimezoneFrom } from './timezone/models/timezone.model';
import { TimezoneService } from './timezone/services/timezone.service';
declare let gtag: Function;
@Component({
@@ -9,13 +13,53 @@ declare let gtag: Function;
})
export class AppComponent {
constructor(public router: Router) {
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
gtag('config', 'G-48B6CKS0V6',{
'page_path': event.urlAfterRedirects
});
}
fiveOclocks: Timezone[] = [];
fiveOclock: Timezone | undefined;
showAll: boolean = false;
timezones: string[] =[]
constructor(
private timezoneService: TimezoneService,
private googleAnalyticsService: GoogleAnalyticsService,
private router:Router
){
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
gtag('config', 'G-48B6CKS0V6',{
'page_path': event.urlAfterRedirects
});
}
})
this.timezones = this.timezoneService.getTimezones()
var second = interval(1000).pipe(startWith(0))
second.subscribe(()=>{
this.fiveOclocks = [];
this.timezoneService.getCurrentTimeInTimezones(this.timezones).forEach((timezoneObj)=>{
if(timezoneObj.time?.hour === 17){
this.fiveOclocks.push(timezoneObj);
}
})
this.fiveOclock = GetClosestTimezoneFrom(this.timezoneService.getCurrentTimezone(), this.fiveOclocks)
})
}
ngOnInit(): void { }
toggleView(){
if(this.showAll){
this.googleAnalyticsService.emitEvent('select_content', {
'event_label' : 'timezone_closest',
})
}else{
this.googleAnalyticsService.emitEvent('select_content', {
'event_label' : 'timezone_list',
})
}
this.showAll = !this.showAll
}
}
-4
View File
@@ -4,20 +4,16 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import { TimezoneService } from './timezone/services/timezone.service';
import { AppRoutingModule } from './app-routing.module';
import { TimezoneListComponent } from './timezone/components/timezone-list/timezone-list.component';
import { FiveoclockComponent } from './fiveoclock/fiveoclock.component';
import { GoogleAnalyticsService } from './services/google-analytics.service';
@NgModule({
declarations: [
AppComponent,
TimezoneListComponent,
FiveoclockComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
AppRoutingModule
],
providers: [
TimezoneService,
@@ -1,7 +0,0 @@
<app-timezone-list
*ngIf="fiveOclocks"
[timezones]="fiveOclocks"
[closest]="fiveOclock"
[showAll]="showAll"
(click)="toggleView()">
</app-timezone-list>
@@ -1,25 +0,0 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FiveoclockComponent } from './fiveoclock.component';
describe('FiveoclockComponent', () => {
let component: FiveoclockComponent;
let fixture: ComponentFixture<FiveoclockComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ FiveoclockComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(FiveoclockComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -1,56 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { interval, startWith } from 'rxjs';
import { GoogleAnalyticsService } from '../services/google-analytics.service';
import { GetClosestTimezoneFrom, Timezone, TimezoneCompare, TimezoneList } from '../timezone/models/timezone.model';
import { TimezoneService } from '../timezone/services/timezone.service';
@Component({
selector: 'app-fiveoclock',
templateUrl: './fiveoclock.component.html',
styleUrls: ['./fiveoclock.component.scss']
})
export class FiveoclockComponent implements OnInit {
fiveOclocks: Timezone[] = [];
fiveOclock: Timezone | undefined;
showAll: boolean = false;
timezones: string[] =[]
constructor(
private timezoneService: TimezoneService,
private googleAnalyticsService: GoogleAnalyticsService
){
this.timezones = this.timezoneService.getTimezones()
var second = interval(1000).pipe(startWith(0))
second.subscribe(()=>{
this.fiveOclocks = [];
this.timezoneService.getCurrentTimeInTimezones(this.timezones).forEach((timezoneObj)=>{
if(timezoneObj.time?.hour === 17){
this.fiveOclocks.push(timezoneObj);
}
})
this.fiveOclock = GetClosestTimezoneFrom(this.timezoneService.getCurrentTimezone(), this.fiveOclocks)
})
}
ngOnInit(): void { }
toggleView(){
if(this.showAll){
this.googleAnalyticsService.emitEvent('select_content', {
'event_label' : 'timezone_closest',
})
}else{
this.googleAnalyticsService.emitEvent('select_content', {
'event_label' : 'timezone_list',
})
}
this.showAll = !this.showAll
}
}
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

+1 -1
View File
@@ -6,7 +6,7 @@
<title>itsfiveoclockwhere</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- <link rel="icon" type="image/x-icon" href="favicon.ico">ng serv -->
<link rel="icon" type="image/x-icon" href="favicon.ico">ng serv
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-48B6CKS0V6"></script>
<script>