не работают попапы на некоторых устройствах

remotes/origin/hotfix/popup-fix
gzbender 7 years ago
parent 25754326cc
commit 83737506c4
  1. 206
      web/src/js/modules/popup.js

@ -67,104 +67,6 @@ $(document).ready(function () {
});
};
$(".js-video-modal").each(function(){
const $this = $(this);
const url = $this.data('videoUrl');
if(! url){
return;
}
let data;
let videoId;
let channel;
if(url.indexOf('youtu.be') > -1){
videoId = url.split('youtu.be/')[1];
channel = 'youtube';
}
if(url.indexOf('youtube.com') > -1 && url.indexOf('watch') > -1){
const m = /[?&]v=([^&]+)(&.+)?$/.exec(url);
channel = 'youtube';
videoId = m && m[1];
}
if(url.indexOf('vimeo.com') > -1){
const split = url.split('/');
channel = 'vimeo';
videoId = split[split.length - 1];
}
$this.attr('data-video-id', videoId);
$this.attr('data-video-url', '');
$this.attr('data-channel', channel);
$this.modalVideo({ channel, jsapi: true });
});
$(".js-video-modal").on('player-created', e => {
if(window.LIL_STORE.user.id || $(e.target).data('trialLesson') && Cookies.get(EMAIL_CAPTURED_COOKIE)
|| ! $(e.target).data('freeLesson')){
return;
}
const channel = $(e.target).data('channel');
const player = e.detail.player;
let timeout = null;
const freeLesson = $(e.target).data('freeLesson')
const interval = 1000 * (freeLesson ? 180 : 60); // 1 min
const pauseVideo = () => {
timeout = setTimeout(() => {
clearTimeout(timeout);
const $modalVideo = $('.modal-video');
if(! $modalVideo.length){
return;
}
if(channel == 'youtube'){
player.pauseVideo();
}
else if(channel == 'vimeo'){
player.pause();
}
$modalVideo.css('opacity', 0);
if(freeLesson){
popup = $('.js-popup-auth');
showPopup();
}
else{
captureEmail(true).then(() => {
$modalVideo.css('opacity', 1);
Cookies.set(EMAIL_CAPTURED_COOKIE, 1);
if(channel == 'youtube'){
player.playVideo();
}
else if(channel == 'vimeo'){
player.play();
}
}).catch(() => {
$('.modal-video').remove();
});
}
}, interval);
}
if(channel == 'youtube'){
window.onYTPlayerStateChange = (event) => {
if(event.data == YT.PlayerState.PLAYING && ! timeout){
pauseVideo();
}
if(event.data == YT.PlayerState.ENDED && timeout){
clearTimeout(timeout);
}
}
player.addEventListener('onStateChange', 'onYTPlayerStateChange');
}
else if (channel == 'vimeo'){
player.on('play', () => {
if(! timeout){
pauseVideo();
}
})
player.on('ended', () => {
if(timeout){
clearTimeout(timeout);
}
});
}
});
body.on('click', '[data-popup]', function(e){
const $this = $(this);
let data = $this.data('popup');
@ -176,7 +78,7 @@ $(document).ready(function () {
popup = $(data);
if(data === '.js-popup-buy') {
if(data == '.js-popup-buy') {
popup.data('date-start', $this.data('date-start') || '');
popup.data('day', $this.data('day') || '');
popup.data('is-camp', $this.data('is-camp') || '');
@ -229,7 +131,7 @@ $(document).ready(function () {
updateCart();
}
if(data === '.js-popup-course-buy'){
if(data == '.js-popup-course-buy'){
const updateCourseCart = () => {
const $orderPrice = popup.find('.order_price_text');
const useBonuses = $bonusesCheckbox.prop('checked');
@ -270,7 +172,7 @@ $(document).ready(function () {
popup.data('next-url', nextUrl);
}
if( data === '.js-popup-enter-gift-code') {
if( data == '.js-popup-enter-gift-code') {
const $giftCode = popup.find('.enter-gift-code__code');
const $giftError = popup.find('.enter-gift-code__error');
$giftCode.val('');
@ -287,7 +189,7 @@ $(document).ready(function () {
const showDef = showPopup();
if( data === '.js-popup-auth') {
if( data == '.js-popup-auth') {
showDef.then(() => {
const login = popup.find('.js-auth-login');
const pass = popup.find('.js-auth-pass');
@ -296,7 +198,7 @@ $(document).ready(function () {
});
}
if(data === '.js-popup-ref-link') {
if(data == '.js-popup-ref-link') {
showDef.then(() => {
$('#referrer-url').select();
});
@ -333,6 +235,104 @@ $(document).ready(function () {
showPopup();
}
$(".js-video-modal").each(function(){
const $this = $(this);
const url = $this.data('videoUrl');
if(! url){
return;
}
let data;
let videoId;
let channel;
if(url.indexOf('youtu.be') > -1){
videoId = url.split('youtu.be/')[1];
channel = 'youtube';
}
if(url.indexOf('youtube.com') > -1 && url.indexOf('watch') > -1){
const m = /[?&]v=([^&]+)(&.+)?$/.exec(url);
channel = 'youtube';
videoId = m && m[1];
}
if(url.indexOf('vimeo.com') > -1){
const split = url.split('/');
channel = 'vimeo';
videoId = split[split.length - 1];
}
$this.attr('data-video-id', videoId);
$this.attr('data-video-url', '');
$this.attr('data-channel', channel);
$this.modalVideo({ channel, jsapi: true });
});
$(".js-video-modal").on('player-created', e => {
if(window.LIL_STORE.user.id || $(e.target).data('trialLesson') && Cookies.get(EMAIL_CAPTURED_COOKIE)
|| ! $(e.target).data('freeLesson')){
return;
}
const channel = $(e.target).data('channel');
const player = e.detail.player;
let timeout = null;
const freeLesson = $(e.target).data('freeLesson')
const interval = 1000 * (freeLesson ? 180 : 60); // 1 min
const pauseVideo = () => {
timeout = setTimeout(() => {
clearTimeout(timeout);
const $modalVideo = $('.modal-video');
if(! $modalVideo.length){
return;
}
if(channel == 'youtube'){
player.pauseVideo();
}
else if(channel == 'vimeo'){
player.pause();
}
$modalVideo.css('opacity', 0);
if(freeLesson){
popup = $('.js-popup-auth');
showPopup();
}
else{
captureEmail(true).then(() => {
$modalVideo.css('opacity', 1);
Cookies.set(EMAIL_CAPTURED_COOKIE, 1);
if(channel == 'youtube'){
player.playVideo();
}
else if(channel == 'vimeo'){
player.play();
}
}).catch(() => {
$('.modal-video').remove();
});
}
}, interval);
}
if(channel == 'youtube'){
window.onYTPlayerStateChange = (event) => {
if(event.data == YT.PlayerState.PLAYING && ! timeout){
pauseVideo();
}
if(event.data == YT.PlayerState.ENDED && timeout){
clearTimeout(timeout);
}
}
player.addEventListener('onStateChange', 'onYTPlayerStateChange');
}
else if (channel == 'vimeo'){
player.on('play', () => {
if(! timeout){
pauseVideo();
}
})
player.on('ended', () => {
if(timeout){
clearTimeout(timeout);
}
});
}
});
if(window.LIL_STORE.user.id && window.LIL_STORE.user.hasNewBonuses && window.LIL_STORE.user.bonus > 0){
$(document).ready(() => {
popup = $('.js-popup-bonuses-came');

Loading…
Cancel
Save