1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2025-11-15 14:57:13 +00:00

Make toolbar actions lift the 'text changed' flag

This commit is contained in:
Mikhail Chekan
2021-08-22 13:29:39 +08:00
parent 15415e44ff
commit 8ecb501a9a
2 changed files with 6 additions and 4 deletions

View File

@@ -1,20 +1,20 @@
(function () { (function () {
let changed = false; window.hyphaChanged = false;
let textarea = document.querySelector('.edit-form__textarea'); let textarea = document.querySelector('.edit-form__textarea');
let form = document.querySelector('.edit-form'); let form = document.querySelector('.edit-form');
let warnBeforeClosing = function (ev) { let warnBeforeClosing = function (ev) {
if (!changed) return; if (!window.hyphaChanged) return;
ev.preventDefault(); ev.preventDefault();
return ev.returnValue = 'Are you sure you want to exit? You have unsaved changes.'; return ev.returnValue = 'Are you sure you want to exit? You have unsaved changes.';
}; };
textarea.addEventListener('input', function () { textarea.addEventListener('input', function () {
changed = true; window.hyphaChanged = true;
}); });
form.addEventListener('submit', function () { form.addEventListener('submit', function () {
changed = false; window.hyphaChanged = false;
}); });
window.addEventListener('beforeunload', warnBeforeClosing); window.addEventListener('beforeunload', warnBeforeClosing);

View File

@@ -13,6 +13,7 @@ function getSelectedText(el = editTextarea) {
function textInserter(text, cursorPosition = null, el = editTextarea) { function textInserter(text, cursorPosition = null, el = editTextarea) {
return function() { return function() {
window.hyphaChanged = true;
const [start, end] = [el.selectionStart, el.selectionEnd] const [start, end] = [el.selectionStart, el.selectionEnd]
el.setRangeText(text, start, end, 'select') el.setRangeText(text, start, end, 'select')
el.focus() el.focus()
@@ -26,6 +27,7 @@ function textInserter(text, cursorPosition = null, el = editTextarea) {
function selectionWrapper(cursorPosition, prefix, postfix = null, el = editTextarea) { function selectionWrapper(cursorPosition, prefix, postfix = null, el = editTextarea) {
return function() { return function() {
window.hyphaChanged = true;
const [start, end] = [el.selectionStart, el.selectionEnd] const [start, end] = [el.selectionStart, el.selectionEnd]
if (postfix == null) { if (postfix == null) {
postfix = prefix postfix = prefix