move store in local storage

This commit is contained in:
Thomas Ruoff
2021-03-10 23:53:35 +01:00
parent eaba68a779
commit 1633fad10b
13 changed files with 5414 additions and 193 deletions

View File

@@ -3,8 +3,10 @@ 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 { generatePdf } from './apiHelper'
import { addDocument, removeDocument, getDocuments } from '../lib/dataStore'
import { getDocuments as getLatestDocuments } from '../lib/dataStore'
import { IStoreItem } from '../interfaces/IStoreItem'
import { IDocProps } from '../interfaces/IDocProps'
export default function App() {
@@ -27,21 +29,13 @@ export default function App() {
yourRef: '',
yourRefName: '',
})
const [latest, setLatest] = useState<ILatest[]>([])
const [storeData, setStoreData] = useState<IStoreItem[]>([])
const [pdfUrl, setPdfUrl] = useState<string | null>(null)
const [pdfIsLoading, setPdfIsLoading] = useState<boolean>(false)
const [pdfError, setPdfError] = useState<string | null>(null)
useEffect(() => {
async function getLatestEffect() {
try {
const latest = await getLatest()
setLatest(latest)
} catch (err) {
console.error('Unable to get latest:', err)
}
}
getLatestEffect()
setStoreData(getDocuments())
}, [pdfUrl])
const _onChange = (name: string, event: React.ChangeEvent<{ value: string }>) => {
@@ -52,13 +46,13 @@ export default function App() {
setOptions({ ...options, [name]: value })
}
const _onSelectLatest = (selectedOption: ILatest) => {
const _onSelectLatest = (selectedOption: IStoreItem) => {
setOptions({ ...selectedOption })
}
const _onRemoveLatest = async (item: ILatest) => {
await removeLatest(item)
setLatest(latest.filter((curr) => curr.id !== item.id))
const _onRemoveLatest = async (item: IStoreItem) => {
removeDocument(item.id)
setStoreData(getLatestDocuments())
}
const _onClear = () => {
@@ -70,7 +64,8 @@ export default function App() {
setPdfError(null)
try {
const url = await generatePdf(options)
const { url, data } = await generatePdf(options)
addDocument(data)
setPdfIsLoading(false)
setPdfUrl(url)
} catch (error) {
@@ -90,7 +85,7 @@ export default function App() {
</div>
<Preview pdfUrl={pdfUrl} pdfIsLoading={pdfIsLoading} pdfError={pdfError} />
</div>
<LatestList latest={latest} onSelect={_onSelectLatest} onRemove={_onRemoveLatest} />
<LatestList storeData={storeData} onSelect={_onSelectLatest} onRemove={_onRemoveLatest} />
</div>
)
}