dateClick=(date)=>{
var dates = localStorage.getItem('datesSelected')
if (Array.isArray(dates))
{
if (dates.find(d=>d==date)){
//Такая дата уже есть, снимаем выбор всех дат
localStorage.setItem('datesSelected',[])
draw([]) // обновляем классы отображения
}
else{ // если такой даты еще не было добавляем ее в массив
dates.push(date)
localStorage.setItem('datesSelected',dates)
draw(dates) // обновляем классы отображения
}
}
else localStorage.setItem('datesSelected',[date]) //если еще ничего не было задано, задаем одну дату
}
const __async=(promise)=>{
if (!process.promises || !Array.isArray(process.promises)) process.promises=[];
process.promises.push(promise)
}
const __withasync= (handler)=>{
return async (req,res)=>{
var result = await handler(req,res);
if (process.promises && Array.isArray(process.promises)) await Promise.all(process.promises);
return result;
}
}
module.exports={__async,__withasync}
var doAnimatedScroll(action,distance,speed){
/* пишем функцию, которая делает плавный скролл на нужное количество пикселей в нужном направлении.
на время анимации ставим window.fixPositionAnimationInProgress=true;
и лочим скролл страницы
*/
}
/* Функция, решающая как "поправить" слайды */
var fixPositionAnimation=function(){
var delta = window.scrollY % window.innerHeight;
var action="MOVE UP";
var distance = delta;
if (delta<window.innerHeight/2) {
action="MOVEDOWN"
distance = window.innerHeight-delta;
}
doAnimatedScroll(action,distance,700)
}
/* Функция, попытки скролла. Вместе с функцией ниже срабатывает, только для последнего вызова в череде, того, у которого правильный id*/
var tryScroll = function(uid){
if (window.scrollUid==uid&&window.fixPositionAnimationInProgress) {
fixPositionAnimation()
}
}
var condensor = function(){
if (!window.fixPositionAnimationInProgress)
setTimeout(function(){
var uid=Date.now;
window.scrollUid=uid;
tryScroll(uid)}, 1000)
}
window.onscroll = condensor
const {send} = require('micro')
const axios = require('axios')
module.exports = async (req, res) => {
var result = await axios.post(API_LINK,{token:SECRETTOKEN}).then(d=>d.data))
send(res,200,result);
};
{
"version": 2,
"name": "nodejs",
"builds": [
{ "src": "*.js", "use": "@now/node" }
]
}
npm init -y && npm install axios micro --save && now
document.querySelectorAll('[data-item='+e.target.getAttribute('data-item')+']')
.forEach(liActive=>
{liActive.className='active'})
document.querySelectorAll('[data-item]').forEach(liElem=>{
if(liElem.className==='active')){
document.querySelectorAll('[data-item='+liElem.getAttribute('data-item')+']')
.forEach(liActive=>
{liActive.className='active'})
}
}