| @@ -1,72 +1,76 @@ | |||||
| import { NgModule } from '@angular/core'; | |||||
| import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; | |||||
| const routes: Routes = [ | |||||
| { | |||||
| path: '', | |||||
| loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'home', | |||||
| loadChildren: () => import('./home/home.module').then( m => m.HomePageModule) | |||||
| }, | |||||
| { | |||||
| path: 'live', | |||||
| loadChildren: () => import('./live/live.module').then( m => m.LivePageModule) | |||||
| }, | |||||
| { | |||||
| path: 'more', | |||||
| loadChildren: () => import('./more/more.module').then( m => m.MorePageModule) | |||||
| }, | |||||
| { | |||||
| path: 'home-details', | |||||
| loadChildren: () => import('./home-details/home-details.module').then( m => m.HomeDetailsPageModule) | |||||
| }, | |||||
| { | |||||
| 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) | |||||
| }, | |||||
| { | |||||
| path: 'booking-details', | |||||
| loadChildren: () => import('./booking-details/booking-details.module').then( m => m.BookingDetailsPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'match-details', | |||||
| loadChildren: () => import('./match-details/match-details.module').then( m => m.MatchDetailsPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'chat', | |||||
| loadChildren: () => import('./chat/chat.module').then( m => m.ChatPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'collections', | |||||
| loadChildren: () => import('./collections/collections.module').then( m => m.CollectionsPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'add-party', | |||||
| loadChildren: () => import('./add-party/add-party.module').then( m => m.AddPartyPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'ar-fan-cam', | |||||
| loadChildren: () => import('./ar-fan-cam/ar-fan-cam.module').then( m => m.ArFanCamPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'quiz', | |||||
| loadChildren: () => import('./quiz/quiz.module').then( m => m.QuizPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'shop', | |||||
| loadChildren: () => import('./shop/shop.module').then( m => m.ShopPageModule) | |||||
| import { NgModule } from '@angular/core'; | |||||
| import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; | |||||
| const routes: Routes = [ | |||||
| { | |||||
| path: '', | |||||
| loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'home', | |||||
| loadChildren: () => import('./home/home.module').then( m => m.HomePageModule) | |||||
| }, | |||||
| { | |||||
| path: 'live', | |||||
| loadChildren: () => import('./live/live.module').then( m => m.LivePageModule) | |||||
| }, | |||||
| { | |||||
| path: 'more', | |||||
| loadChildren: () => import('./more/more.module').then( m => m.MorePageModule) | |||||
| }, | |||||
| { | |||||
| path: 'home-details', | |||||
| loadChildren: () => import('./home-details/home-details.module').then( m => m.HomeDetailsPageModule) | |||||
| }, | |||||
| { | |||||
| 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) | |||||
| }, | |||||
| { | |||||
| path: 'booking-details', | |||||
| loadChildren: () => import('./booking-details/booking-details.module').then( m => m.BookingDetailsPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'match-details', | |||||
| loadChildren: () => import('./match-details/match-details.module').then( m => m.MatchDetailsPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'chat', | |||||
| loadChildren: () => import('./chat/chat.module').then( m => m.ChatPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'collections', | |||||
| loadChildren: () => import('./collections/collections.module').then( m => m.CollectionsPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'add-party', | |||||
| loadChildren: () => import('./add-party/add-party.module').then( m => m.AddPartyPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'ar-fan-cam', | |||||
| loadChildren: () => import('./ar-fan-cam/ar-fan-cam.module').then( m => m.ArFanCamPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'quiz', | |||||
| loadChildren: () => import('./quiz/quiz.module').then( m => m.QuizPageModule) | |||||
| }, | |||||
| { | |||||
| path: 'shop', | |||||
| loadChildren: () => import('./shop/shop.module').then( m => m.ShopPageModule) | |||||
| }, { | |||||
| path: 'fan-zone', | |||||
| loadChildren: () => import('./fan-zone/fan-zone.module').then( m => m.FanZonePageModule) | |||||
| } | } | ||||
| ]; | |||||
| @NgModule({ | |||||
| imports: [ | |||||
| RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) | |||||
| ], | |||||
| exports: [RouterModule] | |||||
| }) | |||||
| export class AppRoutingModule {} | |||||
| ]; | |||||
| @NgModule({ | |||||
| imports: [ | |||||
| RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) | |||||
| ], | |||||
| exports: [RouterModule] | |||||
| }) | |||||
| export class AppRoutingModule {} | |||||
| @@ -0,0 +1,17 @@ | |||||
| import { NgModule } from '@angular/core'; | |||||
| import { Routes, RouterModule } from '@angular/router'; | |||||
| import { FanZonePage } from './fan-zone.page'; | |||||
| const routes: Routes = [ | |||||
| { | |||||
| path: '', | |||||
| component: FanZonePage | |||||
| } | |||||
| ]; | |||||
| @NgModule({ | |||||
| imports: [RouterModule.forChild(routes)], | |||||
| exports: [RouterModule], | |||||
| }) | |||||
| export class FanZonePageRoutingModule {} | |||||
| @@ -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 { FanZonePageRoutingModule } from './fan-zone-routing.module'; | |||||
| import { FanZonePage } from './fan-zone.page'; | |||||
| @NgModule({ | |||||
| imports: [ | |||||
| CommonModule, | |||||
| FormsModule, | |||||
| IonicModule, | |||||
| FanZonePageRoutingModule | |||||
| ], | |||||
| declarations: [FanZonePage] | |||||
| }) | |||||
| export class FanZonePageModule {} | |||||
| @@ -0,0 +1,60 @@ | |||||
| <ion-content> | |||||
| <div class="content-container"> | |||||
| <div class="heading-holder"> | |||||
| <h2 class="main-header"> | |||||
| #FanZone | |||||
| </h2> | |||||
| <p> | |||||
| Games, Merch & More! | |||||
| </p> | |||||
| </div> | |||||
| <ul class="stories"> | |||||
| <li *ngFor="let story of fanStories" [ngClass]="{'active' : !story.opened }"> | |||||
| {{ story.profileImage }} | |||||
| </li> | |||||
| </ul> | |||||
| <ul class="fan-feature-list"> | |||||
| <li [routerLink]="['/ar-fan-cam']"> | |||||
| <div> | |||||
| <ion-icon name="camera-outline"></ion-icon> | |||||
| <label> Fan Cam </label> | |||||
| </div> | |||||
| </li> | |||||
| <li [routerLink]="['/collections']"> | |||||
| <div> | |||||
| <ion-icon name="trophy-outline"></ion-icon> | |||||
| <label> Collections </label> | |||||
| </div> | |||||
| </li> | |||||
| <li [routerLink]="['/quiz']"> | |||||
| <div> | |||||
| <ion-icon name="bar-chart-outline"></ion-icon> | |||||
| <label> Quiz </label> | |||||
| </div> | |||||
| </li> | |||||
| <li [routerLink]="['/shop']"> | |||||
| <div> | |||||
| <ion-icon name="bag-handle-outline"></ion-icon> | |||||
| <label> Shop </label> | |||||
| </div> | |||||
| </li> | |||||
| <li [routerLink]="['/booking']"> | |||||
| <div> | |||||
| <ion-icon name="ticket-outline"></ion-icon> | |||||
| <label> Tickets </label> | |||||
| </div> | |||||
| </li> | |||||
| </ul> | |||||
| </div> | |||||
| </ion-content> | |||||
| @@ -0,0 +1,72 @@ | |||||
| @import '../colors'; | |||||
| .content-container { | |||||
| padding-bottom: 50px; | |||||
| } | |||||
| .heading-holder { | |||||
| padding: 0px 7%; | |||||
| .main-header { | |||||
| background: linear-gradient(90deg, lighten($brand-red, 0%), lighten($brand-red, 10%) 50%); | |||||
| -webkit-background-clip: text; | |||||
| background-clip: text; | |||||
| -webkit-text-fill-color: transparent; | |||||
| font-size: 2.3rem; | |||||
| font-weight: 700; | |||||
| letter-spacing: 1px; | |||||
| margin: 5% 0%; | |||||
| } | |||||
| p { | |||||
| color: $blue-grey; | |||||
| font-size: 1.2rem; | |||||
| font-weight: 500; | |||||
| } | |||||
| } | |||||
| .fan-feature-list { | |||||
| display: flex; | |||||
| align-items: center; | |||||
| width: 100%; | |||||
| padding: 0 5%; | |||||
| flex-wrap: wrap; | |||||
| list-style: none; | |||||
| margin: 0; | |||||
| li { | |||||
| border-radius: 7px; | |||||
| background-color: rgba(white, 0.1); | |||||
| box-shadow: 5px 5px 10px -5px darken($dark-blue, 5%); | |||||
| color: $blue-grey; | |||||
| width: 25vw; | |||||
| height: 25vw; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| padding: 10px; | |||||
| text-align: center; | |||||
| margin: 10px 2vw; | |||||
| line-height: 1.5; | |||||
| } | |||||
| label { | |||||
| display: block; | |||||
| font-size: 0.9rem; | |||||
| margin-top: 10px; | |||||
| } | |||||
| ion-icon { | |||||
| margin: 0 auto; | |||||
| display: block; | |||||
| font-size: 1.8rem; | |||||
| } | |||||
| } | |||||
| .stories { | |||||
| display: inline-block; | |||||
| li { | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,24 @@ | |||||
| import { async, ComponentFixture, TestBed } from '@angular/core/testing'; | |||||
| import { IonicModule } from '@ionic/angular'; | |||||
| import { FanZonePage } from './fan-zone.page'; | |||||
| describe('FanZonePage', () => { | |||||
| let component: FanZonePage; | |||||
| let fixture: ComponentFixture<FanZonePage>; | |||||
| beforeEach(async(() => { | |||||
| TestBed.configureTestingModule({ | |||||
| declarations: [ FanZonePage ], | |||||
| imports: [IonicModule.forRoot()] | |||||
| }).compileComponents(); | |||||
| fixture = TestBed.createComponent(FanZonePage); | |||||
| component = fixture.componentInstance; | |||||
| fixture.detectChanges(); | |||||
| })); | |||||
| it('should create', () => { | |||||
| expect(component).toBeTruthy(); | |||||
| }); | |||||
| }); | |||||
| @@ -0,0 +1,38 @@ | |||||
| import { Component, OnInit } from '@angular/core'; | |||||
| @Component({ | |||||
| selector: 'app-fan-zone', | |||||
| templateUrl: './fan-zone.page.html', | |||||
| styleUrls: ['./fan-zone.page.scss'], | |||||
| }) | |||||
| export class FanZonePage implements OnInit { | |||||
| fanStories: Array<{ | |||||
| profileImage: string, | |||||
| name: string, | |||||
| storyImage: string, | |||||
| likeCount: number, | |||||
| opened: boolean | |||||
| }>; | |||||
| constructor() { } | |||||
| ngOnInit() { | |||||
| this.fanStories = [{ | |||||
| name: 'Amarpreet', | |||||
| likeCount: 230, | |||||
| profileImage: 'https://th.bing.com/th/id/OIP.AAvPtBwt0-1npE8vxTgTeQHaHa?pid=Api&rs=1', | |||||
| storyImage: 'https://www.kxip.in/static-assets/waf-images/43/75/3e/16-9/796-597/sG5PGkS0K7.jpg', | |||||
| opened: false, | |||||
| }, { | |||||
| name: 'Prem', | |||||
| likeCount: 230, | |||||
| profileImage: 'https://m.media-amazon.com/images/M/MV5BMmNkMjNkZmEtYWNhYS00ZjI0LTkzZTktZmViODI1NmI0ZmMyXkEyXkFqcGdeQXVyMTM1ODM2MjM@._V1_UY317_CR130,0,214,317_AL_.jpg', | |||||
| storyImage: 'https://i.pinimg.com/originals/dd/78/64/dd78643b1b2980bcfa83daa2d188fa91.jpg', | |||||
| opened: false | |||||
| }] | |||||
| } | |||||
| } | |||||
| @@ -297,6 +297,7 @@ | |||||
| font-weight: 500; | font-weight: 500; | ||||
| height: 40px; | height: 40px; | ||||
| padding: 0 15px; | padding: 0 15px; | ||||
| background-color: white; | |||||
| } | } | ||||
| button { | button { | ||||
| @@ -131,17 +131,17 @@ | |||||
| </div> | </div> | ||||
| <ion-fab vertical="bottom" horizontal="end" slot="fixed" *ngIf="!showAddParty"> | |||||
| <ion-fab vertical="bottom" horizontal="end" slot="fixed"> | |||||
| <ion-fab-button class="chat-button" (click)="presentChatModal()"> | <ion-fab-button class="chat-button" (click)="presentChatModal()"> | ||||
| <ion-icon name="chatbubble-ellipses-outline"></ion-icon> | <ion-icon name="chatbubble-ellipses-outline"></ion-icon> | ||||
| <ion-badge color="dark"> 10 </ion-badge> | <ion-badge color="dark"> 10 </ion-badge> | ||||
| </ion-fab-button> | </ion-fab-button> | ||||
| </ion-fab> | </ion-fab> | ||||
| <ion-fab vertical="bottom" horizontal="end" slot="fixed" *ngIf="showAddParty"> | |||||
| <!-- <ion-fab vertical="bottom" horizontal="end" slot="fixed" *ngIf="showAddParty"> | |||||
| <ion-fab-button class="chat-button" (click)="presentAddChatModal()"> | <ion-fab-button class="chat-button" (click)="presentAddChatModal()"> | ||||
| <ion-icon name="add-outline"></ion-icon> | <ion-icon name="add-outline"></ion-icon> | ||||
| </ion-fab-button> | </ion-fab-button> | ||||
| </ion-fab> | |||||
| </ion-fab> --> | |||||
| </ion-content> | </ion-content> | ||||
| @@ -51,8 +51,8 @@ | |||||
| </section> | </section> | ||||
| <button class="next-button" (click)="startQuiz()"> | |||||
| <span class="text"> Restart </span> | |||||
| <button class="next-button" (click)="back()"> | |||||
| <span class="text"> Back </span> | |||||
| <span class="dot"></span> | <span class="dot"></span> | ||||
| </button> | </button> | ||||
| @@ -1,5 +1,6 @@ | |||||
| import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
| import * as faker from 'faker'; | import * as faker from 'faker'; | ||||
| import { Location } from '@angular/common'; | |||||
| @Component({ | @Component({ | ||||
| selector: 'app-quiz', | selector: 'app-quiz', | ||||
| @@ -24,7 +25,13 @@ export class QuizPage implements OnInit { | |||||
| }>; | }>; | ||||
| showReport: boolean = true; | showReport: boolean = true; | ||||
| constructor() { } | |||||
| constructor( | |||||
| private location: Location | |||||
| ) { } | |||||
| back() { | |||||
| this.location.back(); | |||||
| } | |||||
| ngOnInit() { | ngOnInit() { | ||||
| this.startQuiz(); | this.startQuiz(); | ||||
| @@ -43,14 +50,19 @@ export class QuizPage implements OnInit { | |||||
| } | } | ||||
| }, 1000); | }, 1000); | ||||
| let cardQuestions = []; | |||||
| for (let i = 0; i < 4; i += 1) { | |||||
| cardQuestions.push({ | |||||
| text: faker.lorem.sentence(), | |||||
| image: faker.image.abstract() | |||||
| }); | |||||
| } | |||||
| let cardQuestions = [{ | |||||
| text: 'Is this Chris Gayle?', | |||||
| image: 'https://i.ebayimg.com/images/g/IP0AAOSwaZVec~9X/s-l300.jpg' | |||||
| }, { | |||||
| text: 'KL Rahul has scored 4 consecutive 50s, True or False?', | |||||
| image: 'https://www.insidesport.co/wp-content/uploads/2019/04/KL-Rahul-1-696x464.jpg' | |||||
| }, { | |||||
| text: 'Who is a better Capt?', | |||||
| image: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUsEaO3_mUEhJ6OGUcu5LS-ZfPi228FSLxng&usqp=CAU' | |||||
| }, { | |||||
| text: 'Who will win the next game?', | |||||
| image: 'https://firstsportz.com/wp-content/uploads/2020/10/WhatsApp-Image-2020-10-25-at-6.12.13-PM-1024x576.jpeg' | |||||
| }]; | |||||
| this.questions = [{ | this.questions = [{ | ||||
| type: 'MCQ', | type: 'MCQ', | ||||
| @@ -9,7 +9,7 @@ | |||||
| </section> | </section> | ||||
| <div class="action-buttons"> | <div class="action-buttons"> | ||||
| <button (click)="userClickedButton($event, false)"> <ion-icon name="close-outline"></ion-icon> </button> | |||||
| <button (click)="userClickedButton($event, true)"> <ion-icon name="checkmark"></ion-icon> </button> | |||||
| <button (click)="userClickedButton($event, false)"> <ion-icon name="chevron-back-outline"></ion-icon> </button> | |||||
| <button (click)="userClickedButton($event, true)"> <ion-icon name="chevron-forward-outline"></ion-icon> </button> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -29,7 +29,7 @@ | |||||
| img { | img { | ||||
| width: 100%; | width: 100%; | ||||
| object-fit: cover; | |||||
| object-fit: contain; | |||||
| display: block; | display: block; | ||||
| border-radius: 10px; | border-radius: 10px; | ||||
| margin-bottom: 10px; | margin-bottom: 10px; | ||||
| @@ -38,6 +38,10 @@ const routes: Routes = [ | |||||
| { | { | ||||
| path: 'shop', | path: 'shop', | ||||
| loadChildren: () => import('../shop/shop.module').then( m => m.ShopPageModule) | loadChildren: () => import('../shop/shop.module').then( m => m.ShopPageModule) | ||||
| }, | |||||
| { | |||||
| path: 'fan-zone', | |||||
| loadChildren: () => import('../fan-zone/fan-zone.module').then( m => m.FanZonePageModule) | |||||
| } | } | ||||
| ] | ] | ||||
| }, | }, | ||||
| @@ -11,31 +11,10 @@ | |||||
| <ion-icon name="play-circle"></ion-icon> | <ion-icon name="play-circle"></ion-icon> | ||||
| </ion-tab-button> | </ion-tab-button> | ||||
| <ion-tab-button tab="ar"> | |||||
| <ion-icon name="camera-outline"></ion-icon> | |||||
| <ion-icon name="camera"></ion-icon> | |||||
| </ion-tab-button> | |||||
| <ion-tab-button tab="booking"> | |||||
| <ion-icon name="ticket-outline"></ion-icon> | |||||
| <ion-icon name="ticket"></ion-icon> | |||||
| </ion-tab-button> | |||||
| <ion-tab-button tab="collections"> | |||||
| <ion-icon name="trophy-outline"></ion-icon> | |||||
| <ion-icon name="trophy"></ion-icon> | |||||
| </ion-tab-button> | |||||
| <ion-tab-button tab="quiz"> | |||||
| <ion-tab-button tab="fan-zone"> | |||||
| <ion-icon name="game-controller-outline"></ion-icon> | <ion-icon name="game-controller-outline"></ion-icon> | ||||
| <ion-icon name="game-controller"></ion-icon> | <ion-icon name="game-controller"></ion-icon> | ||||
| </ion-tab-button> | </ion-tab-button> | ||||
| <ion-tab-button tab="shop"> | |||||
| <ion-icon name="bag-handle-outline"></ion-icon> | |||||
| <ion-icon name="bag-handle"></ion-icon> | |||||
| </ion-tab-button> | |||||
| </ion-tab-bar> | </ion-tab-bar> | ||||
| </ion-tabs> | </ion-tabs> | ||||