IT WORKS
This commit is contained in:
parent
bf75b8b652
commit
ab7ad33086
3 changed files with 37 additions and 36 deletions
66
main.js
66
main.js
|
|
@ -14,6 +14,8 @@ let schedule = {
|
|||
|
||||
const offlineTitle = 'OFFLINE';
|
||||
const offlineSubtitle = 'takin a nap';
|
||||
let copyClipboard;
|
||||
let saveImage;
|
||||
|
||||
document.addEventListener('readystatechange', () => {
|
||||
document.getElementById('version').innerText = VERSION;
|
||||
|
|
@ -118,7 +120,7 @@ if ('webkit' in window && 'messageHandlers' in window.webkit) {
|
|||
let _promiseId = 0;
|
||||
let _promises = new Map();
|
||||
|
||||
window.webkit.messageHandlers._nativePromiseResolved.addEventListener('message', (event) => {
|
||||
window.addEventListener('message', (event) => {
|
||||
const [id] = event.detail;
|
||||
const [resolve,] = _promises.get(id) ?? [];
|
||||
if (!resolve) return;
|
||||
|
|
@ -126,7 +128,7 @@ if ('webkit' in window && 'messageHandlers' in window.webkit) {
|
|||
resolve();
|
||||
});
|
||||
|
||||
window.webkit.messageHandlers._nativePromiseRejected.addEventListener('message', (event) => {
|
||||
window.addEventListener('message', (event) => {
|
||||
const [id] = event.detail;
|
||||
const [,reject] = _promises.get(id) ?? [];
|
||||
if (!reject) return;
|
||||
|
|
@ -134,45 +136,41 @@ if ('webkit' in window && 'messageHandlers' in window.webkit) {
|
|||
reject();
|
||||
});
|
||||
|
||||
function copyClipboard() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const thisPromiseId = ++promiseId;
|
||||
copyClipboard = () => new Promise((resolve, reject) => {
|
||||
const thisPromiseId = ++_promiseId;
|
||||
|
||||
_promises.set(thisPromiseId, [resolve, reject]);
|
||||
_promises.set(thisPromiseId, [resolve, reject]);
|
||||
|
||||
const schedule = document.getElementById('schedule');
|
||||
const boundingRect = getBoundingClientRect();
|
||||
const schedule = document.getElementById('schedule');
|
||||
const boundingRect = schedule.getBoundingClientRect();
|
||||
|
||||
window.webkit.messageHandlers.copySnapshot.postMessage([
|
||||
thisPromiseId,
|
||||
'clipboard',
|
||||
boundingRect.x,
|
||||
boundingRect.y,
|
||||
boundingRect.width,
|
||||
boundingRect.height,
|
||||
]);
|
||||
});
|
||||
}
|
||||
window.webkit.messageHandlers.copySnapshot.postMessage([
|
||||
thisPromiseId,
|
||||
'clipboard',
|
||||
boundingRect.x + 1,
|
||||
boundingRect.y + 1,
|
||||
boundingRect.width - 2,
|
||||
boundingRect.height - 2,
|
||||
]);
|
||||
});
|
||||
|
||||
function saveImage() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const thisPromiseId = ++promiseId;
|
||||
saveImage = () => new Promise((resolve, reject) => {
|
||||
const thisPromiseId = ++_promiseId;
|
||||
|
||||
_promises.set(thisPromiseId, [resolve, reject]);
|
||||
_promises.set(thisPromiseId, [resolve, reject]);
|
||||
|
||||
const schedule = document.getElementById('schedule');
|
||||
const boundingRect = getBoundingClientRect();
|
||||
const schedule = document.getElementById('schedule');
|
||||
const boundingRect = schedule.getBoundingClientRect();
|
||||
|
||||
window.webkit.messageHandlers.copySnapshot.postMessage([
|
||||
thisPromiseId,
|
||||
'file',
|
||||
boundingRect.x,
|
||||
boundingRect.y,
|
||||
boundingRect.width,
|
||||
boundingRect.height,
|
||||
]);
|
||||
});
|
||||
}
|
||||
window.webkit.messageHandlers.copySnapshot.postMessage([
|
||||
thisPromiseId,
|
||||
'file',
|
||||
boundingRect.x + 1,
|
||||
boundingRect.y + 1,
|
||||
boundingRect.width - 2,
|
||||
boundingRect.height - 2,
|
||||
]);
|
||||
});
|
||||
|
||||
document.getElementById('clipboard').removeAttribute('disabled');
|
||||
document.getElementById('save-image').removeAttribute('disabled');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue