Implement store
This commit is contained in:
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user