import React, { useState, useEffect } from 'react' import LetterOptions from './LetterOptions' import Button from './Button' import Preview from './Preview' import LatestList from './LatestList' import { generatePdf, getLatest, removeLatest } from './apiHelper' import { ILatest } from '../interfaces/ILatest' import { IDocProps } from '../interfaces/IDocProps' //import './App.css'; export default function App() { const [options, setOptions] = useState({ address: 'Max Mustermann\nMusterstrasse\n12345 Musterstadt', body: 'Inhalt des Briefs', closing: 'Mit freundlichen Grüßen', customer: '', date: new Date().toLocaleDateString('de-DE'), enclosing: '', invoice: '', myRef: '', opening: 'Sehr geehrte Damen und Herren', ps: '', signature: '', specialMail: '', subject: 'Betreffzeile', template: 'brief-fam', yourMail: '', yourRef: '', yourRefName: '', }) const [latest, setLatest] = useState([]) const [pdfUrl, setPdfUrl] = useState(null) const [pdfIsLoading, setPdfIsLoading] = useState(false) const [pdfError, setPdfError] = useState(null) useEffect(() => { getLatest() .then((latest) => setLatest(latest)) .catch((err) => console.error('Unable to get latest:', err)) }, [pdfUrl]) const _onChange = (name: string, event: React.ChangeEvent<{ value: string }>) => { if (!name) { return } const value = event && event.target && event.target.value setOptions({ ...options, [name]: value }) } const _onSelectLatest = (selectedOption: ILatest) => { setOptions({ ...selectedOption }) } const _onRemoveLatest = (item: ILatest) => { removeLatest(item).then(() => setLatest(latest.filter((curr) => curr.id !== item.id))) } const _onClear = () => { window.location.reload() } const _onGenerate = () => { setPdfIsLoading(true) setPdfError(null) generatePdf(options) .then((data) => { const { id } = data setPdfIsLoading(false) setPdfUrl(`/api/pdf/${id}`) }) .catch((error) => { setPdfIsLoading(false) setPdfError(error.message) setPdfUrl(null) }) } return (
) }