/** 빠른 실행 도구막대 · 출력 탭 명령 (파일 수명주기) */ import { toast } from 'react-toastify'; import { clearRecovery, restoreRecovery } from '../helpers/autosave'; import { exportEntitiesToJsonFile } from '../helpers/import-export-handlers/export-entities-to-json'; import { exportEntitiesToLocalStorage } from '../helpers/import-export-handlers/export-entities-to-local-storage'; import { requestDrawingExport } from '../integration/aislo-drawing-bridge'; import { exportEntitiesToPngFile } from '../helpers/import-export-handlers/export-entities-to-png'; import { exportEntitiesToSvgFile } from '../helpers/import-export-handlers/export-entities-to-svg'; import { redo, undo } from '../state'; import type { CadCommand } from './command.types'; export const FILE_COMMANDS: CadCommand[] = [ { id: 'QSAVE', label: '저장', aliases: ['SAVE'], glyph: '💾', hint: '현재 도면을 브라우저에 저장한다', run: () => { void exportEntitiesToLocalStorage().then(() => { clearRecovery(); toast.success('도면을 저장했습니다.'); }); return '도면 저장'; }, }, { id: 'RECOVER', label: '백업 복구', glyph: '⟲', hint: '자동 백업된 마지막 편집을 되살린다', run: () => { void restoreRecovery(); return '백업 복구'; }, }, { id: 'EXPORT', label: 'JSON 내보내기', aliases: ['EXP'], glyph: '⭳', hint: '도면을 JSON 파일로 내보낸다', run: () => { void exportEntitiesToJsonFile(); return 'JSON 내보내기'; }, }, { id: 'EXPORTDXF', label: 'DXF 내보내기', glyph: '📐', hint: '지금 도면을 DXF 파일로 내려받는다', run: () => { requestDrawingExport('dxf'); return 'DXF 내보내기'; }, }, { id: 'EXPORTDWG', label: 'DWG 내보내기', glyph: '📁', hint: '지금 도면을 DWG 파일로 내려받는다 (서버에 변환기가 있을 때)', run: () => { requestDrawingExport('dwg'); return 'DWG 내보내기'; }, }, { id: 'EXPORTSVG', label: 'SVG 내보내기', glyph: '🖼', run: () => { exportEntitiesToSvgFile(); return 'SVG 내보내기'; }, }, { id: 'EXPORTPNG', label: 'PNG 내보내기', glyph: '🏞', run: () => { void exportEntitiesToPngFile(); return 'PNG 내보내기'; }, }, { id: 'UNDO', label: '실행 취소', aliases: ['U'], glyph: '↶', run: () => { undo(); return '실행 취소'; }, }, { id: 'REDO', label: '다시 실행', glyph: '↷', run: () => { redo(); return '다시 실행'; }, }, ];