父节点
当前提交
e4349965ff

二进制
.DS_Store 查看文件


+ 0
- 14
.gitignore 查看文件

@@ -1,14 +0,0 @@
1
-node_modules/
2
-.expo/
3
-dist/
4
-npm-debug.*
5
-*.jks
6
-*.p8
7
-*.p12
8
-*.key
9
-*.mobileprovision
10
-*.orig.*
11
-web-build/
12
-
13
-# macOS
14
-.DS_Store

+ 0
- 8
App.js 查看文件

@@ -1,8 +0,0 @@
1
-import React from 'react';
2
-import Navigation from './Navigation';
3
-
4
-export default function App() {
5
-  return (
6
-    <Navigation />
7
-  );
8
-}

+ 0
- 72
Navigation.js 查看文件

@@ -1,72 +0,0 @@
1
-import React from "react";
2
-import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
3
-import { createNativeStackNavigator } from "@react-navigation/native-stack";
4
-import { NavigationContainer } from "@react-navigation/native";
5
-import { Entypo } from '@expo/vector-icons'; 
6
-import { Ionicons } from '@expo/vector-icons';
7
-
8
-// Import the screens to be used in the navigator
9
-import Denuncias from "./screens/Denuncias";
10
-import Derechos from "./screens/Derechos";
11
-import Analisis from "./screens/Analisis";
12
-import Formulario from "./screens/Formulario";
13
-import Lista from "./screens/Lista";
14
-import Drna from "./screens/Drna";
15
-import { TabBarIOSItem } from "react-native";
16
-
17
-const StackDenuncias = createNativeStackNavigator();
18
-
19
-function Stacks() {
20
-  return (
21
-    <StackDenuncias.Navigator initialRouteName="DenunciasIni">
22
-      <StackDenuncias.Screen name="Denuncias" component={Denuncias} />
23
-      <StackDenuncias.Screen name="Formulario" component={Formulario} />
24
-      <StackDenuncias.Screen name="Lista" component={Lista} />
25
-      <StackDenuncias.Screen name="Drna" component={Drna} />
26
-    </StackDenuncias.Navigator>
27
-  );
28
-}
29
-
30
-const Tab = createBottomTabNavigator();
31
-
32
-function Tabs() {
33
-  return (
34
-    <Tab.Navigator initialRouteName="DenunciasIni">
35
-      <Tab.Screen
36
-        name="Denuncias"
37
-        component={Stacks}
38
-        options={{
39
-                tabBarIcon: ({}) => (
40
-                    <Entypo name="megaphone" size={24} color="black" />
41
-                ),
42
-                 headerShown:false
43
-            }} 
44
-      />
45
-      <Tab.Screen 
46
-      name="Derechos" 
47
-      component={Derechos} 
48
-      options={{
49
-      tabBarIcon: ({}) => (
50
-                    <Ionicons name="ios-newspaper-outline" size={24} color="black" />
51
-                )
52
-            }}
53
-      />
54
-      <Tab.Screen 
55
-      name="Analisis" 
56
-      component={Analisis} 
57
-      options={{
58
-                tabBarIcon: ({}) => (
59
-                    <Ionicons name="earth" size={24} color="black" />
60
-                )
61
-            }}   />
62
-    </Tab.Navigator>
63
-  );
64
-}
65
-
66
-export default function Navigation() {
67
-  return (
68
-    <NavigationContainer>
69
-      <Tabs />
70
-    </NavigationContainer>
71
-  );
72
-}

+ 0
- 33
app.json 查看文件

@@ -1,33 +0,0 @@
1
-{
2
-  "expo": {
3
-    "name": "Aco",
4
-    "slug": "Aco",
5
-    "version": "1.0.0",
6
-    "orientation": "portrait",
7
-    "icon": "./assets/icon.png",
8
-    "userInterfaceStyle": "light",
9
-    "splash": {
10
-      "image": "./assets/splash.png",
11
-      "resizeMode": "contain",
12
-      "backgroundColor": "#ffffff"
13
-    },
14
-    "updates": {
15
-      "fallbackToCacheTimeout": 0
16
-    },
17
-    "assetBundlePatterns": [
18
-      "**/*"
19
-    ],
20
-    "ios": {
21
-      "supportsTablet": true
22
-    },
23
-    "android": {
24
-      "adaptiveIcon": {
25
-        "foregroundImage": "./assets/adaptive-icon.png",
26
-        "backgroundColor": "#FFFFFF"
27
-      }
28
-    },
29
-    "web": {
30
-      "favicon": "./assets/favicon.png"
31
-    }
32
-  }
33
-}

