diff --git a/src/components/App.tsx b/src/components/App.tsx index 89cdf72..3f98f4c 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -26,6 +26,9 @@ export function App({initialState, statePersister, fs}: {initialState: State, st } else if (event.key === 'F6') { event.preventDefault(); model.render({isPreview: false, now: true}) + } else if (event.key === 'F7') { + event.preventDefault(); + model.export(); } }; window.addEventListener('keydown', handleKeyDown); diff --git a/src/components/ExportButton.tsx b/src/components/ExportButton.tsx index 0a39cd5..4e27ad4 100644 --- a/src/components/ExportButton.tsx +++ b/src/components/ExportButton.tsx @@ -1,10 +1,10 @@ -import React, { useContext } from 'react'; +import React, { useContext, useState } from 'react'; import { ModelContext } from './contexts'; import { SplitButton } from 'primereact/splitbutton'; import { MenuItem } from 'primereact/menuitem'; -type ExtendedMenuItem = MenuItem & { buttonLabel: string }; +type ExtendedMenuItem = MenuItem & { buttonLabel?: string }; export default function ExportButton({className, style}: {className?: string, style?: React.CSSProperties}) { const model = useContext(ModelContext); @@ -56,6 +56,14 @@ export default function ExportButton({className, style}: {className?: string, st icon: 'pi pi-file', command: () => model!.setFormats(undefined, '3mf'), }, + { + separator: true + }, + { + label: 'Edit materials' + ((state.params.extruderColors ?? []).length > 0 ? ` (${(state.params.extruderColors ?? []).length})` : ''), + icon: 'pi pi-cog', + command: () => model!.mutate(s => s.view.extruderPickerVisibility = 'editing'), + } ]; const exportFormat = state.is2D ? state.params.exportFormat2D : state.params.exportFormat3D; diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index b6c022f..a604f25 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -10,6 +10,7 @@ import { Toast } from 'primereact/toast'; import HelpMenu from './HelpMenu'; import ExportButton from './ExportButton'; import SettingsMenu from './SettingsMenu'; +import MultimaterialColorsDialog from './MultimaterialColorsDialog'; export default function Footer({style}: {style?: CSSProperties}) { @@ -19,7 +20,6 @@ export default function Footer({style}: {style?: CSSProperties}) { const toast = useRef(null); - const severityByMarkerSeverity = new Map([ [monaco.MarkerSeverity.Error, 'danger'], [monaco.MarkerSeverity.Warning, 'warning'], @@ -72,7 +72,7 @@ export default function Footer({style}: {style?: CSSProperties}) { /> ) : undefined } - {/* */} + {/*