Implement store

This commit is contained in:
2025-05-09 11:17:58 +02:00
parent eb13123d86
commit 149d8f01b7
4 changed files with 124 additions and 3 deletions

View File

@@ -1,8 +1,10 @@
import { useCallback, useEffect, useState } from 'react';
import LoadFileForm from './LoadFileForm';
import { fetchConfig, loadTransactions } from '../../services/api.service';
import { useStore } from '../../store/AppStore';
export default function LoadFilePage() {
const { dispatch } = useStore();
const [profiles, setProfiles] = useState<string[]>([]);
const [servers, setServers] = useState<string[]>([]);
@@ -16,6 +18,11 @@ export default function LoadFilePage() {
setServers(config.servers);
setDefaultProfile(config.defaultProfile);
setDefaultServer(config.defaultServer);
dispatch({
type: 'UPDATE_CONFIG',
payload: config
});
}, [setProfiles, setServers, setDefaultProfile, setDefaultServer]);
useEffect(() => {
@@ -24,14 +31,22 @@ export default function LoadFilePage() {
const handleSubmit = useCallback(async (csvFile: File, profile: string, server: string) => {
const data = await loadTransactions(csvFile, profile, server);
console.log(data);
dispatch({
type: 'UPDATE_DATA',
payload: {
profile,
server,
...data
}
});
}, []);
return (
<div className="columns mt-6">
<div className="column is-6 is-offset-3">
<div className="box">
<h2 className="title is-4 has-text-centered">Import Transactions</h2>
<h2 className="title is-4 has-text-centered">Import Transactions</h2>
<LoadFileForm
profiles={profiles}
servers={servers}