二进制
assets/adaptive-icon.png 查看文件


二进制
assets/favicon.png 查看文件


二进制
assets/icon.png 查看文件


二进制
assets/splash.png 查看文件


+ 0
- 6
babel.config.js 查看文件

@@ -1,6 +0,0 @@
1
-module.exports = function(api) {
2
-  api.cache(true);
3
-  return {
4
-    presets: ['babel-preset-expo'],
5
-  };
6
-};

+ 0
- 22207
package-lock.json
文件差异内容过多而无法显示
查看文件


+ 0
- 30
package.json 查看文件

@@ -1,30 +0,0 @@
1
-{
2
-  "name": "aco",
3
-  "version": "1.0.0",
4
-  "main": "node_modules/expo/AppEntry.js",
5
-  "scripts": {
6
-    "start": "expo start",
7
-    "android": "expo start --android",
8
-    "ios": "expo start --ios",
9
-    "web": "expo start --web"
10
-  },
11
-  "dependencies": {
12
-    "@react-navigation/bottom-tabs": "^6.4.0",
13
-    "@react-navigation/native": "^6.0.13",
14
-    "@react-navigation/native-stack": "^6.9.1",
15
-    "expo": "~47.0.3",
16
-    "expo-status-bar": "~1.4.2",
17
-    "react": "18.1.0",
18
-    "react-native": "0.70.5",
19
-    "react-native-custom-navigation-tabs": "^3.0.1",
20
-    "react-native-dropdown-select-list": "^2.0.2",
21
-    "react-native-gesture-handler": "~2.8.0",
22
-    "react-native-keyboard-aware-scroll-view": "^0.9.5",
23
-    "react-native-safe-area-context": "4.4.1",
24
-    "react-native-screens": "~3.18.0"
25
-  },
26
-  "devDependencies": {
27
-    "@babel/core": "^7.12.9"
28
-  },
29
-  "private": true
30
-}

+ 0
- 149
screens/Analisis.js 查看文件

