diff --git a/R-Dash/redux/Store.ts b/R-Dash/redux/Store.ts index 622be88..5f0843d 100644 --- a/R-Dash/redux/Store.ts +++ b/R-Dash/redux/Store.ts @@ -1,4 +1,4 @@ -import { configureStore } from '@reduxjs/toolkit' +import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit' import appReducer from './reducers/appReducer'; // Reference here all your application reducers @@ -6,9 +6,13 @@ const reducer = { appReducer: appReducer, } -// @ts-ignore -const store = configureStore({ +const middleware = getDefaultMiddleware({ + serializableCheck: false, // Disable serializableCheck + immutableCheck: false + }); + + const store = configureStore({ reducer, -}); - + middleware, + }); export default store; \ No newline at end of file diff --git a/R-Dash/redux/actions/sessions.ts b/R-Dash/redux/actions/sessions.ts index cf45b4d..2c3c147 100644 --- a/R-Dash/redux/actions/sessions.ts +++ b/R-Dash/redux/actions/sessions.ts @@ -12,19 +12,39 @@ export const setSessionsList = (sessionsList: Session[]) => { }; } -export const addXlsFile = async (file: File) => { - try { - const formData = new FormData(); - formData.append('file', file); - const response = await fetch( - 'https://r-dash.azurewebsites.net/File?' + "pseudoPilote=test_PILOTE" + "&Email=test@gmail.com" + "&password=test123" + "&nameSession=test_SESSION" + "&nameCircuit=test_CIRCUIT" + "&typeSession=Unknown", { - method: 'POST', - body: formData - }); - const data = await response.json(); - return data; - } catch (error) { - console.log('Error---------', error); +// export const addXlsFile = async (file: File) => { +// try { +// const formData = new FormData(); +// formData.append('file', file); +// const response = await fetch( +// 'https://r-dash.azurewebsites.net/File?' + "pseudoPilote=test_PILOTE" + "&Email=test@gmail.com" + "&password=test123" + "&nameSession=test_SESSION" + "&nameCircuit=test_CIRCUIT" + "&typeSession=Unknown", { +// method: 'POST', +// body: formData +// }); +// const data = await response.json(); +// return data; +// } catch (error) { +// console.log('Error---------', error); +// } +// }; + +export const addXlsFile = (file: File, pseudoPilote: string, email: string, password: string, nameSession: string, nameCircuit: string, typeSession: string) => { + return async dispatch => { + try { + const formData = new FormData(); + formData.append('file', file); + const response = await fetch( + `https://r-dash.azurewebsites.net/File?pseudoPilote=${pseudoPilote}&Email=${email}&password=${password}&nameSession=${nameSession}&nameCircuit=${nameCircuit}&typeSession=${typeSession}`, + { + method: 'POST', + body: formData + } + ); + const data = await response.json(); + return data; + } catch (error) { + console.log('Error - POST FILE', error); + } } }; @@ -39,13 +59,13 @@ export const getSessionsList = () => { const geo = new Geocalisation(point["longitude"], point["latitude"]); return new Point(geo, point["timer"] , point["distance"], point["nGear"], point["pBrakeF"], point["aSteer"], point["rPedal"], point["gLong"], point["gLat"], point["vCar"]); }); - return new Lap(lap["temps"], points, lap["temps"]); + return new Lap(lap["numero"], points, lap["temps"]); }); return new Session(elt["name"], laps, elt["type"]); }); dispatch(setSessionsList(sessionsList)); } catch (error) { - console.log('Error---------', error); + console.log('Error -- GET SESSIONS', error); //dispatch(fetchDataRejected(error)) } } diff --git a/R-Dash/screens/NewTrack.tsx b/R-Dash/screens/NewTrack.tsx index a5e30f3..de1519c 100644 --- a/R-Dash/screens/NewTrack.tsx +++ b/R-Dash/screens/NewTrack.tsx @@ -3,23 +3,45 @@ import { Pressable, StyleSheet, Text, View, Image, TouchableOpacity, TextInput } import { SafeAreaView } from 'react-native-safe-area-context'; import * as DocumentPicker from 'expo-document-picker'; import TopBar from '../components/TopBar'; +import { addXlsFile } from '../redux/actions/sessions'; +import { useDispatch } from 'react-redux'; export default function NewTrack(props: { navigation: any }) { const { navigation } = props; + const dispatch = useDispatch(); const [pickedDocument, setPickedDocument] = useState(null); + const [trackName, setTrackName] = useState(''); + const [sessionName, setSessionName] = useState(''); const handlePickDocument = async () => { try { - const result = await DocumentPicker.getDocumentAsync({ type: 'excel/xls' }); + const result = await DocumentPicker.getDocumentAsync({}); if (result.type === 'success') { setPickedDocument(result); } + else if(result.type === 'cancel'){ + console.log("AAA"); + setPickedDocument(null); + } } catch (err) { console.log(err); } }; + const handleConfirm = async () => { + if (!pickedDocument || !trackName || !sessionName) { + return; + } + + try { + await dispatch(addXlsFile(pickedDocument.uri, 'test_PILOTE', 'test@gmail.com', 'test123', sessionName, trackName, 'Training')); + navigation.goBack(); + } catch (error) { + console.log('Error - POST FILE', error); + } + }; + return ( @@ -33,7 +55,8 @@ export default function NewTrack(props: { navigation: any }) { Track name: @@ -42,7 +65,8 @@ export default function NewTrack(props: { navigation: any }) { Session name: @@ -67,7 +91,7 @@ export default function NewTrack(props: { navigation: any }) { source={require('../assets/images/return.png')} /> - navigation.goBack()}> +