mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-20 00:20:12 +01:00
This commit is contained in:
parent
69e3979268
commit
c115ce2c7e
5 changed files with 9 additions and 26 deletions
|
|
@ -21,7 +21,6 @@ import {
|
||||||
setTitle,
|
setTitle,
|
||||||
transactionError
|
transactionError
|
||||||
} from "./dialog/processSystem";
|
} from "./dialog/processSystem";
|
||||||
import {promiseTransactions} from "./protyle/wysiwyg/transaction";
|
|
||||||
import {initMessage} from "./dialog/message";
|
import {initMessage} from "./dialog/message";
|
||||||
import {getAllTabs} from "./layout/getAll";
|
import {getAllTabs} from "./layout/getAll";
|
||||||
import {getLocalStorage} from "./protyle/util/compatibility";
|
import {getLocalStorage} from "./protyle/util/compatibility";
|
||||||
|
|
@ -181,7 +180,6 @@ export class App {
|
||||||
});
|
});
|
||||||
setNoteBook();
|
setNoteBook();
|
||||||
initBlockPopover(this);
|
initBlockPopover(this);
|
||||||
promiseTransactions();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ import {handleTouchEnd, handleTouchMove, handleTouchStart} from "./util/touch";
|
||||||
import {fetchGet, fetchPost} from "../util/fetch";
|
import {fetchGet, fetchPost} from "../util/fetch";
|
||||||
import {initFramework} from "./util/initFramework";
|
import {initFramework} from "./util/initFramework";
|
||||||
import {addGA, initAssets, loadAssets} from "../util/assets";
|
import {addGA, initAssets, loadAssets} from "../util/assets";
|
||||||
import {promiseTransactions} from "../protyle/wysiwyg/transaction";
|
|
||||||
import {bootSync} from "../dialog/processSystem";
|
import {bootSync} from "../dialog/processSystem";
|
||||||
import {initMessage} from "../dialog/message";
|
import {initMessage} from "../dialog/message";
|
||||||
import {goBack} from "./util/MobileBackFoward";
|
import {goBack} from "./util/MobileBackFoward";
|
||||||
|
|
@ -96,7 +95,6 @@ class App {
|
||||||
handleTouchEnd(event);
|
handleTouchEnd(event);
|
||||||
}, false);
|
}, false);
|
||||||
});
|
});
|
||||||
promiseTransactions();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,9 @@ const removeTopElement = (updateElement: Element, protyle: IProtyle) => {
|
||||||
|
|
||||||
// 用于执行操作,外加处理当前编辑器中引用块、嵌入块的更新
|
// 用于执行操作,外加处理当前编辑器中引用块、嵌入块的更新
|
||||||
const promiseTransaction = () => {
|
const promiseTransaction = () => {
|
||||||
|
if (window.siyuan.transactions.length === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
const protyle = window.siyuan.transactions[0].protyle;
|
const protyle = window.siyuan.transactions[0].protyle;
|
||||||
const doOperations = window.siyuan.transactions[0].doOperations;
|
const doOperations = window.siyuan.transactions[0].doOperations;
|
||||||
const undoOperations = window.siyuan.transactions[0].undoOperations;
|
const undoOperations = window.siyuan.transactions[0].undoOperations;
|
||||||
|
|
@ -64,12 +67,9 @@ const promiseTransaction = () => {
|
||||||
undoOperations // 目前用于 ws 推送更新大纲
|
undoOperations // 目前用于 ws 推送更新大纲
|
||||||
}]
|
}]
|
||||||
}, (response) => {
|
}, (response) => {
|
||||||
if (window.siyuan.transactions.length === 0) {
|
if (window.siyuan.transactions.length !== 0) {
|
||||||
promiseTransactions();
|
|
||||||
} else {
|
|
||||||
promiseTransaction();
|
promiseTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
countBlockWord([], protyle.block.rootID, true);
|
countBlockWord([], protyle.block.rootID, true);
|
||||||
/// #if MOBILE
|
/// #if MOBILE
|
||||||
if ((0 !== window.siyuan.config.sync.provider || (0 === window.siyuan.config.sync.provider && !needSubscribe(""))) &&
|
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) => {
|
export const onTransaction = (protyle: IProtyle, operation: IOperation, focus: boolean) => {
|
||||||
const updateElements: Element[] = [];
|
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[]) => {
|
export const transaction = (protyle: IProtyle, doOperations: IOperation[], undoOperations?: IOperation[]) => {
|
||||||
const lastTransaction = window.siyuan.transactions[window.siyuan.transactions.length - 1];
|
const lastTransaction = window.siyuan.transactions[window.siyuan.transactions.length - 1];
|
||||||
let needDebounce = false;
|
let needDebounce = false;
|
||||||
|
|
@ -932,9 +921,10 @@ export const transaction = (protyle: IProtyle, doOperations: IOperation[], undoO
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
protyle.transactionTime = time;
|
protyle.transactionTime = time;
|
||||||
if (typeof window.siyuan.transactionsTimeout === "undefined") {
|
window.clearTimeout(transactionsTimeout);
|
||||||
promiseTransactions();
|
transactionsTimeout = window.setTimeout(() => {
|
||||||
}
|
promiseTransaction();
|
||||||
|
}, Constants.TIMEOUT_INPUT * 2);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const updateTransaction = (protyle: IProtyle, id: string, newHTML: string, html: string) => {
|
export const updateTransaction = (protyle: IProtyle, id: string, newHTML: string, html: string) => {
|
||||||
|
|
|
||||||
1
app/src/types/index.d.ts
vendored
1
app/src/types/index.d.ts
vendored
|
|
@ -204,7 +204,6 @@ interface INotebook {
|
||||||
interface ISiyuan {
|
interface ISiyuan {
|
||||||
storage?: { [key: string]: any },
|
storage?: { [key: string]: any },
|
||||||
printWin?: import("electron").BrowserWindow
|
printWin?: import("electron").BrowserWindow
|
||||||
transactionsTimeout?: number,
|
|
||||||
transactions?: {
|
transactions?: {
|
||||||
protyle: IProtyle,
|
protyle: IProtyle,
|
||||||
doOperations: IOperation[],
|
doOperations: IOperation[],
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ import {
|
||||||
setTitle,
|
setTitle,
|
||||||
transactionError
|
transactionError
|
||||||
} from "../dialog/processSystem";
|
} from "../dialog/processSystem";
|
||||||
import {promiseTransactions} from "../protyle/wysiwyg/transaction";
|
|
||||||
import {initMessage} from "../dialog/message";
|
import {initMessage} from "../dialog/message";
|
||||||
import {getAllTabs} from "../layout/getAll";
|
import {getAllTabs} from "../layout/getAll";
|
||||||
import {getLocalStorage} from "../protyle/util/compatibility";
|
import {getLocalStorage} from "../protyle/util/compatibility";
|
||||||
|
|
@ -145,7 +144,6 @@ class App {
|
||||||
});
|
});
|
||||||
setNoteBook();
|
setNoteBook();
|
||||||
initBlockPopover(this);
|
initBlockPopover(this);
|
||||||
promiseTransactions();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue