Vanessa 2023-06-09 21:39:49 +08:00
parent 69e3979268
commit c115ce2c7e
5 changed files with 9 additions and 26 deletions

View file

@ -21,7 +21,6 @@ import {
setTitle,
transactionError
} from "./dialog/processSystem";
import {promiseTransactions} from "./protyle/wysiwyg/transaction";
import {initMessage} from "./dialog/message";
import {getAllTabs} from "./layout/getAll";
import {getLocalStorage} from "./protyle/util/compatibility";
@ -181,7 +180,6 @@ export class App {
});
setNoteBook();
initBlockPopover(this);
promiseTransactions();
}
}

View file

@ -11,7 +11,6 @@ import {handleTouchEnd, handleTouchMove, handleTouchStart} from "./util/touch";
import {fetchGet, fetchPost} from "../util/fetch";
import {initFramework} from "./util/initFramework";
import {addGA, initAssets, loadAssets} from "../util/assets";
import {promiseTransactions} from "../protyle/wysiwyg/transaction";
import {bootSync} from "../dialog/processSystem";
import {initMessage} from "../dialog/message";
import {goBack} from "./util/MobileBackFoward";
@ -96,7 +95,6 @@ class App {
handleTouchEnd(event);
}, false);
});
promiseTransactions();
}
}

View file

@ -50,6 +50,9 @@ const removeTopElement = (updateElement: Element, protyle: IProtyle) => {
// 用于执行操作,外加处理当前编辑器中引用块、嵌入块的更新
const promiseTransaction = () => {
if (window.siyuan.transactions.length === 0) {
return;
}
const protyle = window.siyuan.transactions[0].protyle;
const doOperations = window.siyuan.transactions[0].doOperations;
const undoOperations = window.siyuan.transactions[0].undoOperations;
@ -64,12 +67,9 @@ const promiseTransaction = () => {
undoOperations // 目前用于 ws 推送更新大纲
}]
}, (response) => {
if (window.siyuan.transactions.length === 0) {
promiseTransactions();
} else {
if (window.siyuan.transactions.length !== 0) {
promiseTransaction();
}
countBlockWord([], protyle.block.rootID, true);
/// #if MOBILE
if ((0 !== window.siyuan.config.sync.provider || (0 === window.siyuan.config.sync.provider && !needSubscribe(""))) &&
@ -315,18 +315,6 @@ const updateEmbed = (protyle: IProtyle, operation: IOperation) => {
}
};
export const promiseTransactions = () => {
window.clearInterval(window.siyuan.transactionsTimeout);
window.siyuan.transactionsTimeout = window.setInterval(() => {
if (window.siyuan.transactions.length === 0) {
return;
}
window.clearInterval(window.siyuan.transactionsTimeout);
window.siyuan.transactionsTimeout = undefined;
promiseTransaction();
}, Constants.TIMEOUT_INPUT * 2);
};
// 用于推送和撤销
export const onTransaction = (protyle: IProtyle, operation: IOperation, focus: boolean) => {
const updateElements: Element[] = [];
@ -897,6 +885,7 @@ const updateRef = (protyle: IProtyle, id: string, index = 0) => {
});
};
let transactionsTimeout: number;
export const transaction = (protyle: IProtyle, doOperations: IOperation[], undoOperations?: IOperation[]) => {
const lastTransaction = window.siyuan.transactions[window.siyuan.transactions.length - 1];
let needDebounce = false;
@ -932,9 +921,10 @@ export const transaction = (protyle: IProtyle, doOperations: IOperation[], undoO
});
}
protyle.transactionTime = time;
if (typeof window.siyuan.transactionsTimeout === "undefined") {
promiseTransactions();
}
window.clearTimeout(transactionsTimeout);
transactionsTimeout = window.setTimeout(() => {
promiseTransaction();
}, Constants.TIMEOUT_INPUT * 2);
};
export const updateTransaction = (protyle: IProtyle, id: string, newHTML: string, html: string) => {

View file

@ -204,7 +204,6 @@ interface INotebook {
interface ISiyuan {
storage?: { [key: string]: any },
printWin?: import("electron").BrowserWindow
transactionsTimeout?: number,
transactions?: {
protyle: IProtyle,
doOperations: IOperation[],

View file

@ -15,7 +15,6 @@ import {
setTitle,
transactionError
} from "../dialog/processSystem";
import {promiseTransactions} from "../protyle/wysiwyg/transaction";
import {initMessage} from "../dialog/message";
import {getAllTabs} from "../layout/getAll";
import {getLocalStorage} from "../protyle/util/compatibility";
@ -145,7 +144,6 @@ class App {
});
setNoteBook();
initBlockPopover(this);
promiseTransactions();
}
}