@@ -1,149 +0,0 @@
1
-import React from "react";
2
-import {
3
-  View,
4
-  Text,
5
-  StyleSheet,
6
-  Linking
7
-} from "react-native";
8
-
9
-// TOOL DESCRIPTIONS
10
-const bodyEJScreen = "EJScreen es..... Presione para ir al enlace."
11
-const bodyCEJST = "CEJST es..... Presione para ir al enlace."
12
-const bodyEJAtlas = "EJAtlas es..... Presione para ir al enlace."
13
-const bodyIPCC = "El ''Intergovernmental Panel on Climate Change'' o IPCC es..... Presione para ir al enlace."
14
-
15
-const Analisis = () => {
16
-  return (
17
-  <View>
18
-
19
-    {/* TAB TITLE CODE*/}
20
-    {/* TAB TITLE */}
21
-    <Text style={styles.Tab}> 
22
-      Enlaces a Herramientas de Análisis Externas
23
-    </Text>
24
-  
25
-    {/* FIRST TOOL CODE*/}
26
-    {/* FIRST TOOL TITLE */}
27
-    <View style={styles.Number}>
28
-      <Text style={styles.Number}>
29
-        1)
30
-      </Text>
31
-      <Text style={styles.Title} 
32
-        onPress={ ()=> Linking.openURL('https://ejscreen.epa.gov/mapper/') }>
33
-        Enlace a EJScreen
34
-      </Text>
35
-    </View>
36
-    {/* FIRST TOOL BODY */}
37
-    <View style={styles.Bullet}>
38
-      <Text style={styles.Bullet}>
39
-        {'\u002D'}
40
-      </Text>
41
-      <Text style={styles.Body}>
42
-        {bodyEJScreen}
43
-      </Text>
44
-    </View>
45
-    
46
-    {/* SECOND TOOL CODE*/}
47
-    {/* SECOND TOOL TITLE */}
48
-    <View style={styles.Number}>
49
-      <Text style={styles.Number}>
50
-        2)</Text>
51
-      <Text style={styles.Title} 
52
-        onPress={ ()=> Linking.openURL('https://screeningtool.geoplatform.gov/en/#3/33.47/-97.5') }>
53
-        Enlace a CEJST
54
-      </Text>
55
-    </View>
56
-    {/* SECOND TOOL BODY */}
57
-    <View style={styles.Bullet}>
58
-      <Text style={styles.Bullet}>
59
-        {'\u002D'}
60
-      </Text>
61
-      <Text style={styles.Body}>
62
-        {bodyCEJST}
63
-      </Text>
64
-    </View>
65
-  
66
-    {/* THIRD TOOL CODE*/}
67
-    {/* THIRD TOOL TITLE */}
68
-    <View style={styles.Number}>
69
-      <Text style={styles.Number}>
70
-        3)
71
-      </Text>
72
-      <Text style={styles.Title} 
73
-        onPress={ ()=> Linking.openURL('https://ejatlas.org/') }>
74
-        Enlace a EJAtlas
75
-      </Text>
76
-    </View>
77
-    {/* THIRD TOOL BODY */}
78
-    <View style={styles.Bullet}>
79
-      <Text style={styles.Bullet}>
80
-        {'\u002D'}
81
-      </Text>
82
-      <Text style={styles.Body}>
83
-         {bodyEJAtlas}
84
-      </Text>
85
-    </View>
86
-  
87
-    {/* FOURTH TOOL CODE*/}
88
-    {/* FOURTH TOOL TITLE */}
89
-    <View style={styles.Number}>
90
-      <Text style={styles.Number}>
91
-        4)
92
-      </Text>
93
-      <Text style={styles.Title} 
94
-        onPress={ ()=> Linking.openURL('https://www.ipcc.ch/') }>
95
-        Enlace al IPCC
96
-      </Text>
97
-    </View>
98
-    {/* FOURTH TOOL BODY */}
99
-    <View style={styles.Bullet}>
100
-      <Text style={styles.Bullet}>
101
-        {'\u002D'}
102
-      </Text>
103
-      <Text style={styles.Body}>
104
-        {bodyIPCC}
105
-      </Text>
106
-    </View>
107
-          
108
-  </View>
109
-)}
110
-  
111
-const styles = StyleSheet.create({
112
-  Tab: { fontSize: 30,
113
-         textAlign: "center",
114
-         marginTop: "12%",
115
-         marginLeft: "1.4%",
116
-         marginRight: "1.4%"
117
-        },
118
-  
119
-  Number: { fontSize: 23,
120
-            textAlign: "left",
121
-            marginLeft: "2.5%",
122
-            marginTop: "5.5%",
123
-            flexDirection: 'row'
124
-          },
125
-  
126
-  Title: { fontSize: 23,
127
-           textAlign: "left",
128
-           marginTop: "5.5%", 
129
-           color: "#6495ed",
130
-           flex: 0,
131
-           paddingLeft: 6
132
-          },
133
-  
134
-  Body: { fontSize: 18,
135
-          textAlign: "left",
136
-          marginTop: "2%",
137
-          flex: 1, 
138
-          paddingLeft: 5
139
-        },
140
-  
141
-  Bullet: { fontSize: 18,
142
-            textAlign: "left",
143
-            marginLeft: "6%",
144
-            marginTop: "2%",
145
-            flexDirection: 'row'
146
-          }
147
-});
148
-
149
-export default Analisis;

+ 0
- 62
screens/Denuncias.js 查看文件

@@ -1,62 +0,0 @@
1
-import { useNavigation } from "@react-navigation/native";
2
-import { createNativeStackNavigator } from "@react-navigation/native-stack";
3
-import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
4
-import { NavigationContainer } from "@react-navigation/native";
5
-import React from "react";
6
-import { View, Text, StyleSheet, TouchableOpacity } from "react-native";
7
-
8
-const Denuncias = () => {
9
-  const currNav = useNavigation();
10
-
11
-  return (
12
-    <View>
13
-      <Text
14
-        style={{
15
-          fontSize: 30,
16
-          textAlign: "center",
17
-          marginTop: "20%",
18
-        }}
19
-      >
20
-        Llenar formulario y listado de denuncias
21
-      </Text>
22
-
23
-      <TouchableOpacity
24
-        style={styles.button}
25
-        onPress={() => currNav.navigate("Formulario")}
26
-      >
27
-        <Text style={styles.text}> Formularios </Text>
28
-      </TouchableOpacity>
29
-
30
-      <TouchableOpacity
31
-        style={styles.button}
32
-        onPress={() => currNav.navigate("Lista")}
33
-      >
34
-        <Text style={styles.text}>Listado</Text>
35
-      </TouchableOpacity>
36
-    </View>
37
-  );
38
-};
39
-
40
-export default Denuncias;
41
-
42
-const styles = StyleSheet.create({
43
-  button: {
44
-    width: 250,
45
-    alignSelf: "center",
46
-    alignItems: "center",
47
-    justifyContent: "center",
48
-    paddingVertical: 12,
49
-    paddingHorizontal: 32,
50
-    borderRadius: 4,
51
-    elevation: 3,
52
-    backgroundColor: "#009688",
53
-    marginTop: "5%",
54
-  },
55
-  text: {
56
-    fontSize: 16,
57
-    lineHeight: 21,
58
-    fontWeight: "bold",
59
-    letterSpacing: 0.25,
60
-    color: "white",
61
-  },
62
-});

