import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { MatBottomSheet } from '@angular/material/bottom-sheet';
import { ExitComponent } from 'src/app/components/exit/exit.component';
import { CookiesService } from 'src/app/services/cookies.service';
import { MessageService } from 'primeng/api';
import { MessagingService } from 'src/app/services/messaging.service';
import { AuthService } from 'src/app/services/auth.service';
import { format } from 'src/app/utils';
const levelDescriptionsTable = [
[
'Поднимай свой уровень! Купи еще на {0}₽ и твой кешбек будет 6% с {1}!',
'А ты хорош! Купи еще на {0}₽ и получай кешбек 10% с {1}',
'Ты крут! Купи еще на {0}₽ и получай максимальный кешбек 15% с {1}',
'Ты сделал это! Купи на {0}₽ и сохраняй максимальный кешбек 15% с {1}',
],
[
'Oops! Ты оказался на 1 уровне. Купи еще на {0}₽ и твой кешбек будет 6% с {1}!',
'Ты можешь стать круче! Купи еще на {0}₽ и получай кешбек 10% с {1}',
'Ого! Ты уже здесь! Хочешь еще больше кешбека? Купи на {0}₽ и получай максимальный кешбек 15% с {1}',
'Ты потрясающий! Покупай на {0}₽ и сохраняй максимальный кешбек 15% с {1}',
],
[
'Oops! Ты оказался на 1 уровне. Купи еще на {0}₽ и твой кешбек будет 6% с {1}!',
'Ты вернулся на 2 уровень. Купи еще на {0}₽ и получай кешбек 10% с {1}',
'Ты почти на последнем уровне! Купи на {0}₽ и получай максимальный кешбек 15% с {1}',
'Ты лучший! Покупай на {0}₽ и сохраняй максимальный кешбек 15% с {1}',
],
[
'Oops! Ты оказался на 1 уровне. Купи еще на {0}₽ и твой кешбек будет 6% с {1}!',
'Ты вернулся на 2 уровень. Купи еще на {0}₽ и получай кешбек 10% с {1}',
'Оу! Ты оказался на 3 уровне. Купи на {0}₽ и возвращай себе максимальный кешбек 15% с {1}',
'Ты наш герой! Покупай на {0}₽ и сохраняй максимальный кешбек 15% с {1}',
],
];
@Component({
selector: 'app-guest-card',
templateUrl: './guest-card.component.html',
styleUrls: ['./guest-card.component.scss'],
})
export class GuestCardComponent implements OnInit {
public qrCodeSize: number = 85;
private isQrCodeClicked: boolean = false;
public Math: Math = Math;
public phone?: string;
constructor(
private _bottomSheet: MatBottomSheet,
public cookiesService: CookiesService,
private messagingService: MessagingService,
private messageService: MessageService,
public authService: AuthService
) {}
ngOnInit(): void {
this.phone =
this.cookiesService.getItem('phone-number') ||
this.authService.userInfo?.phone;
this.requestPermission();
}
requestPermission() {
const userAgent = window.navigator.userAgent.toLowerCase();
const ios = /iphone|ipod|ipad/.test(userAgent);
if (ios) {
this.messageService.clear();
this.messageService.add({
severity: 'custom',
summary: `Чтобы получать уведомления, добавьте карту в Apple Wallet`,
life: 5000,
});
// var permissionData = window.safari.pushNotification.permission('web.com.example.domain');
// $scope.checkRemotePermission(permissionData);
} else {
//FIREBASE HERE
this.messagingService.requestPermission();
// this.message = this.messagingService.currentMessage;
}
}
qrCodeClick() {
this.isQrCodeClicked = !this.isQrCodeClicked;
this.qrCodeSize = this.isQrCodeClicked ? 180 : 85;
}
deleteToken(): void {
this.cookiesService.logout();
}
logout = () => {
const bottomSheet = this._bottomSheet.open(ExitComponent);
bottomSheet.afterDismissed().subscribe({
next: (val) => {
if (val) {
this.authService.logout();
}
},
});
};
getLevelDescription() {
let curLevel = 0;
let nextLevel = 0;
if (this.authService.userInfo) {
curLevel =
this.authService.userInfo.current_level_and_cashback.current_level - 1;
nextLevel = this.authService.userInfo.next_level.next_level - 1;
}
const template = levelDescriptionsTable[curLevel][nextLevel];
return format(
template,
`${this.authService.userInfo?.next_level.sum_for_next_level}`,
`${this.authService.currentPeriod[1].locale('ru').format('D MMMM')}`
);
}
}