|
|
|
/*
|
|
|
|
* 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/constants";
|
|
|
|
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
|
|
|
|
});
|
|
|
|
|
|
|
|
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();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|