+ 0
- 127
screens/Derechos.js 查看文件

@@ -1,127 +0,0 @@
1
-import React from "react";
2
-import {
3
-  View,
4
-  Text,
5
-  StyleSheet,
6
-  TouchableOpacity,
7
-  Linking,
8
-  Pressable,
9
-} from "react-native";
10
-import { FlatList, TouchableHighlight } from "react-native-gesture-handler";
11
-import { ButtonLay } from "./components/Button.js";
12
-import Leyes from "./data/leyes.json";
13
-import LeyesPR from "./data/leyesPR.json";
14
-import DerechosAmb from "./data/derechos.json";
15
-
16
-const Derechos = () => {
17
-  return (
18
-    <>
19
-      <View>
20
-        <Text style={styles.container2}>1) Leyes de la Tierra</Text>
21
-        <View >
22
-          {Leyes.map(({id, title, link}) => {
23
-            return (
24
-              <>
25
-                <TouchableOpacity
26
-                  style={styles.button}
27
-                  key={id}
28
-                  onPress={() => {
29
-                    Linking.openURL(link.toString());
30
-                  }}
31
-                >
32
-                  <Text style={styles.text}>{title}</Text>
33
-                </TouchableOpacity>
34
-              </>
35
-            );
36
-          })}
37
-        </View>
38
-      </View>
39
-
40
-      <View>
41
-        <Text style={styles.container2}>
42
-          2) Derechos del activista climatico
43
-        </Text>
44
-        <View>
45
-          {DerechosAmb.map(({id, title, link}) => {
46
-            return (
47
-              <>
48
-                <TouchableOpacity
49
-                 
50
-                  style={styles.button}
51
-                  onPress={() => {
52
-                    Linking.openURL(link.toString());
53
-                  }}
54
-                >
55
-                  <Text style={styles.text}  key={id} >{title}</Text>
56
-                </TouchableOpacity>
57
-              </>
58
-            );
59
-          })}
60
-        </View>
61
-      </View>
62
-
63
-       <View>
64
-        <Text style={styles.container2}>3) Leyes de Puerto Rico</Text>
65
-        <View>
66
-          {LeyesPR.map(({id, title, link}) => {
67
-            return (
68
-              <>
69
-                <TouchableOpacity
70
-                  style={styles.button}
71
-                  onPress={() => {
72
-                    Linking.openURL(link.toString());
73
-                  }}
74
-                >
75
-                  <Text style={styles.text} key={id}>{title}</Text>
76
-                </TouchableOpacity>
77
-              </>
78
-            );
79
-          })}
80
-        </View>
81
-      </View>
82
-    </>
83
-  );
84
-};
85
-
86
-const styles = StyleSheet.create({
87
-  container: {
88
-    fontSize: 25,
89
-    textAlign: "center",
90
-    marginTop: "10%",
91
-  },
92
-
93
-  container2: {
94
-    fontSize: 25,
95
-    textAlign: "left",
96
-    marginTop: "10%",
97
-    marginLeft: "5%",
98
-  },
99
-
100
-  laws: {
101
-    fontSize: 15,
102
-    textAlign: "center",
103
-    marginTop: "5%",
104
-  },
105
-  button: {
106
-    width: 250,
107
-    alignSelf: "center",
108
-    alignItems: "center",
109
-    justifyContent: "center",
110
-    paddingVertical: 12,
111
-    paddingHorizontal: 32,
112
-    borderRadius: 4,
113
-    elevation: 3,
114
-    backgroundColor: "#009688",
115
-    marginTop: "5%",
116
-  },
117
-  text: {
118
-    fontSize: 16,
119
-    lineHeight: 21,
120
-    fontWeight: "bold",
121
-    letterSpacing: 0.25,
122
-    color: "white",
123
-    textAlign: "center",
124
-  },
125
-});
126
-
127
-export default Derechos;

