|
@@ -1,7 +1,7 @@
|
|
|
import React from "react";
|
|
|
import { ProjectName } from "../components/ProjectName";
|
|
|
import { saveAsJSON, loadFromJSON } from "../data";
|
|
|
-import { load, save } from "../components/icons";
|
|
|
+import { load, save, saveAs } from "../components/icons";
|
|
|
import { ToolButton } from "../components/ToolButton";
|
|
|
import { t } from "../i18n";
|
|
|
import useIsMobile from "../is-mobile";
|
|
@@ -65,11 +65,13 @@ export const actionChangeShouldAddWatermark = register({
|
|
|
export const actionSaveScene = register({
|
|
|
name: "saveScene",
|
|
|
perform: (elements, appState, value) => {
|
|
|
- saveAsJSON(elements, appState).catch((error) => console.error(error));
|
|
|
+ saveAsJSON(elements, appState, (window as any).handle).catch((error) =>
|
|
|
+ console.error(error),
|
|
|
+ );
|
|
|
return { commitToHistory: false };
|
|
|
},
|
|
|
keyTest: (event) => {
|
|
|
- return event.key === "s" && event[KEYS.CTRL_OR_CMD];
|
|
|
+ return event.key === "s" && event[KEYS.CTRL_OR_CMD] && !event.shiftKey;
|
|
|
},
|
|
|
PanelComponent: ({ updateData }) => (
|
|
|
<ToolButton
|
|
@@ -83,6 +85,28 @@ export const actionSaveScene = register({
|
|
|
),
|
|
|
});
|
|
|
|
|
|
+export const actionSaveAsScene = register({
|
|
|
+ name: "saveAsScene",
|
|
|
+ perform: (elements, appState, value) => {
|
|
|
+ saveAsJSON(elements, appState, null).catch((error) => console.error(error));
|
|
|
+ return { commitToHistory: false };
|
|
|
+ },
|
|
|
+ keyTest: (event) => {
|
|
|
+ return event.key === "s" && event.shiftKey && event[KEYS.CTRL_OR_CMD];
|
|
|
+ },
|
|
|
+ PanelComponent: ({ updateData }) => (
|
|
|
+ <ToolButton
|
|
|
+ type="button"
|
|
|
+ icon={saveAs}
|
|
|
+ title={t("buttons.saveAs")}
|
|
|
+ aria-label={t("buttons.saveAs")}
|
|
|
+ showAriaLabel={useIsMobile()}
|
|
|
+ hidden={!("chooseFileSystemEntries" in window)}
|
|
|
+ onClick={() => updateData(null)}
|
|
|
+ />
|
|
|
+ ),
|
|
|
+});
|
|
|
+
|
|
|
export const actionLoadScene = register({
|
|
|
name: "loadScene",
|
|
|
perform: (
|