DarkLightTheme
parent
f1b34cd3f2
commit
1aff6817f8
@ -1,19 +1,54 @@
|
|||||||
import { StatusBar } from 'expo-status-bar';
|
import { StatusBar } from 'expo-status-bar';
|
||||||
import { StyleSheet, Text, View, Button } from 'react-native';
|
import { StyleSheet, Text, View, Button } from 'react-native';
|
||||||
import React, { useState } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
|
|
||||||
|
|
||||||
import Navigation from './navigation/Navigation';
|
import Navigation from './navigation/Navigation';
|
||||||
|
import StackNavigation from './navigation/StackNavigation';
|
||||||
|
|
||||||
|
import { createStackNavigator } from '@react-navigation/stack';
|
||||||
|
|
||||||
|
import {useDispatch, useSelector} from 'react-redux';
|
||||||
|
|
||||||
|
// Import your application store
|
||||||
|
//import store from "./redux/store";
|
||||||
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
SafeAreaView,
|
SafeAreaView,
|
||||||
SafeAreaProvider,
|
SafeAreaProvider,
|
||||||
} from 'react-native-safe-area-context';
|
} from 'react-native-safe-area-context';
|
||||||
|
|
||||||
|
import { Provider } from 'react-redux';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default function App() {
|
export default function App() {
|
||||||
//safearea
|
//safearea
|
||||||
//mettre le navigateur ayant le princ
|
//mettre le navigateur ayant le princ
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SafeAreaProvider>
|
<SafeAreaProvider>
|
||||||
<Navigation/>
|
<Navigation/>
|
||||||
</SafeAreaProvider>
|
</SafeAreaProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ///décommenter quand API Fonctionnel///
|
||||||
|
|
||||||
|
// // export default function App() {
|
||||||
|
// // return (
|
||||||
|
// // <>
|
||||||
|
// // {/* Bind your application store to the Provider store */}
|
||||||
|
// // <Provider store={store}>
|
||||||
|
// // <SafeAreaProvider>
|
||||||
|
// // <Navigation/>
|
||||||
|
// // </SafeAreaProvider>
|
||||||
|
// // </Provider>
|
||||||
|
// // </>
|
||||||
|
// // );
|
||||||
|
// // }
|
||||||
|
@ -1,188 +0,0 @@
|
|||||||
export class City {
|
|
||||||
private _name: string;
|
|
||||||
private _latitude: number;
|
|
||||||
private _longitude: number;
|
|
||||||
|
|
||||||
constructor(name: string, latitude: number, longitude: number) {
|
|
||||||
this._name = name;
|
|
||||||
this._latitude = latitude;
|
|
||||||
this._longitude = longitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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),
|
|
||||||
];
|
|
||||||
|
|
||||||
export const FAVORITE_CITY_DATA =
|
|
||||||
new City("Clermont-Ferrand", 45.777222, 3.087025);
|
|
||||||
|
|
||||||
export const DEFAULT_SELECTED_CITY_DATA: City =
|
|
||||||
new City("Paris", 48.866667, 2.333333);
|
|
||||||
|
|
||||||
export const WEATHER_DATA: Weather[] = [
|
|
||||||
new Weather("2023-01-22 09:55:59", 10000, "Nuageux",
|
|
||||||
"couvert", 0.52, -4.34,
|
|
||||||
82, 5.14, 1032,
|
|
||||||
new City("Paris", 48.866667, 2.333333)
|
|
||||||
),
|
|
||||||
new Weather("2023-01-22 09:55:59", 10000, "Nuageux",
|
|
||||||
"couvert", 0.52, -4.34,
|
|
||||||
82, 5.14, 1032,
|
|
||||||
new City("Clermont-Ferrand", 45.777222, 3.087025)
|
|
||||||
),
|
|
||||||
new Weather("2023-01-22 09:55:59", 10000, "Nuageux",
|
|
||||||
"couvert", 0.52, -4.34,
|
|
||||||
82, 5.14, 1032,
|
|
||||||
new City("Lyon", 45.764043, 4.835659)
|
|
||||||
),
|
|
||||||
new Weather("2023-01-22 09:55:59", 10000, "Nuageux",
|
|
||||||
"couvert", 0.52, -4.34,
|
|
||||||
82, 5.14, 1032,
|
|
||||||
new City("Marseille", 43.296482, 5.36978)
|
|
||||||
),
|
|
||||||
new Weather("2023-01-22 09:55:59", 10000, "Nuageux",
|
|
||||||
"couvert", 0.52, -4.34,
|
|
||||||
82, 5.14, 1032,
|
|
||||||
new City("Bruxelles", 50.85034, 4.35171)
|
|
||||||
),
|
|
||||||
];
|
|
||||||
|
|
||||||
export const getCurrentWeather = (cityName: string) => {
|
|
||||||
if (cityName === undefined) return {};
|
|
||||||
return WEATHER_DATA.filter(elt => elt.city.name === cityName)[0];
|
|
||||||
}
|
|
@ -0,0 +1,13 @@
|
|||||||
|
import {THEME_CHANGE} from '../constants';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// switch mode according to what is specified...
|
||||||
|
|
||||||
|
//@ts-ignore
|
||||||
|
export const switchMode = (mode) => {
|
||||||
|
return {
|
||||||
|
type: THEME_CHANGE,
|
||||||
|
payload: mode,
|
||||||
|
};
|
||||||
|
};
|
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
export const FETCH_DATA = "FETCH_DATA"
|
||||||
|
|
||||||
|
export const ADD_FAVORITE_DATA = "ADD_FAVORITE_DATA"
|
||||||
|
|
||||||
|
export const DISPLAY_ALL_CARD = "DISPLAY_ALL_CARD"
|
||||||
|
|
||||||
|
export const THEME_CHANGE = 'THEME_CHANGE';
|
@ -0,0 +1,29 @@
|
|||||||
|
import {THEME_CHANGE, FETCH_DATA, ADD_FAVORITE_DATA} from '../constants'
|
||||||
|
|
||||||
|
const initialState = {
|
||||||
|
mode: 'light',
|
||||||
|
cards: [],
|
||||||
|
favoriteCards: [],
|
||||||
|
// cards: ["C_ace", "C_K", "C_Q", "C_J"],
|
||||||
|
// favoriteCards: [ "C_ace", "C_K"],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
export default appReducer = (state = initialState, action) => {
|
||||||
|
switch (action.type) {
|
||||||
|
case ADD_FAVORITE_DATA:
|
||||||
|
// @ts-ignore
|
||||||
|
return {...state, favoriteCards: state.favoriteCards.push(action.payload)};
|
||||||
|
case FETCH_DATA:
|
||||||
|
// @ts-ignore
|
||||||
|
return {...state, cards: action.payload};
|
||||||
|
|
||||||
|
case THEME_CHANGE:
|
||||||
|
return {...state,mode: action.payload};
|
||||||
|
|
||||||
|
default:
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in new issue