+ 0
- 180
screens/Drna.js 查看文件

@@ -1,180 +0,0 @@
1
-import React from "react";
2
-import {
3
-  View,
4
-  Text,
5
-  StyleSheet,
6
-  TouchableOpacity,
7
-  TextInput,
8
-  KeyboardAvoidingView
9
-} from "react-native";
10
-import { SelectList } from "react-native-dropdown-select-list";
11
-import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
12
-import leyesViolaciones from "./data/leyesViolaciones.json"
13
-import Municipalities from "./data/municipalities.json";
14
-
15
-
16
-const postData = (URL, data) => {
17
-  fetch(URL, {
18
-    method: "POST",
19
-    headers: {
20
-      Accept: "application/json",
21
-      "Content-Type": "application/json",
22
-    },
23
-    body: JSON.stringify(data),
24
-  })
25
-    .then((response) => response.json())
26
-    .then((responseJson) => {
27
-      console.log(responseJson);
28
-    })
29
-    .catch((error) => {
30
-      console.error(error);
31
-    });
32
-};
33
-
34
-const Drna = () => {
35
-  const URL = "http://172.20.10.2:5001/complaints/add";
36
-  const [name, onChangeName] = React.useState(null);
37
-  const [email, onChangeEmail] = React.useState(null);
38
-  const [place, onChangePlace] = React.useState(null);
39
-  const [selected, setSelected] = React.useState("");
40
-  const [description, onChangeDescription] = React.useState(null);
41
-  const [location, onChangeLocation] = React.useState(null);
42
-  const [municipality, setMunicipality] = React.useState(null);
43
-
44
-  return (
45
-    <KeyboardAwareScrollView>
46
-      <View>
47
-        <Text
48
-          style={{
49
-            fontSize: 30,
50
-            textAlign: "center",
51
-            marginTop: "20%",
52
-          }}
53
-        >
54
-          Formulario DRNA
55
-        </Text>
56
-
57
-        <TextInput
58
-          style={styles.input}
59
-          value={name}
60
-          onChangeText={onChangeName}
61
-          placeholder="Nombre"
62
-          placeholderTextColor={"grey"}
63
-        />
64
-        <TextInput
65
-          style={styles.input}
66
-          value={email}
67
-          onChangeText={onChangeEmail}
68
-          placeholder="Email"
69
-          placeholderTextColor={"grey"}
70
-        />
71
-        {/* <TextInput
72
-              style={styles.input}
73
-              value={text}
74
-              placeholder="Fecha"
75
-              placeholderTextColor={"grey"}
76
-          /> */}
77
-        <SelectList
78
-          boxStyles={styles.input}
79
-          dropdownStyles={styles.input2}
80
-          data={
81
-            leyesViolaciones.map((der) => { 
82
-              return(
83
-                der.value
84
-                )
85
-                })
86
-            }
87
-          setSelected={setSelected}
88
-          placeholder="Leyes en violacion"
89
-        />
90
-        <SelectList
91
-          boxStyles={styles.input}
92
-          dropdownStyles={styles.input2}
93
-          data={
94
-            Municipalities.map((der) => { 
95
-              return(
96
-                der
97
-                )
98
-                })
99
-            }
100
-          setSelected={setMunicipality}
101
-          placeholder="Municipio donde ocurrio"
102
-        />
103
-        <TextInput
104
-          style={styles.input}
105
-          value={location}
106
-          onChangeText={onChangeLocation}
107
-          placeholder="Coordenadas de lo ocurrido"
108
-          placeholderTextColor={"grey"}
109
-        />
110
-        <TextInput
111
-          style={styles.input}
112
-          value={place}
113
-          onChangeText={onChangePlace}
114
-          placeholder="Lugar de los hechos"
115
-          placeholderTextColor={"grey"}
116
-        />
117
-        <TextInput
118
-          style={styles.input2}
119
-          value={description}
120
-          placeholder="Descripcion de los hechos"
121
-          onChangeText={onChangeDescription}
122
-          placeholderTextColor={"grey"}
123
-        />
124
-        <TouchableOpacity
125
-          style={styles.button}
126
-          onPress={() =>
127
-            postData(URL, {
128
-              name: name,
129
-              email: email,
130
-              place: place,
131
-              complaint_status: "pending",
132
-              complaint_type: selected.valueOf(),
133
-              complaint_description: description,
134
-            })
135
-          }
136
-        >
137
-          <Text style={styles.text}>Someter</Text>
138
-        </TouchableOpacity>
139
-      </View>
140
-    </KeyboardAwareScrollView>
141
-  );
142
-};
143
-
144
-export default Drna;
145
-
146
-const styles = StyleSheet.create({
147
-  input: {
148
-    height: 40,
149
-    margin: 12,
150
-    borderWidth: 0.5,
151
-    padding: 10,
152
-    borderRadius: 10,
153
-  },
154
-  input2: {
155
-    height: 100,
156
-    margin: 12,
157
-    borderWidth: 0.5,
158
-    padding: 15,
159
-    borderRadius: 10,
160
-  },
161
-  button: {
162
-    width: 250,
163
-    alignSelf: "center",
164
-    alignItems: "center",
165
-    justifyContent: "center",
166
-    paddingVertical: 12,
167
-    paddingHorizontal: 32,
168
-    borderRadius: 4,
169
-    elevation: 3,
170
-    backgroundColor: "#009688",
171
-    marginTop: "5%",
172
-  },
173
-  text: {
174
-    fontSize: 16,
175
-    lineHeight: 21,
176
-    fontWeight: "bold",
177
-    letterSpacing: 0.25,
178
-    color: "white",
179
-  },
180
-});

