diff --git a/front/App.tsx b/front/App.tsx index d6dda24..4cca4bf 100644 --- a/front/App.tsx +++ b/front/App.tsx @@ -5,7 +5,7 @@ import { Provider } from 'react-redux'; import store from './state/Store'; import { Router } from './Navigation'; import './i18n/i18n'; -import { NativeBaseProvider, extendTheme } from "native-base"; +import { NativeBaseProvider } from "native-base"; const queryClient = new QueryClient(); diff --git a/front/Navigation.tsx b/front/Navigation.tsx index 9755f88..ff04104 100644 --- a/front/Navigation.tsx +++ b/front/Navigation.tsx @@ -3,7 +3,7 @@ import React from 'react'; import AuthenticationView from './views/AuthenticationView'; import HomeView from './views/HomeView'; import { NavigationContainer } from '@react-navigation/native'; -import { useSelector } from 'react-redux'; +import { useSelector } from './state/Store'; import SongLobbyView from './views/SongLobbyView'; import { translate } from './i18n/i18n'; diff --git a/front/state/Store.ts b/front/state/Store.ts index 253f578..9a2d390 100644 --- a/front/state/Store.ts +++ b/front/state/Store.ts @@ -1,10 +1,21 @@ import userReducer from '../state/UserSlice'; import { configureStore } from '@reduxjs/toolkit'; import languageReducer from './LanguageSlice'; +import { TypedUseSelectorHook, useDispatch as reduxDispatch, useSelector as reduxSelector } from 'react-redux' -export default configureStore({ +const store = configureStore({ reducer: { user: userReducer, language: languageReducer }, -}) \ No newline at end of file +}) + +// Infer the `RootState` and `AppDispatch` types from the store itself +export type RootState = ReturnType +// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState} +export type AppDispatch = typeof store.dispatch; +// Use throughout your app instead of plain `useDispatch` and `useSelector` +export const useDispatch: () => AppDispatch = reduxDispatch +export const useSelector: TypedUseSelectorHook = reduxSelector + +export default store \ No newline at end of file diff --git a/front/views/AuthenticationView.tsx b/front/views/AuthenticationView.tsx index 89d630c..416c8ff 100644 --- a/front/views/AuthenticationView.tsx +++ b/front/views/AuthenticationView.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { useDispatch } from "react-redux"; +import { useDispatch } from '../state/Store'; import { translate } from "../i18n/i18n"; import { setUserToken } from "../state/UserSlice"; import { Center, Button, Text } from 'native-base'; diff --git a/front/views/HomeView.tsx b/front/views/HomeView.tsx index 3d542ef..3a3d0e3 100644 --- a/front/views/HomeView.tsx +++ b/front/views/HomeView.tsx @@ -1,7 +1,7 @@ import { useNavigation } from "@react-navigation/native"; import React from "react"; import { Center, Button, Text } from "native-base"; -import { useDispatch, useSelector } from "react-redux"; +import { useDispatch, useSelector } from "../state/Store"; import { AvailableLanguages, DefaultLanguage, translate } from "../i18n/i18n"; import { useLanguage } from "../state/LanguageSlice"; import { unsetUserToken } from "../state/UserSlice"; diff --git a/front/views/SongLobbyView.tsx b/front/views/SongLobbyView.tsx index 3845430..7b0d3d3 100644 --- a/front/views/SongLobbyView.tsx +++ b/front/views/SongLobbyView.tsx @@ -1,5 +1,5 @@ import { useRoute } from "@react-navigation/native"; -import { Button, Divider, Box, Center, Image, Text, VStack, HStack, PresenceTransition, Icon } from "native-base"; +import { Button, Divider, Box, Center, Image, Text, VStack, PresenceTransition, Icon } from "native-base"; import API from "../API"; import { useQuery } from 'react-query'; import LoadingComponent from "../components/loading"; @@ -7,7 +7,7 @@ import React, { useEffect, useState } from "react"; import logo from '../assets/cover.png'; import { translate } from "../i18n/i18n"; import formatDuration from "format-duration"; -import { Ionicons, FontAwesome } from '@expo/vector-icons'; +import { Ionicons } from '@expo/vector-icons'; interface SongLobbyProps { // The unique identifier to find a song