diff --git a/package-lock.json b/package-lock.json index a083c1d..db9d8df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5122,6 +5122,11 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, + "faker": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/faker/-/faker-5.1.0.tgz", + "integrity": "sha512-RrWKFSSA/aNLP0g3o2WW1Zez7/MnMr7xkiZmoCfAGZmdkDQZ6l2KtuXHN5XjdvpRjDl8+3vf+Rrtl06Z352+Mw==" + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", diff --git a/package.json b/package.json index afbfabb..b2c08b9 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@ionic-native/splash-screen": "^5.0.0", "@ionic-native/status-bar": "^5.0.0", "@ionic/angular": "^5.0.0", + "faker": "^5.1.0", "rxjs": "~6.5.5", "tslib": "^2.0.0", "zone.js": "~0.10.3" diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index d3f2471..0007531 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -25,6 +25,10 @@ const routes: Routes = [ { path: 'player-stats', loadChildren: () => import('./player-stats/player-stats.module').then( m => m.PlayerStatsPageModule) + }, + { + path: 'booking', + loadChildren: () => import('./booking/booking.module').then( m => m.BookingPageModule) } ]; @NgModule({ diff --git a/src/app/booking/booking-routing.module.ts b/src/app/booking/booking-routing.module.ts new file mode 100644 index 0000000..80dc108 --- /dev/null +++ b/src/app/booking/booking-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { BookingPage } from './booking.page'; + +const routes: Routes = [ + { + path: '', + component: BookingPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class BookingPageRoutingModule {} diff --git a/src/app/booking/booking.module.ts b/src/app/booking/booking.module.ts new file mode 100644 index 0000000..27a3644 --- /dev/null +++ b/src/app/booking/booking.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { BookingPageRoutingModule } from './booking-routing.module'; + +import { BookingPage } from './booking.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + BookingPageRoutingModule + ], + declarations: [BookingPage] +}) +export class BookingPageModule {} diff --git a/src/app/booking/booking.page.html b/src/app/booking/booking.page.html new file mode 100644 index 0000000..51b96c6 --- /dev/null +++ b/src/app/booking/booking.page.html @@ -0,0 +1,14 @@ + + + + Booking + + + News + Videos + + + + diff --git a/src/app/booking/booking.page.scss b/src/app/booking/booking.page.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/booking/booking.page.spec.ts b/src/app/booking/booking.page.spec.ts new file mode 100644 index 0000000..e5b1ee2 --- /dev/null +++ b/src/app/booking/booking.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { BookingPage } from './booking.page'; + +describe('BookingPage', () => { + let component: BookingPage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ BookingPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(BookingPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/booking/booking.page.ts b/src/app/booking/booking.page.ts new file mode 100644 index 0000000..f61ec98 --- /dev/null +++ b/src/app/booking/booking.page.ts @@ -0,0 +1,85 @@ +import { Component, OnInit } from '@angular/core'; +import * as faker from 'faker'; + +@Component({ + selector: 'app-booking', + templateUrl: './booking.page.html', + styleUrls: ['./booking.page.scss'], +}) +export class BookingPage implements OnInit { + + bookingSeatsData: Array<{ + dateTime: Date | string, + matchDetails: { + home: { + name: string, + image: string, + }, + away: { + name: string, + image: string, + } + }, + seatsAvailable: Array<{ + stand: 'Grand' | 'Pavilion' | 'First' | 'Second', + seats: Array<{ + id: number | string, + price: number + }> + }> + }> = []; + + constructor() { } + + ngOnInit() { + for (let i = 0; i < 3; i += 1) { + this.bookingSeatsData.push({ + dateTime: faker.date.future(), + matchDetails: { + home: { + name: 'KXIP', + image: 'assets/home-team/KXIP.svg' + }, + away: { + name: 'MI', + image: 'assets/home-team/KXIP.svg' + } + }, + seatsAvailable: [{ + stand: 'Grand', + seats: [], + }, { + stand: 'Pavilion', + seats: [], + }, { + stand: 'First', + seats: [], + }, { + stand: 'Second', + seats: [], + }] + }); + } + + + setTimeout(() => { + for (let i = 0; i < this.bookingSeatsData.length; i += 1) { + for (let j = 0; j < this.bookingSeatsData[i].seatsAvailable.length; j += 1) { + + let price = faker.commerce.price(); + + for (let k = 0; k < 5; k += 1) { + this.bookingSeatsData[i].seatsAvailable[j].seats.push({ + id: this.bookingSeatsData[i].seatsAvailable[j].stand + '##' + k.toString(), + price + }); + } + } + } + }, 100); + + console.log(this.bookingSeatsData); + + } + +} diff --git a/src/app/tabs/tabs-routing.module.ts b/src/app/tabs/tabs-routing.module.ts index 10260a4..6d586fb 100644 --- a/src/app/tabs/tabs-routing.module.ts +++ b/src/app/tabs/tabs-routing.module.ts @@ -22,6 +22,10 @@ const routes: Routes = [ { path: 'player-stats', loadChildren: () => import('../player-stats/player-stats.module').then( m => m.PlayerStatsPageModule) + }, + { + path: 'booking', + loadChildren: () => import('../booking/booking.module').then( m => m.BookingPageModule) } ] }, diff --git a/src/app/tabs/tabs.page.html b/src/app/tabs/tabs.page.html index 4de8f21..2a15380 100644 --- a/src/app/tabs/tabs.page.html +++ b/src/app/tabs/tabs.page.html @@ -16,9 +16,9 @@ - - - + + + diff --git a/src/app/tabs/tabs.page.scss b/src/app/tabs/tabs.page.scss index f9c00f1..d2f5935 100644 --- a/src/app/tabs/tabs.page.scss +++ b/src/app/tabs/tabs.page.scss @@ -3,7 +3,6 @@ ion-tab-bar { --border: none; margin-top: -1px; box-shadow: 0px 0px 15px rgba(var(--light-grey-rgb), 0.5); - transition: var(--background) 0.3s; --color: var(--light-grey); --color-selected: var(--brand-black); @@ -11,12 +10,14 @@ ion-tab-bar { --background: #24367c; --color: white; --color-selected: #01b868; + box-shadow: none; } &.dark { --background: #161e2d; --color: white; --color-selected: #01b868; + box-shadow: none; } ion-tab-button { diff --git a/src/global.scss b/src/global.scss index c1964ea..ce411dc 100644 --- a/src/global.scss +++ b/src/global.scss @@ -45,7 +45,7 @@ figure { @keyframes fadeIn { 0% { opacity: 0; - transform: translateY(10vh); + transform: translateY(3vh); } 100% { opacity: 1;