perf(app): reuse result byte estimates across tab switches

This commit is contained in:
vrustx authored and GitHub committed 2026-07-17 13:48:06 +08:00
1 parent 1dc5c10a6c
commit b45bf7077f
4 files changed
+268 -18

No files matched your search

@@ -95,6 +95,8 @@ export interface UseDataGridEditorOptions {
pageSize: Ref<number>;
currentPage: Ref<number>;
cacheKey?: ComputedRef<string | undefined>;
/** 保存成功后结果负载被原地修改时通知宿主,使缓存的字节估算失效。 */
onResultPayloadMutated?: () => void;
emit: {
(event: "reload", sql?: string, searchText?: string, whereInput?: string, orderBy?: string, limit?: number, offset?: number): void;
};
@@ -1214,6 +1216,7 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
snapshot.newRowRefs.forEach((row) => savingNewRows.delete(row));
customHandler.applySavedChanges?.({ dirtyRows: snapshot.dirtyRows, columns: result.value.columns });
applyDirtyRowsToResult(snapshot);
options.onResultPayloadMutated?.();
clearSavedPendingChanges(snapshot);
if (!hasPendingChanges.value) exitTransaction();
clearPendingChangeHistory();
@@ -1308,6 +1311,7 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
console.warn("[DBX] failed to record data grid history", e);
}
applyDirtyRowsToResult(snapshot);
options.onResultPayloadMutated?.();
snapshot.newRowRefs.forEach((row) => savingNewRows.delete(row));
clearSavedPendingChanges(snapshot);
if (!hasPendingChanges.value) exitTransaction();