import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { Location } from '@angular/common'; import { MallService } from '../services/mall.service'; @Component({ selector: 'app-mall-details', templateUrl: './mall-details.page.html', styleUrls: ['./mall-details.page.scss'], }) export class MallDetailsPage implements OnInit { mallDetails: any; selected_tab: string = 'food'; show_top_bar: boolean = false; show_sort_popup: boolean = false; selected_sort: string = null; constructor( private route: ActivatedRoute, private router: Router, private location: Location, private mallService: MallService ) { } ngOnInit() { this.mallDetails = JSON.parse(this.route.snapshot.paramMap.get('mall')); } toggleOutletBookmark(outlet) { outlet.is_bookmarked = !outlet.is_bookmarked; this.mallService.updateOutlet(outlet); } toggleMallBookmark() { this.mallDetails.mall.is_bookmarked = !this.mallDetails.mall.is_bookmarked; console.log(this.mallDetails); this.mallService.updateMallData(this.mallDetails); } back() { this.location.back(); } shareMallDetails(mallData) { if (window.navigator && window.navigator['share']) { const shareData = { title: mallData.mall.mall_name, text: mallData.mall.description, url: 'https://maps.google.com/?q=' + mallData.latitude + ',' + mallData.longitude } window.navigator['share'](shareData); } } shareOutletDetails(outlet) { if (window.navigator && window.navigator['share']) { const shareData = { title: this.mallDetails.mall.mall_name + ',' + outlet.outlet_name, text: outlet.description, url: 'https://maps.google.com/?q=' + this.mallDetails.latitude + ',' + this.mallDetails.longitude } window.navigator['share'](shareData); } } onScroll(event: any) { if (event.detail.scrollTop > 100) { this.show_top_bar = true; } else { this.show_top_bar = false; } } outletDetails(outlet: any) { this.router.navigate(['/outlet-details', { outlet: JSON.stringify(outlet), mallId: this.mallDetails.mall.mall_id, mallData: JSON.stringify({ title: this.mallDetails.mall.mall_name, text: this.mallDetails.mall.description, url: 'https://maps.google.com/?q=' + this.mallDetails.latitude + ',' + this.mallDetails.longitude }) }]); } sortBy(type: string) { this.selected_sort = type; switch(this.selected_sort) { case 'name': this.mallDetails.mall.outlet.sort(function(a: any, b: any){ if(a.outlet_name < b.outlet_name) { return -1; } if(a.outlet_name > b.outlet_name) { return 1; } return 0; }); break; case 'rating': this.mallDetails.mall.outlet.sort(function(a: any, b: any){ if(a.rating < b.rating) { return -1; } if(a.rating > b.rating) { return 1; } return 0; }).reverse(); break; } } togglePopup() { this.show_sort_popup = !this.show_sort_popup; } }