+ 0
- 70
screens/Formulario.js 查看文件

@@ -1,70 +0,0 @@
1
-import { createNativeStackNavigator } from "@react-navigation/native-stack";
2
-import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
3
-import { NavigationContainer } from "@react-navigation/native";
4
-import { useNavigation } from "@react-navigation/native";
5
-import React from "react";
6
-import {
7
-  View,
8
-  Text,
9
-  StyleSheet,
10
-  TouchableOpacity,
11
-  Linking,
12
-} from "react-native";
13
-
14
-const Formulario = () => {
15
-  const currNav = useNavigation();
16
-  return (
17
-    <View>
18
-      <Text
19
-        style={{
20
-          fontSize: 30,
21
-          textAlign: "center",
22
-          marginTop: "20%",
23
-        }}
24
-      >
25
-        Llenar formulario EPA y DRNA
26
-      </Text>
27
-
28
-      <TouchableOpacity
29
-        style={styles.button}
30
-        onPress={() => currNav.navigate("Drna")}
31
-      >
32
-        <Text style={styles.text}>Formulario DRNA</Text>
33
-      </TouchableOpacity>
34
-      <TouchableOpacity
35
-        style={styles.button}
36
-        onPress={() => {
37
-          Linking.openURL(
38
-            "https://echo.epa.gov/denuncie-violaciones-ambientales"
39
-          );
40
-        }}
41
-      >
42
-        <Text style={styles.text}>Formulario EPA</Text>
43
-      </TouchableOpacity>
44
-    </View>
45
-  );
46
-};
47
-
48
-export default Formulario;
49
-
50
-const styles = StyleSheet.create({
51
-  button: {
52
-    width: 250,
53
-    alignSelf: "center",
54
-    alignItems: "center",
55
-    justifyContent: "center",
56
-    paddingVertical: 12,
57
-    paddingHorizontal: 32,
58
-    borderRadius: 4,
59
-    elevation: 3,
60
-    backgroundColor: "#009688",
61
-    marginTop: "5%",
62
-  },
63
-  text: {
64
-    fontSize: 16,
65
-    lineHeight: 21,
66
-    fontWeight: "bold",
67
-    letterSpacing: 0.25,
68
-    color: "white",
69
-  },
70
-});

+ 0
- 52
screens/Lista.js 查看文件

