show reload alert dialog

This commit is contained in:
codetypes committed 2024-11-21 23:04:39 +08:00
1 parent 78ee7bcc76
commit 1cced07da9
3 files changed
+21 -25

No files matched your search

+7 -3
View File
@@ -342,9 +342,13 @@ export const Editor: FC<EditorProps> = ({ onUpdate: updateState, data: editor, .
const file = readJson(editor.path) as TreeModel;
editor.data = b3util.createTreeData(file.root);
editor.autoId = b3util.refreshTreeDataId(editor.data);
editor.graph.changeData(editor.data);
editor.graph.layout();
restoreViewport();
editor.unsave = false;
updateState();
if (editor.graph) {
editor.graph.changeData(editor.data);
editor.graph.layout();
restoreViewport();
}
};
const checkSubtree = () => {
+5 -11
View File
@@ -28,10 +28,10 @@ export const Workspace: FC = () => {
edit: useWorkspace((state) => state.edit),
editing: useWorkspace((state) => state.editing),
editors: useWorkspace((state) => state.editors),
modifiedEditors: useWorkspace((state) => state.modifiedEditors),
fileTree: useWorkspace((state) => state.fileTree),
find: useWorkspace((state) => state.find),
init: useWorkspace((state) => state.init),
modifiedTime: useWorkspace((state) => state.modifiedTime),
isShowingSearch: useWorkspace((state) => state.isShowingSearch),
onShowingSearch: useWorkspace((state) => state.onShowingSearch),
openProject: useWorkspace((state) => state.openProject),
@@ -96,17 +96,11 @@ export const Workspace: FC = () => {
useEffect(() => {
const editor = workspace.editing;
if (editor && workspace.modifiedEditors.includes(editor)) {
if (editor?.alertReload) {
if (isShowingAlert) {
return;
}
setShowingAlert(true);
const modifiedEditors = workspace.modifiedEditors.filter((v) => v !== editor);
console.log(
"modified:",
editor.path,
modifiedEditors.map((v) => v.path)
);
const alert = modal.confirm({
centered: true,
content: (
@@ -123,21 +117,21 @@ export const Workspace: FC = () => {
<Button
type="primary"
onClick={() => {
editor.alertReload = false;
editor.dispatch("reload");
alert.destroy();
keysRef.current?.focus();
setShowingAlert(false);
useWorkspace.setState({ modifiedEditors: modifiedEditors });
}}
>
{t("reload")}
</Button>
<Button
onClick={() => {
editor.alertReload = false;
alert.destroy();
keysRef.current?.focus();
setShowingAlert(false);
useWorkspace.setState({ modifiedEditors: modifiedEditors });
}}
>
{t("cancel")}
@@ -147,7 +141,7 @@ export const Workspace: FC = () => {
),
});
}
}, [workspace.modifiedEditors, workspace.editing]);
}, [workspace.editing, workspace.modifiedTime]);
const showSaveDialog = (editor: EditorStore) => {
if (isShowingAlert) {