🐛 fix problem redux

brancheRedux
Maxence LANONE 2 years ago
parent f8439bb9c2
commit bd1f55787e

@ -5,6 +5,7 @@ import HomePage from './src/screen/HomePage';
import store from "./redux/store";
import MainTab from './src/navigator/Navigator';
import { Provider } from 'react-redux';
export default function App() {
return (

@ -159,10 +159,10 @@ export const CITIES_DATA: City[] = [
];
export const FAVORITE_CITY_DATA =
new City("Clermont-Ferrand", 45.777222, 3.087025);
new City("Clermont-Ferrand", 45.777222, 3.087025, "FR");
export const DEFAULT_SELECTED_CITY_DATA: City =
new City("Paris", 48.866667, 2.333333);
new City("Paris", 48.866667, 2.333333, "FR");
export const WEATHER_DATA: Weather[] = [
new Weather("2023-01-22 09:55:59", 10000, "Nuageux",

File diff suppressed because it is too large Load Diff

@ -0,0 +1,41 @@
{
"name": "expo-init",
"version": "1.0.0",
"scripts": {
"start": "expo start --dev-client",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web"
},
"dependencies": {
"@react-navigation/bottom-tabs": "^6.5.7",
"@react-navigation/native": "^6.1.6",
"@react-navigation/stack": "^6.3.16",
<<<<<<< HEAD
"create-expo-app": "^1.3.2",
=======
"@reduxjs/toolkit": "^1.9.3",
>>>>>>> refs/remotes/origin/main
"expo": "~47.0.12",
"expo-status-bar": "~1.4.2",
"react": "18.1.0",
"react-dom": "18.1.0",
"react-native": "0.70.5",
"react-native-gesture-handler": "^2.9.0",
"react-native-vector-icons": "^9.2.0",
"react-native-web": "~0.18.9",
<<<<<<< HEAD
"expo-splash-screen": "~0.17.5"
=======
"react-redux": "^8.0.5",
"redux": "^4.2.1"
>>>>>>> refs/remotes/origin/main
},
"devDependencies": {
"@babel/core": "^7.12.9",
"@types/react": "~18.0.14",
"@types/react-native": "~0.70.6",
"typescript": "^4.6.3"
},
"private": true
}

@ -1,4 +1,4 @@
import {FETCH_WEATHER_API} from '../constants';
import {FETCH_WEATHER_API, City} from '../constants';
export const setWeather = (ville: City)=>{
return {

@ -1,6 +1,6 @@
import {RECUPERER_METEO} from '../constants';
import {RECUPERER_METEO, Weather} from '../constants';
export const setWeather = (weather: Weather[]) => {
export const setWeather = (weatherList: Weather[]) => {
return {
type: RECUPERER_METEO,
payload: weatherList,

@ -1,3 +1,4 @@
import { City } from '../../data/stub';
import {RECUPERER_VILLES} from '../constants';
export const setVillesList = (villesList: City[]) => {

@ -1,16 +1,168 @@
export class City {
private _name: string;
private _latitude: number;
private _longitude: number;
private _pays: string;
constructor(name: string, latitude: number, longitude: number, pays: string) {
this._name = name;
this._latitude = latitude;
this._longitude = longitude;
this._pays = pays;
}
get name(): string {
return this._name;
}
set name(value: string) {
this._name = value;
}
get latitude(): number {
return this._latitude;
}
set latitude(value: number) {
this._latitude = value;
}
get longitude(): number {
return this._longitude;
}
set longitude(value: number) {
this._longitude = value;
}
get pays(): string {
return this._pays;
}
set pays(value: string) {
this._pays = value;
}
}
export class Weather {
private _at: string;
private _visibility: number;
private _weatherType: string;
private _weatherDescription: string;
private _temperature: number;
private _temperatureFeelsLike: number;
private _humidity: number;
private _windSpeed: number;
private _pressure: number;
private _city: City;
constructor(at: string, visibility: number, weatherType: string, weatherDescription: string, temperature: number, temperatureFeelsLike: number, humidity: number, windSpeed: number, pressure: number, city: City) {
this._at = at;
this._visibility = visibility;
this._weatherType = weatherType;
this._weatherDescription = weatherDescription;
this._temperature = temperature;
this._temperatureFeelsLike = temperatureFeelsLike;
this._humidity = humidity;
this._windSpeed = windSpeed;
this._pressure = pressure;
this._city = city;
}
get at(): string {
return this._at;
}
set at(value: string) {
this._at = value;
}
get visibility(): number {
return this._visibility;
}
set visibility(value: number) {
this._visibility = value;
}
get weatherType(): string {
return this._weatherType;
}
set weatherType(value: string) {
this._weatherType = value;
}
get weatherDescription(): string {
return this._weatherDescription;
}
set weatherDescription(value: string) {
this._weatherDescription = value;
}
get temperature(): number {
return this._temperature;
}
set temperature(value: number) {
this._temperature = value;
}
get temperatureFeelsLike(): number {
return this._temperatureFeelsLike;
}
set temperatureFeelsLike(value: number) {
this._temperatureFeelsLike = value;
}
get humidity(): number {
return this._humidity;
}
set humidity(value: number) {
this._humidity = value;
}
get windSpeed(): number {
return this._windSpeed;
}
set windSpeed(value: number) {
this._windSpeed = value;
}
get pressure(): number {
return this._pressure;
}
set pressure(value: number) {
this._pressure = value;
}
get city(): City {
return this._city;
}
set city(value: City) {
this._city = value;
}
}
export const CITIES_DATA: City[] = [
new City("Paris", 48.866667, 2.333333),
new City("Clermont-Ferrand", 45.777222, 3.087025),
new City("Lyon", 45.764043, 4.835659),
new City("Marseille", 43.296482, 5.36978),
new City("Bruxelles", 50.85034, 4.35171),
new City("Paris", 48.866667, 2.333333, "FR"),
new City("Clermont-Ferrand", 45.777222, 3.087025, "FR"),
new City("Lyon", 45.764043, 4.835659, "FR"),
new City("Marseilles", 43.296482, 5.36978, "FR"),
new City("Bruxelles", 50.85034, 4.35171,"BE"),
];
export const FAVORITE_CITY_DATA =
new City("Clermont-Ferrand", 45.777222, 3.087025);
new City("Clermont-Ferrand", 45.777222, 3.087025, "FR");
export const DEFAULT_SELECTED_CITY_DATA: City =
new City("Paris", 48.866667, 2.333333);
new City("Paris", 48.866667, 2.333333, "FR");
export const WEATHER_DATA: Weather[] = [
new Weather("2023-01-22 09:55:59", 10000, "Nuageux",

@ -1,13 +1,19 @@
import { City } from "./constants";
export const getCityApi = (cityName:string) =>{
if (cityName === undefined)return {};
//@ts-ignore
return async dispatch => {
try {
debutUrl = 'https://geocoding-api.open-meteo.com/v1/search?name=';
finUrl = '&language=fr';
const debutUrl = 'https://geocoding-api.open-meteo.com/v1/search?name=';
const finUrl = '&language=fr';
//@ts-ignore
url= debutUrl.concat(cityName.concat(finUrl));
//@ts-ignore
const response = await fetch(url);
const json = await response.json();
const cities: City[] = json["results"].map(v => new City(v["name"],v["latitude"],v["longitude"]));
//@ts-ignore
const cities: City[] = json["results"].map(ville => new City(ville["name"],ville["latitude"],ville["longitude"], ville["countryCode"]));
dispatch(cities);
} catch (error) {
console.log("probleme : ",error);
@ -16,20 +22,21 @@ export const getCityApi = (cityName:string) =>{
}
export const getWeatherCityApi = (ville: City) =>
if (City === undefined)return {};
return async dispatch => {
export const getWeatherCityApi = (ville: City) => {
if(City === undefined)return {};
return async (dispatch: (arg0: City) => void) => {
try {
debutUrl = 'https://api.open-meteo.com/v1/meteofrance?latitude=';
milieuUrl = '&longitude=';
paramHourly = '&hourly=temperature_2m,relativehumidity_2m,apparent_temperature,surface_pressure,cloudcover,windspeed_10m&timeformat=unixtime&start_date=2023-02-03&end_date=2023-02-03&timezone=Europe%2FBerlin';
paramDaily ='&daily=weathercode,temperature_2m_max,temperature_2m_min,precipitation_sum,precipitation_hours&start_date=2023-03-10&end_date=2023-03-16&timezone=Europe%2FBerlin';
miniUrl= debutUrl.concat(City.latitude.toString().concat(milieuUrl.concat(City.longitude.toString)));
url= miniUrl.concat(paramHourly);
url2= miniUrl.concat()
const debutUrl = 'https://api.open-meteo.com/v1/meteofrance?latitude=';
const milieuUrl = '&longitude=';
const paramHourly = '&hourly=temperature_2m,relativehumidity_2m,apparent_temperature,surface_pressure,cloudcover,windspeed_10m&timeformat=unixtime&start_date=2023-02-03&end_date=2023-02-03&timezone=Europe%2FBerlin';
const paramDaily ='&daily=weathercode,temperature_2m_max,temperature_2m_min,precipitation_sum,precipitation_hours&start_date=2023-03-10&end_date=2023-03-16&timezone=Europe%2FBerlin';
const miniUrl= debutUrl.concat(City.arguments.latitude.toString().concat(milieuUrl.concat(City.arguments.longitude.toString)));
const url= miniUrl.concat(paramHourly);
const url2= miniUrl.concat()
const response = await fetch(url);
const json = await response.json();
const cities: City[] = json["results"].map(v => new City(v["name"],v["latitude"],v["longitude"]));
//@ts-ignore
const cities: City[] = json["results"].map(ville => new City(ville["name"],ville["latitude"],ville["longitude"],ville["countryCode"]));
dispatch(cities[0]);
} catch (error) {
console.log("probleme : ",error);

@ -1,10 +1,11 @@
import { City, Weather, CITIES_DATA, FAVORITE_CITY_DATA, WEATHER_DATA } from '../../data/stub';
import {CITIES_DATA, FAVORITE_CITY_DATA, WEATHER_DATA } from '../constants';
const initialState = {
meteo: WEATHER_DATA,
villes: CITIES_DATA,
}
//@ts-ignore
export default appReducer = (state = initialState, action) => {
switch (action.type) {/*
case FETCH_WEATHER_API:

@ -7,7 +7,9 @@ import { NavigationContainer, useRoute } from '@react-navigation/native';
import {Weather} from '../../data/stub';
import {useSelector} from 'react-redux';
//@ts-ignore
export default function HomePage({navigation}) {
//@ts-ignore
const listMeteo = useSelector(state => state.appReducer.meteo)
return (
<>

11417
yarn.lock

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save