From b0830b284103f924fab54d68f238d07601f6ab8b Mon Sep 17 00:00:00 2001 From: GabrielTrettel Date: Wed, 13 Jan 2021 11:33:16 -0300 Subject: [PATCH] Refactoring code to use app/config/assets constant for all images requires. --- src/app/config/assets.js | 23 +++ src/app/hooks/selectFromDB.js | 45 ++--- src/app/screens/RainSharingDataScreen.js | 13 +- .../screens/RiverFloodSharingDataScreen.js | 166 +++++++++--------- src/app/screens/SharingDataScreen.js | 13 +- src/app/screens/SharingFloodZonesScreen.js | 5 +- 6 files changed, 147 insertions(+), 118 deletions(-) create mode 100644 src/app/config/assets.js diff --git a/src/app/config/assets.js b/src/app/config/assets.js new file mode 100644 index 0000000..2718f22 --- /dev/null +++ b/src/app/config/assets.js @@ -0,0 +1,23 @@ +export default { + floodZones: { + floodIcon: require("../assets/pontos_alagamento_peq.png"), + passable: require("../assets/floodZonesAssets/passable_icon.png"), + notPassable: require("../assets/floodZonesAssets/not_passable_icon.png"), + }, + riverLevel: { + riverIcon: require("../assets/nivel_rio.png"), + low: require("../assets/rio_baixo.png"), + normal: require("../assets/rio_normal.png"), + high: require("../assets/rio_alto.png"), + flooding: require("../assets/rio_transbordando.png"), + }, + rainLevel: { + rain_0_5: require("../assets/sem_chuva.png"), + rain_1_5: require("../assets/chuva_fraca.png"), + rain_2_5: require("../assets/chuva_peq.png"), + rain_3_5: require("../assets/chuva_forte.png"), + rain_4_5: require("../assets/chuva_muito_forte.png"), + rain_5_5: require("../assets/chuva_pancadas.png"), + }, + pluviometer: require("../assets/diario_pluviometrico.png"), +}; diff --git a/src/app/hooks/selectFromDB.js b/src/app/hooks/selectFromDB.js index e1fd633..7040912 100644 --- a/src/app/hooks/selectFromDB.js +++ b/src/app/hooks/selectFromDB.js @@ -1,27 +1,28 @@ import { useEffect, useReducer } from "react"; import "../config/globals"; - -const assets = { - floodZones: require("../assets/pontos_alagamento_peq.png"), - riverLevel: [ - require("../assets/rio_baixo.png"), - require("../assets/rio_normal.png"), - require("../assets/rio_alto.png"), - require("../assets/rio_transbordando.png"), - ], +import assets from "../config/assets"; + +const custom_assets = { + pluviometer: assets.pluviometer, + floodZones: assets.floodZones.floodIcon, + riverLevel: ["low", "normal", "high", "flooding"].map((key) => { + return assets.riverLevel[key]; + }), rainLevel: [ - require("../assets/sem_chuva.png"), - require("../assets/chuva_peq.png"), - require("../assets/chuva_peq.png"), - require("../assets/chuva_forte.png"), - require("../assets/chuva_muito_forte.png"), - require("../assets/chuva_pancadas.png"), - ], - pluviometer: require("../assets/diario_pluviometrico.png"), + "rain_0_5", + "rain_1_5", + "rain_2_5", + "rain_3_5", + "rain_4_5", + "rain_5_5", + ].map((key) => { + return assets.rainLevel[key]; + }), }; -// NOTE: For debug pourposes +// NOTE: For debug pourposes, every icon will be placed some `offset` from +// another. In final release, offset must be assigned to 0.0 var offset = 0.001; var displacement = 0; @@ -56,7 +57,7 @@ function partsePluviometer(row) { latitude: row["Latitude"] + displacement, longitude: row["Longitude"], }, - image: assets.pluviometer, + image: custom_assets.pluviometer, description: row["Pluviometer"], }; } @@ -74,7 +75,7 @@ function parseFloodZones(row) { latitude: row["Latitude"], longitude: row["Longitude"] + displacement, }, - image: assets.floodZones, + image: custom_assets.floodIcon, description: row["Description"], }; } @@ -94,7 +95,7 @@ function parseRiverLevel(row) { latitude: row["Latitude"], longitude: row["Longitude"] + displacement, }, - image: assets.riverLevel[riverIdx], + image: custom_assets.riverLevel[riverIdx], description: riverLevel[riverIdx], }; } @@ -121,7 +122,7 @@ function parseRainLevel(row) { latitude: row["Latitude"], longitude: row["Longitude"] + displacement, }, - image: assets.rainLevel[rainIdx], + image: custom_assets.rainLevel[rainIdx], description: rainLevel[rainIdx], }; } diff --git a/src/app/screens/RainSharingDataScreen.js b/src/app/screens/RainSharingDataScreen.js index d925b7f..7fcdbdc 100644 --- a/src/app/screens/RainSharingDataScreen.js +++ b/src/app/screens/RainSharingDataScreen.js @@ -12,6 +12,7 @@ import { TouchableNativeFeedback } from "react-native-gesture-handler"; import { insertRainData } from "../database/databaseLoader"; import { showMessage } from "react-native-flash-message"; import { scaleDimsFromWidth } from "../config/dimensions"; +import assets from "../config/assets"; const validationSchema = Yup.object().shape({ images: Yup.array().min(1, "Por favor, selecione ao menos uma imagem"), @@ -63,7 +64,7 @@ function RainSharingDataScreen(props) { > Sem chuva @@ -76,7 +77,7 @@ function RainSharingDataScreen(props) { > Chuva fraca @@ -89,7 +90,7 @@ function RainSharingDataScreen(props) { > Chuva moderada @@ -104,7 +105,7 @@ function RainSharingDataScreen(props) { > Chuva forte @@ -117,7 +118,7 @@ function RainSharingDataScreen(props) { > Chuva muito forte @@ -130,7 +131,7 @@ function RainSharingDataScreen(props) { > Pancada de chuva diff --git a/src/app/screens/RiverFloodSharingDataScreen.js b/src/app/screens/RiverFloodSharingDataScreen.js index e66918b..8948433 100644 --- a/src/app/screens/RiverFloodSharingDataScreen.js +++ b/src/app/screens/RiverFloodSharingDataScreen.js @@ -11,7 +11,8 @@ import colors from "../config/colors"; import { TouchableNativeFeedback } from "react-native-gesture-handler"; import { insertRiverData } from "../database/databaseLoader"; import { showMessage } from "react-native-flash-message"; -import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'; +import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view"; +import assets from "../config/assets"; const validationSchema = Yup.object().shape({ images: Yup.array().min(1, "Por favor, selecione ao menos uma imagem"), @@ -37,91 +38,96 @@ function RiverFloodSharingDataScreen(props) { Nível da água do rio -
{ - insertRiverData({ ...values, riverScale, location }); - showMessage({ - message: "Informação enviada!", - duration: 1950, - icon: "success", - type: "success", - }); - props.navigation.goBack(null); - }} - validationSchema={validationSchema} + resetScrollToCoords={{ x: 0, y: 0 }} + contentContainerStyle={styles.container} + scrollEnabled={true} > - - - setRiverScale(0)}> - - - Baixo - - + { + insertRiverData({ ...values, riverScale, location }); + showMessage({ + message: "Informação enviada!", + duration: 1950, + icon: "success", + type: "success", + }); + props.navigation.goBack(null); + }} + validationSchema={validationSchema} + > + + + setRiverScale(0)}> + + + Baixo + + - setRiverScale(1)}> - - - Rio normal - - - + setRiverScale(1)}> + + + Rio normal + + + - - setRiverScale(2)}> - - - Alto - - + + setRiverScale(2)}> + + + Alto + + - setRiverScale(3)}> - - - Transbordando - - + setRiverScale(3)}> + + + Transbordando + + + - - - - - + + + +
); diff --git a/src/app/screens/SharingDataScreen.js b/src/app/screens/SharingDataScreen.js index 090e322..f3b07a0 100644 --- a/src/app/screens/SharingDataScreen.js +++ b/src/app/screens/SharingDataScreen.js @@ -7,7 +7,7 @@ import RainSharingDataScreen from "../screens/RainSharingDataScreen"; import SharingFloodZonesScreen from "./SharingFloodZonesScreen"; import PluviometerSharingDataScreen from "./PluviometerSharingDataScreen"; import RiverFloodSharingDataScreen from "./RiverFloodSharingDataScreen"; - +import assets from "../config/assets"; //1/3 function SharingDataScreen({ navigation }) { @@ -20,7 +20,7 @@ function SharingDataScreen({ navigation }) { > Pontos de {"\n"}alagamento @@ -31,7 +31,7 @@ function SharingDataScreen({ navigation }) { > Chuva @@ -42,10 +42,7 @@ function SharingDataScreen({ navigation }) { style={{ alignItems: "center" }} onPress={() => navigation.navigate("PluviometerSharingData")} > - + Diário do{"\n"}pluviômetro @@ -55,7 +52,7 @@ function SharingDataScreen({ navigation }) { > Nível de água {"\n"}no rio diff --git a/src/app/screens/SharingFloodZonesScreen.js b/src/app/screens/SharingFloodZonesScreen.js index c8fab05..3593524 100644 --- a/src/app/screens/SharingFloodZonesScreen.js +++ b/src/app/screens/SharingFloodZonesScreen.js @@ -12,6 +12,7 @@ import { insertFloodZone } from "../database/databaseLoader"; import { showMessage } from "react-native-flash-message"; import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view"; import Screen from "../components/Screen"; +import assets from "../config/assets"; function submitForm(props) { // console.log(props); @@ -72,7 +73,7 @@ function SharingFloodZonesScreen(props) { > Transitável @@ -85,7 +86,7 @@ function SharingFloodZonesScreen(props) { > Intransitável