Native UI #1

Open
julia wants to merge 7 commits from jj/native into main
Showing only changes of commit f37337f088 - Show all commits

92
main.js
View file

@ -117,63 +117,63 @@ function altText() {
}
if ('webkit' in window && 'messageHandlers' in window.webkit) {
let _promiseId = 0;
let _promises = new Map();
let _promiseId = 0;
let _promises = new Map();
window.addEventListener('message', (event) => {
const [id] = event.detail;
const [resolve,] = _promises.get(id) ?? [];
if (!resolve) return;
_promises.delete(id);
resolve();
});
window.addEventListener('message', (event) => {
const [id] = event.detail;
const [resolve,] = _promises.get(id) ?? [];
if (!resolve) return;
_promises.delete(id);
resolve();
});
window.addEventListener('message', (event) => {
const [id] = event.detail;
const [,reject] = _promises.get(id) ?? [];
if (!reject) return;
_promises.delete(id);
reject();
});
window.addEventListener('message', (event) => {
const [id] = event.detail;
const [,reject] = _promises.get(id) ?? [];
if (!reject) return;
_promises.delete(id);
reject();
});
copyClipboard = () => 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 = schedule.getBoundingClientRect();
const schedule = document.getElementById('schedule');
const boundingRect = schedule.getBoundingClientRect();
window.webkit.messageHandlers.copySnapshot.postMessage([
thisPromiseId,
'clipboard',
boundingRect.x + 1,
boundingRect.y + 1,
boundingRect.width - 2,
boundingRect.height - 2,
]);
});
window.webkit.messageHandlers.copySnapshot.postMessage([
thisPromiseId,
'clipboard',
boundingRect.x + 1,
boundingRect.y + 1,
boundingRect.width - 2,
boundingRect.height - 2,
]);
});
saveImage = () => 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 = schedule.getBoundingClientRect();
const schedule = document.getElementById('schedule');
const boundingRect = schedule.getBoundingClientRect();
window.webkit.messageHandlers.copySnapshot.postMessage([
thisPromiseId,
'file',
boundingRect.x + 1,
boundingRect.y + 1,
boundingRect.width - 2,
boundingRect.height - 2,
]);
});
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');
document.getElementById('clipboard').removeAttribute('disabled');
document.getElementById('save-image').removeAttribute('disabled');
}
function exportJSON() {