@@ -1,52 +0,0 @@
1
-import React, { useEffect, useState } from "react";
2
-import {
3
-  ActivityIndicator,
4
-  FlatList,
5
-  View,
6
-  Text,
7
-  StyleSheet,
8
-  TouchableOpacity,
9
-} from "react-native";
10
-
11
-const Lista = () => {
12
-  const [isLoading, setLoading] = useState(true);
13
-  const [data, setData] = useState([]);
14
-
15
-  const getComplaints = async () => {
16
-    try {
17
-      const response = await fetch("http://172.20.10.2:5001/complaints/all");
18
-      const json = await response.json();
19
-      setData(json.Complaints);
20
-    } catch (error) {
21
-      console.error(error);
22
-    } finally {
23
-      setLoading(false);
24
-    }
25
-  };
26
-
27
-  useEffect(() => {
28
-    getComplaints();
29
-  }, []);
30
-
31
-  return (
32
-    <View style={{ flex: 1, padding: 24 }}>
33
-      {isLoading ? (
34
-        <ActivityIndicator />
35
-      ) : (
36
-        <FlatList
37
-          data={data}
38
-          keyExtractor={({ id }, index) => id}
39
-          renderItem={({ item }) => (
40
-            <Text style={{ padding: 8 }}>
41
-              ID:{item.id}, Tipo de denuncia: {item.complaint_type}, Hecha por:{" "}
42
-              {item.name}, en el lugar: {item.place}, descripcion del problema:{" "}
43
-              {item.complaint_description}, estatus:{"En espera"}
44
-            </Text>
45
-          )}
46
-        />
47
-      )}
48
-    </View>
49
-  );
50
-};
51
-
52
-export default Lista;

+ 0
- 32
screens/components/Button.js 查看文件

@@ -1,32 +0,0 @@
1
-import React from "react";
2
-import {
3
-  View,
4
-  Text,
5
-  StyleSheet,
6
-  TouchableOpacity,
7
-  Linking,
8
-  Button,
9
-  Pressable,
10
-} from "react-native";
11
-
12
-const ButtonLay = StyleSheet.create({
13
-  button: {
14
-    width: 250,
15
-    alignSelf: "center",
16
-    alignItems: "center",
17
-    justifyContent: "center",
18
-    paddingVertical: 12,
19
-    paddingHorizontal: 32,
20
-    borderRadius: 4,
21
-    elevation: 3,
22
-    backgroundColor: "#009688",
23
-    marginTop: "5%",
24
-  },
25
-  text: {
26
-    fontSize: 16,
27
-    lineHeight: 21,
28
-    fontWeight: "bold",
29
-    letterSpacing: 0.25,
30
-    color: "white",
31
-  },
32
-});

+ 0
- 26
screens/data/analisis.json 查看文件

@@ -1,26 +0,0 @@
1
-[
2
-    {
3
-        "id": 1,
4
-        "title": "EJScreen",
5
-        "link": "https://ejscreen.epa.gov/mapper/",
6
-        "description": "EJScreen es..... Presione para ir al enlace."
7
-    },
8
-    {
9
-        "id": 2,
10
-        "title": "CEJST",
11
-        "link": "https://screeningtool.geoplatform.gov/en/#3/33.47/-97.5",
12
-        "description": "CEJST es..... Presione para ir al enlace."
13
-    },
14
-    {
15
-        "id": 3,
16
-        "title": "EJAtlas",
17
-        "link": "https://ejatlas.org/",
18
-        "description": "EJAtlas es..... Presione para ir al enlace."
19
-    },
20
-    {
21
-        "id": 4,
22
-        "title": "Intergovernmental Panel on Climate Change",
23
-        "link": "https://www.ipcc.ch/",
24
-        "description": "El Intergovernmental Panel on Climate Change (IPCC) es..... Presione para ir al enlace."
25
-    }
26
-]

+ 0
- 7
screens/data/derechos.json 查看文件

@@ -1,7 +0,0 @@
1
-[
2
-    {
3
-        "id": 1,
4
-        "title": "Declaración Universal de los Derechos de la Madre Tierra",
5
-        "link": "http://rio20.net/propuestas/declaracion-universal-de-los-derechos-de-la-madre-tierra/"
6
-    }
7
-]

+ 0
- 17
screens/data/leyes.json 查看文件

@@ -1,17 +0,0 @@
1
-[
2
-    {
3
-        "id": 2,
4
-        "title": "Ley de Tierras de Puerto Rico",
5
-        "link": "https://bvirtualogp.pr.gov/ogp/BVirtual/LeyesOrganicas/pdf/26-1941.pdf"
6
-    },
7
-    {
8
-        "id": 3,
9
-        "title": "Ley Sobre Politica Publica Ambiental",
10
-        "link": "https://www.drna.pr.gov/wp-content/uploads/2019/12/Ley-416-2004-refrencias-LPRA-2018.pdf"
11
-    },
12
-    {
13
-        "id":4,
14
-        "title":"La Carta de la Tierra",
15
-        "link":"https://cartadelatierra.org/lea-la-carta-de-la-tierra/preambulo/"
16
-    }
17
-]

+ 0
- 7
screens/data/leyesPR.json 查看文件

