Remotely/Server/wwwroot/scripts/RemoteControl/ClipboardWatcher.ts
2021-07-29 07:56:16 -07:00

36 lines
1.1 KiB
TypeScript

import { MainRc } from "./Main.js";
export class ClipboardWatcher {
ClipboardTimer: number;
LastClipboardText: string;
PauseMonitoring: boolean;
WatchClipboard() {
navigator.clipboard.readText().then(currentText => {
this.LastClipboardText = currentText;
this.ClipboardTimer = setInterval(() => {
if (this.PauseMonitoring) {
return;
}
if (!document.hasFocus()) {
return;
}
navigator.clipboard.readText().then(newText => {
if (this.LastClipboardText != newText) {
this.LastClipboardText = newText;
MainRc.MessageSender.SendClipboardTransfer(newText, false);
}
})
}, 100);
});
}
SetClipboardText(text: string) {
this.PauseMonitoring = true;
this.LastClipboardText = text;
navigator.clipboard.writeText(text);
this.PauseMonitoring = false;
}
}