|
|
|
/*
|
|
|
|
* https://github.com/morethanwords/tweb
|
|
|
|
* Copyright (C) 2019-2021 Eduard Kuzmenko
|
|
|
|
* https://github.com/morethanwords/tweb/blob/master/LICENSE
|
|
|
|
*/
|
|
|
|
|
|
|
|
import {attachClickEvent} from '../../helpers/dom/clickEvent';
|
|
|
|
import {SEND_WHEN_ONLINE_TIMESTAMP} from '../../lib/mtproto/mtproto_config';
|
|
|
|
import Button from '../button';
|
|
|
|
import PopupDatePicker from './datePicker';
|
|
|
|
|
|
|
|
const getMinDate = () => {
|
|
|
|
const date = new Date();
|
|
|
|
// date.setDate(date.getDate() - 1);
|
|
|
|
date.setHours(0, 0, 0, 0);
|
|
|
|
return date;
|
|
|
|
};
|
|
|
|
|
|
|
|
const getMaxDate = () => {
|
|
|
|
const date = new Date();
|
|
|
|
date.setFullYear(date.getFullYear() + 1);
|
|
|
|
date.setDate(date.getDate() - 1);
|
|
|
|
return date;
|
|
|
|
};
|
|
|
|
|
|
|
|
const checkDate = (date: Date) => {
|
|
|
|
return date.getTime() > getMaxDate().getTime() ? new Date() : date;
|
|
|
|
};
|
|
|
|
|
|
|
|
export default class PopupSchedule extends PopupDatePicker {
|
|
|
|
constructor(initDate: Date, onPick: (timestamp: number) => void, canSendWhenOnline: boolean) {
|
|
|
|
super(checkDate(initDate), onPick, {
|
|
|
|
noButtons: true,
|
|
|
|
noTitle: true,
|
|
|
|
closable: true,
|
|
|
|
withConfirm: true,
|
|
|
|
minDate: getMinDate(),
|
|
|
|
maxDate: getMaxDate(),
|
|
|
|
withTime: true,
|
|
|
|
showOverflowMonths: true,
|
|
|
|
confirmShortcutIsSendShortcut: true,
|
|
|
|
title: true
|
|
|
|
});
|
|
|
|
|
|
|
|
this.element.classList.add('popup-schedule');
|
|
|
|
this.header.append(this.controlsDiv);
|
|
|
|
this.title.replaceWith(this.monthTitle);
|
|
|
|
this.body.append(this.btnConfirm);
|
|
|
|
|
|
|
|
if(canSendWhenOnline) {
|
|
|
|
const btnSendWhenOnline = Button('btn-primary btn-secondary btn-primary-transparent primary', {text: 'Schedule.SendWhenOnline'});
|
|
|
|
this.body.append(btnSendWhenOnline);
|
|
|
|
|
|
|
|
attachClickEvent(btnSendWhenOnline, () => {
|
|
|
|
onPick(SEND_WHEN_ONLINE_TIMESTAMP);
|
|
|
|
this.hide();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|