|
@@ -7,6 +7,7 @@ import "../components/ToolIcon.scss";
|
|
|
import { Tooltip } from "../components/Tooltip";
|
|
|
import { DarkModeToggle, Appearence } from "../components/DarkModeToggle";
|
|
|
import { loadFromJSON, saveAsJSON } from "../data";
|
|
|
+import { resaveAsImageWithScene } from "../data/resave";
|
|
|
import { t } from "../i18n";
|
|
|
import { useIsMobile } from "../components/App";
|
|
|
import { KEYS } from "../keys";
|
|
@@ -18,6 +19,7 @@ import { DEFAULT_EXPORT_PADDING, EXPORT_SCALES } from "../constants";
|
|
|
import { getSelectedElements, isSomeElementSelected } from "../scene";
|
|
|
import { getNonDeletedElements } from "../element";
|
|
|
import { ActiveFile } from "../components/ActiveFile";
|
|
|
+import { isImageFileHandle } from "../data/blob";
|
|
|
|
|
|
export const actionChangeProjectName = register({
|
|
|
name: "changeProjectName",
|
|
@@ -128,8 +130,12 @@ export const actionSaveToActiveFile = register({
|
|
|
name: "saveToActiveFile",
|
|
|
perform: async (elements, appState, value) => {
|
|
|
const fileHandleExists = !!appState.fileHandle;
|
|
|
+
|
|
|
try {
|
|
|
- const { fileHandle } = await saveAsJSON(elements, appState);
|
|
|
+ const { fileHandle } = isImageFileHandle(appState.fileHandle)
|
|
|
+ ? await resaveAsImageWithScene(elements, appState)
|
|
|
+ : await saveAsJSON(elements, appState);
|
|
|
+
|
|
|
return {
|
|
|
commitToHistory: false,
|
|
|
appState: {
|