import { parseExcelFile } from '@/services/fileApiSevice' import { Template } from '@/types/template' import React, { useState } from 'react' import { ExcelUploadPanel } from './ExcelUploadPanel' import { FormattingToolbar } from './FormattingToolbar' import { HeaderBar } from './HeaderBar' import { SpreadsheetViewer } from './SpreadsheetViewer' interface TemplateEditorProps { template: Template onBack: () => void } export const TemplateEditor: React.FC = ({ template, onBack, }) => { const [editedTemplate, setEditedTemplate] = useState(template) const [excelData, setExcelData] = useState>( template.excelData || {} ) const [isLoading, setIsLoading] = useState(false) const [dataVersion, setDataVersion] = useState(0) const handleFileChange = async (e: React.ChangeEvent) => { const file = e.target.files?.[0] if (!file) return setIsLoading(true) try { const { fileId, data, mergedCells } = await parseExcelFile( file, template.id ) setExcelData(data) const updatedTemplate = { ...template, excelFile: file, excelData: data, mergedCells, updatedAt: new Date(), } setEditedTemplate(updatedTemplate) setDataVersion(v => v + 1) console.log('✅ Файл загружен с ID:', fileId) } catch (err) { console.error(err) alert('Ошибка при загрузке Excel файла на сервер') } finally { setIsLoading(false) } } return (
{}} onFileChange={handleFileChange} />
) }