diff --git a/src/actions/actionExport.tsx b/src/actions/actionExport.tsx index dcca0e824..cba9ecaf4 100644 --- a/src/actions/actionExport.tsx +++ b/src/actions/actionExport.tsx @@ -25,7 +25,7 @@ import { nativeFileSystemSupported } from "../data/filesystem"; import { Theme } from "../element/types"; import "../components/ToolIcon.scss"; -import Select from "../components/Select"; +import Select, { convertToSelectItems } from "../components/Select"; export const actionChangeProjectName = register({ name: "changeProjectName", @@ -119,21 +119,27 @@ export const actionChangeFancyBackgroundImageUrl = register({ trackEvent: { category: "export", action: "toggleBackgroundImage" }, perform: (_elements, appState, value) => { return { - appState: { ...appState, fancyBackgroundImageUrl: value }, + appState: { ...appState, fancyBackgroundImageKey: value }, commitToHistory: false, }; }, - PanelComponent: ({ updateData }) => ( - { + updateData(value); + }} + /> + ); + }, }); export const actionChangeExportEmbedScene = register({ diff --git a/src/appState.ts b/src/appState.ts index 5d8165cd3..606d1f97b 100644 --- a/src/appState.ts +++ b/src/appState.ts @@ -5,7 +5,6 @@ import { DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_TEXT_ALIGN, - FANCY_BACKGROUND_IMAGES, EXPORT_SCALES, THEME, } from "./constants"; @@ -101,8 +100,7 @@ export const getDefaultAppState = (): Omit< pendingImageElementId: null, showHyperlinkPopup: false, selectedLinearElement: null, - fancyBackgroundImageUrl: - FANCY_BACKGROUND_IMAGES[DEFAULT_FANCY_BACKGROUND_IMAGE].path, + fancyBackgroundImageKey: DEFAULT_FANCY_BACKGROUND_IMAGE, }; }; @@ -210,7 +208,7 @@ const APP_STATE_STORAGE_CONF = (< pendingImageElementId: { browser: false, export: false, server: false }, showHyperlinkPopup: { browser: false, export: false, server: false }, selectedLinearElement: { browser: true, export: false, server: false }, - fancyBackgroundImageUrl: { browser: false, export: false, server: false }, + fancyBackgroundImageKey: { browser: false, export: false, server: false }, }); const _clearAppStateForStorage = < diff --git a/src/components/ImageExportDialog.tsx b/src/components/ImageExportDialog.tsx index 365f1f29c..e8e629656 100644 --- a/src/components/ImageExportDialog.tsx +++ b/src/components/ImageExportDialog.tsx @@ -38,7 +38,7 @@ import { Tooltip } from "./Tooltip"; import "./ImageExportDialog.scss"; import { useAppProps } from "./App"; import { FilledButton } from "./FilledButton"; -import Select from "./Select"; +import Select, { convertToSelectItems } from "./Select"; const supportsContextFilters = "filter" in document.createElement("canvas").getContext("2d")!; @@ -69,6 +69,11 @@ function isBackgroundImageKey( return key in FANCY_BACKGROUND_IMAGES; } +const backgroundSelectItems = convertToSelectItems( + FANCY_BACKGROUND_IMAGES, + (item) => item.label, +); + const ImageExportModal = ({ appState, elements, @@ -138,7 +143,7 @@ const ImageExportModal = ({ }, [ appState, appState.exportBackground, - appState.fancyBackgroundImageUrl, + appState.fancyBackgroundImageKey, files, exportedElements, ]); @@ -150,7 +155,9 @@ const ImageExportModal = ({
@@ -199,7 +206,7 @@ const ImageExportModal = ({ > {exportWithBackground && (