@@ -1,7 +0,0 @@
1
-[
2
-    {
3
-        "id": 1,
4
-        "title": "Constitucion", 
5
-        "link": "https://www2.pr.gov/sobrepuertorico/documents/elaconstitucion.pdf"
6
-    }
7
-]

+ 0
- 14
screens/data/leyesViolaciones.json 查看文件

@@ -1,14 +0,0 @@
1
-[
2
-    { "key": 1, "value": "Descarga de águas contaminadas" },
3
-    { "key": 2, "value": "Olores objetables-fuertes" },
4
-    { "key": 3, "value": "Tala y/o poda de árboles" },
5
-    { "key": 4, "value": "Rellenando un bosque" },
6
-    { "key": 5, "value": "Rellenando una quebrada" },
7
-    { "key": 6, "value": "Realizando perforaciones en el suelo" },
8
-    { "key": 7, "value": "Moviendo con maquinaria tierra de un lugar a otro" },
9
-    { "key": 8, "value": "Peces y/o otros organismos muertos" },
10
-    { "key": 9, "value": "Tapando la vegetación" },
11
-    { "key": 10, "value": "Destrucción de humedal" },
12
-    { "key": 11, "value": "Construcción sospechosa" },
13
-    { "key": 12, "value": "Otros (vertederos clandestinos, entre otros)" }
14
-  ]

+ 0
- 9
screens/data/municipalities.json 查看文件

@@ -1,9 +0,0 @@
1
-["Adjuntas","Aguada","Aguadilla","Aguas Buenas","Aibonito","Arecibo","Arroyo","Añasco",
2
-"Barceloneta","Barranquitas","Bayamón","Cabo Rojo","Caguas","Camuy","Canóvanas","Carolina",
3
-"Cataño","Cayey","Ceiba","Ciales","Cidra","Coamo","Comerío","Corozal","Culebra","Dorado",
4
-"Fajardo","Florida","Guayama","Guayanilla","Guaynabo","Gurabo","Guánica","Hatillo","Hormigueros",
5
-"Humacao","Isabela","Jayuya","Juana Díaz","Juncos","Lajas","Lares","Las Marías","Las Piedras",
6
-"Loiza","Luquillo","Manatí","Maricao","Maunabo","Mayagüez","Moca","Morovis","Naguabo","Naranjito",
7
-"Orocovis","Patillas","Peñuelas","Ponce","Quebradillas","Rincón","Rio Grande","Sabana Grande"
8
-,"Salinas","San Germán","San Juan","San Lorenzo","San Sebastián","Santa Isabel","Toa Alta",
9
-"Toa Baja","Trujillo Alto","Utuado","Vega Alta","Vega Baja","Vieques","Villalba","Yabucoa","Yauco"]

+ 0
- 18
screens/data/zipcode.json 查看文件

@@ -1,18 +0,0 @@
1
-["00601","00602","00603","00604","00605","00606","00610","00611","00611",
2
-"00612","00613","00614","00616","00617","00622","00623","00624","00627","00631",
3
-"00631","00636","00637","00638","00641","00646","00647","00650","00652","00653",
4
-"00656","00659","00660","00662","00664","00667","00669","00670","00674","00676",
5
-"00677","00678","00680","00681","00682","00683","00685","00687","00688","00690",
6
-"00692","00693","00694","00698","00703","00704","00705","00707","00714","00715",
7
-"00716","00717","00718","00719","00720","00721","00721","00723","00725","00726",
8
-"00727","00728","00729","00730","00731","00732","00733","00734","00735","00736",
9
-"00737","00738","00739","00740","00741","00742","00744","00745","00745","00751",
10
-"00754","00757","00765","00766","00767","00769","00771","00772","00773","00775",
11
-"00777","00778","00780","00782","00783","00784","00785","00786","00791","00792",
12
-"00794","00795","00901","00902","00906","00907","00908","00909","00910","00911",
13
-"00912","00913","00914","00915","00916","00917","00919","00920","00921","00923",
14
-"00924","00925","00926","00927","00928","00929","00930","00931","00933","00934",
15
-"00936","00940","00949","00950","00951","00952","00953","00954","00956","00957",
16
-"00958","00959","00960","00961","00962","00963","00965","00966","00968","00969",
17
-"00970","00971","00976","00977","00978","00979","00981","00982","00983","00984",
18
-"00985","00986","00987","00988"]

+ 0
- 6932
yarn.lock
文件差异内容过多而无法显示
查看文件