diff --git a/Application/assets/icons/delete_list_button.png b/Application/assets/icons/delete.png
similarity index 100%
rename from Application/assets/icons/delete_list_button.png
rename to Application/assets/icons/delete.png
diff --git a/Application/assets/icons/delete_button.png b/Application/assets/icons/delete_button.png
old mode 100644
new mode 100755
index 8f141bd..81444d5
Binary files a/Application/assets/icons/delete_button.png and b/Application/assets/icons/delete_button.png differ
diff --git a/Application/assets/icons/down_button.png b/Application/assets/icons/down_button.png
old mode 100644
new mode 100755
index 54f24c3..89f66ad
Binary files a/Application/assets/icons/down_button.png and b/Application/assets/icons/down_button.png differ
diff --git a/Application/assets/icons/menu.png b/Application/assets/icons/menu.png
new file mode 100644
index 0000000..deaeb9c
Binary files /dev/null and b/Application/assets/icons/menu.png differ
diff --git a/Application/assets/icons/new.png b/Application/assets/icons/new.png
new file mode 100644
index 0000000..2e41ca5
Binary files /dev/null and b/Application/assets/icons/new.png differ
diff --git a/Application/assets/icons/new_list_button.png b/Application/assets/icons/new_list_button.png
deleted file mode 100644
index b06258a..0000000
Binary files a/Application/assets/icons/new_list_button.png and /dev/null differ
diff --git a/Application/assets/icons/up_button.png b/Application/assets/icons/up_button.png
old mode 100644
new mode 100755
index 1d18ea2..55d814d
Binary files a/Application/assets/icons/up_button.png and b/Application/assets/icons/up_button.png differ
diff --git a/Application/navigation/CrowdSourceNavigator.js b/Application/navigation/CrowdSourceNavigator.js
deleted file mode 100644
index 8fe0f8a..0000000
--- a/Application/navigation/CrowdSourceNavigator.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import { createDrawerNavigator, createAppContainer} from 'react-navigation';
-import RegisterItemPage from '../pages/RegisterItemPage'
-import CrowdSourcePage from '../pages/CrowdSourcePage';
-import AddItemLocationPage from '../pages/AddItemLocationPage';
-import MapCreatorPage from '../pages/MapCreatorPage'
-
-/**
- * This is the navigator used for accessing
- * the crowd sourcing components in the application.
- */
-const CrowdSourceNavigator = createDrawerNavigator(
- {
- MainCrowdSourcePage: {
- screen: CrowdSourcePage
- },
- RegisterItemPage: {
- screen: RegisterItemPage,
- navigationOptions:{
- drawerLabel: "Register Items"
- }
- },
- AddItemLocationPage: {
- screen: AddItemLocationPage,
- navigationOptions:{
- drawerLabel: "Add Item Locations"
- }
- },
- MapCreatorPage: {
- screen: MapCreatorPage,
- navigationOptions: {
- drawerLabel: "Map Creator"
- }
- },
- },
- {
- gesturesEnabled: false
- }
-);
-
-const App = createAppContainer(CrowdSourceNavigator);
-
-export default App;
\ No newline at end of file
diff --git a/Application/navigation/MainDrawerNavigator.js b/Application/navigation/MainDrawerNavigator.js
index e68abaf..a3be99e 100644
--- a/Application/navigation/MainDrawerNavigator.js
+++ b/Application/navigation/MainDrawerNavigator.js
@@ -1,43 +1,94 @@
import {
createDrawerNavigator,
- createAppContainer
+ createAppContainer,
+ createStackNavigator
} from 'react-navigation';
import HomePage from '../pages/HomePage';
import YourLists from '../pages/YourLists'
import CurrentList from '../pages/CurrentList'
+import MapCreatorPage from '../pages/MapCreatorPage'
+import SideMenu from './SideMenu';
+import RegisterItemPage from '../pages/RegisterItemPage'
+import CrowdSourcePage from '../pages/CrowdSourcePage';
+import AddItemLocationPage from '../pages/AddItemLocationPage';
-import CrowdSourcePage from '../pages/CrowdSourcePage'
-import CrowdSourceNavigator from './CrowdSourceNavigator';
-const MainDrawerNavigator = createDrawerNavigator({
+const StackNavigator = createStackNavigator({
Home: {
screen: HomePage
},
- CrowdSourceOptionPage: {
- screen: CrowdSourcePage,
- navigationOptions:{
- drawerLabel: "Crowd Source Options"
+ AddItemLocationPage: {
+ screen: AddItemLocationPage
+ },
+ MapCreatorPage: {
+ screen: MapCreatorPage
+ },
+ YourListsPage: {
+ screen: YourLists
+ },
+ CurrentListPage: {
+ screen: CurrentList
+ },
+ CrowdSourcePage: {
+ screen: CrowdSourcePage
+ },
+ RegisterItemPage: {
+ screen: RegisterItemPage
+ },
+}, {
+ //TODO
+ initialRouteName: "YourListsPage",
+ headerMode: "none"
+});
+
+const MainDrawerNavigator = createDrawerNavigator({
+ Home: {
+ screen: StackNavigator,
+ navigationOptions: {
+ drawerLabel: "Home"
}
},
- CrowdSource: {
- screen: CrowdSourceNavigator
+ AddItemLocationPage: {
+ screen: StackNavigator,
+ navigationOptions: {
+ drawerLabel: "Add Item Location"
+ }
+ },
+ MapCreatorPage: {
+ screen: StackNavigator,
+ navigationOptions: {
+ drawerLabel: "Map a Store"
+ }
},
YourListsPage: {
- screen: YourLists,
+ screen: StackNavigator,
navigationOptions: {
drawerLabel: "Your Lists"
}
},
+ CrowdSourcePage: {
+ screen: StackNavigator,
+ navigationOptions: {
+ drawerLabel: () => null
+ }
+ },
+ RegisterItemPage: {
+ screen: StackNavigator,
+ navigationOptions: {
+ drawerLabel: "Register an Item"
+ }
+ },
CurrentListPage: {
- screen: CurrentList,
+ screen: StackNavigator,
navigationOptions: {
drawerLabel: () => null
}
- }
-
+ },
}, {
- gesturesEnabled: false
+ gesturesEnabled: false,
+ contentComponent: SideMenu,
+ drawerWidth: 250
});
const App = createAppContainer(MainDrawerNavigator);
diff --git a/Application/navigation/RootNavigation.js b/Application/navigation/RootNavigation.js
index 65f3ab2..b55df06 100644
--- a/Application/navigation/RootNavigation.js
+++ b/Application/navigation/RootNavigation.js
@@ -4,7 +4,6 @@ import LoginPage from "../pages/LoginPage";
import ForgotPasswordPage from "../pages/ForgotPasswordPage";
import VerificationPage from "../pages/VerificationPage";
import RegisterPage from "../pages/RegisterPage";
-import MainDrawerNavigator from './MainDrawerNavigator';
const RootStackNavigator = createStackNavigator(
{
@@ -12,8 +11,6 @@ const RootStackNavigator = createStackNavigator(
ForgotPassword: {screen: ForgotPasswordPage},
Registration: {screen:RegisterPage},
Verification: {screen: VerificationPage},
-
- Main: { screen: MainDrawerNavigator, },
},
{
headerMode: "none"
diff --git a/Application/navigation/SideMenu.js b/Application/navigation/SideMenu.js
new file mode 100644
index 0000000..07eb681
--- /dev/null
+++ b/Application/navigation/SideMenu.js
@@ -0,0 +1,72 @@
+import PropTypes from 'prop-types';
+import React, { Component } from 'react';
+import styles from './SideMenuStyle';
+import { NavigationActions } from 'react-navigation';
+import { ScrollView, Text, View } from 'react-native';
+import firebase from 'firebase';
+
+class SideMenu extends Component {
+
+ constructor(props) {
+ super(props)
+ }
+ navigateToScreen = (route) => () => {
+ if (route == 'Logout') {
+ firebase.auth().signOut();
+ } else {
+ const navigateAction = NavigationActions.navigate({
+ routeName: route
+ });
+ this.props.navigation.dispatch(navigateAction);
+ }
+ }
+
+ render() {
+ return (
+
+
+
+
+ Your Data
+
+
+ {/*
+ Home
+ */}
+
+ Your Lists
+
+
+
+
+
+ Feedback
+
+
+
+ Add Item Location
+
+
+ Map a Store
+
+
+ Register an Item
+
+
+
+
+
+
+ Sign Out
+
+
+
+ );
+ }
+}
+
+SideMenu.propTypes = {
+ navigation: PropTypes.object
+};
+
+export default SideMenu;
\ No newline at end of file
diff --git a/Application/navigation/SideMenuStyle.js b/Application/navigation/SideMenuStyle.js
new file mode 100644
index 0000000..385ef36
--- /dev/null
+++ b/Application/navigation/SideMenuStyle.js
@@ -0,0 +1,26 @@
+export default {
+ container: {
+ paddingTop: 35,
+ flex: 1,
+ backgroundColor: 'black',
+ color: 'white',
+ },
+ navItemStyle: {
+ padding: 10,
+ paddingHorizontal: 30
+ },
+ navSectionStyle: {
+ backgroundColor: 'white'
+ },
+ sectionHeadingStyle: {
+ paddingVertical: 10,
+ paddingHorizontal: 10,
+ color: 'white',
+ fontWeight: 'bold',
+ fontSize: 20
+ },
+ footerContainer: {
+ padding: 20,
+ backgroundColor: 'white',
+ }
+};
\ No newline at end of file
diff --git a/Application/package-lock.json b/Application/package-lock.json
index e9344fe..2b04f30 100644
--- a/Application/package-lock.json
+++ b/Application/package-lock.json
@@ -1365,11 +1365,43 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.17.tgz",
"integrity": "sha512-p/sGgiPaathCfOtqu2fx5Mu1bcjuP8ALFg4xpGgNkcin7LwRyzUKniEHBKdcE1RPsenq5JVPIpMTJSygLboygQ=="
},
+ "@types/prop-types": {
+ "version": "15.7.3",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
+ "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
+ },
"@types/qs": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.5.3.tgz",
"integrity": "sha512-Jugo5V/1bS0fRhy2z8+cUAHEyWOATaz4rbyLVvcFs7+dXp5HfwpEwzF1Q11bB10ApUqHf+yTauxI0UXQDwGrbA=="
},
+ "@types/react": {
+ "version": "16.9.11",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.11.tgz",
+ "integrity": "sha512-UBT4GZ3PokTXSWmdgC/GeCGEJXE5ofWyibCcecRLUVN2ZBpXQGVgQGtG2foS7CrTKFKlQVVswLvf7Js6XA/CVQ==",
+ "requires": {
+ "@types/prop-types": "*",
+ "csstype": "^2.2.0"
+ }
+ },
+ "@types/react-native": {
+ "version": "0.60.22",
+ "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.60.22.tgz",
+ "integrity": "sha512-LTXMKEyGA+x4kadmjujX6yAgpcaZutJ01lC7zLJWCULaZg7Qw5/3iOQpwIJRUcOc+a8A2RR7rSxplehVf9IuhA==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/react": "*"
+ }
+ },
+ "@types/react-native-vector-icons": {
+ "version": "6.4.4",
+ "resolved": "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.4.tgz",
+ "integrity": "sha512-G1Iry/8i23IPjZzNjydMt/WcjV+T1Xu3cTXDwSsP9lpKu0bA0j+c7AACJ1aIka8HVnWXS41NoZnKkHImO0SMkw==",
+ "requires": {
+ "@types/react": "*",
+ "@types/react-native": "*"
+ }
+ },
"@types/uuid-js": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/@types/uuid-js/-/uuid-js-0.7.2.tgz",
@@ -1412,6 +1444,27 @@
"negotiator": "0.6.2"
}
},
+ "acorn": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
+ "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ=="
+ },
+ "acorn-jsx": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
+ "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw=="
+ },
+ "ajv": {
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
"ansi": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
@@ -1838,6 +1891,11 @@
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
},
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
+ },
"async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
@@ -2305,6 +2363,15 @@
"object-visit": "^1.0.0"
}
},
+ "color": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz",
+ "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==",
+ "requires": {
+ "color-convert": "^1.9.1",
+ "color-string": "^1.5.2"
+ }
+ },
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -2318,6 +2385,15 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
+ "color-string": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
+ "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
"color-support": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
@@ -2521,6 +2597,11 @@
}
}
},
+ "csstype": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.7.tgz",
+ "integrity": "sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ=="
+ },
"debounce": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz",
@@ -2557,6 +2638,16 @@
"is-obj": "^1.0.0"
}
},
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "deepmerge": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
+ "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA=="
+ },
"define-property": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
@@ -2624,6 +2715,14 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
"dom-storage": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz",
@@ -2644,6 +2743,11 @@
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.170.tgz",
"integrity": "sha512-vDEhHcwMogbM+WXDTh6ZktwQOqLcK7MJdCOM99UZXRI1ct3Y9OeYYJTrIHnswzv+IYwoXNj0Furh+K6UotcHVg=="
},
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -2697,11 +2801,264 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
+ "eslint": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.6.0.tgz",
+ "integrity": "sha512-PpEBq7b6qY/qrOmpYQ/jTMDYfuQMELR4g4WI1M/NaSDDD/bdcMb+dj4Hgks7p41kW2caXsPsEZAEAyAgjVVC0g==",
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^11.7.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.14",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz",
+ "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==",
+ "requires": {
+ "type-fest": "^0.5.2"
+ }
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "figures": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
+ "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
+ "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "import-fresh": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
+ "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "inquirer": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz",
+ "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==",
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "string-width": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz",
+ "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^5.2.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
+ "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A=="
+ },
+ "espree": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz",
+ "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==",
+ "requires": {
+ "acorn": "^7.1.0",
+ "acorn-jsx": "^5.1.0",
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
},
+ "esquery": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
+ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
+ "requires": {
+ "estraverse": "^4.0.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ },
"esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
@@ -3256,6 +3613,21 @@
"time-stamp": "^1.0.0"
}
},
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
"faye-websocket": {
"version": "0.11.3",
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
@@ -3341,6 +3713,14 @@
"escape-string-regexp": "^1.0.5"
}
},
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
"filename-regex": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
@@ -3446,6 +3826,21 @@
"@firebase/util": "0.2.27"
}
},
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "flatted": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
+ "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg=="
+ },
"fontfaceobserver": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.1.0.tgz",
@@ -3983,6 +4378,11 @@
}
}
},
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+ },
"gauge": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
@@ -4659,6 +5059,11 @@
"resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz",
"integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw=="
},
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
+ },
"image-size": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz",
@@ -4971,6 +5376,11 @@
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
},
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
"json-stable-stringify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
@@ -4979,6 +5389,11 @@
"jsonify": "~0.0.0"
}
},
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ },
"json5": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
@@ -5024,6 +5439,15 @@
"invert-kv": "^1.0.0"
}
},
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
"load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@@ -5752,6 +6176,11 @@
}
}
},
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ },
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
@@ -5951,6 +6380,11 @@
"mimic-fn": "^1.0.0"
}
},
+ "opencollective-postinstall": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz",
+ "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw=="
+ },
"opn": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/opn/-/opn-3.0.3.tgz",
@@ -5980,6 +6414,19 @@
}
}
},
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
+ }
+ },
"options": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
@@ -6062,6 +6509,21 @@
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
},
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "requires": {
+ "callsites": "^3.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ }
+ }
+ },
"parse-glob": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
@@ -6280,6 +6742,11 @@
"resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-1.0.1.tgz",
"integrity": "sha1-/mOhfal3YRq+98uAJssalVP9g1k="
},
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
"preserve": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
@@ -6309,6 +6776,11 @@
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
+ },
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
@@ -6366,6 +6838,11 @@
"once": "^1.3.1"
}
},
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
"qs": {
"version": "6.9.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.0.tgz",
@@ -6654,6 +7131,31 @@
"resolved": "https://registry.npmjs.org/react-native-double-tap/-/react-native-double-tap-1.0.1.tgz",
"integrity": "sha512-tDhQv9IJnH4a5tPTQVBzvwcDo9+6a1Xz1JiFbqfORk9fkBnopx+1T2ZdTIUAvgxuUgdbwIRWnSzE3IIkmkeKFw=="
},
+ "react-native-elements": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/react-native-elements/-/react-native-elements-1.2.7.tgz",
+ "integrity": "sha512-0S+0R1cbItl15i64qrkWnyMztwpw60d0SUsZGVDKRAMf0Jvq9Clgyh/MzxJx2sr42mbedQP1sg5Et4fZM7Fp1w==",
+ "requires": {
+ "@types/react-native-vector-icons": "^6.4.4",
+ "color": "^3.1.0",
+ "deepmerge": "^3.1.0",
+ "hoist-non-react-statics": "^3.1.0",
+ "opencollective-postinstall": "^2.0.0",
+ "prop-types": "^15.7.2",
+ "react-native-ratings": "^6.3.0",
+ "react-native-status-bar-height": "^2.2.0"
+ },
+ "dependencies": {
+ "hoist-non-react-statics": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz",
+ "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==",
+ "requires": {
+ "react-is": "^16.7.0"
+ }
+ }
+ }
+ },
"react-native-gesture-handler": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.2.1.tgz",
@@ -6686,6 +7188,15 @@
"lodash.isequal": "^4.5.0"
}
},
+ "react-native-ratings": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/react-native-ratings/-/react-native-ratings-6.5.0.tgz",
+ "integrity": "sha512-YMcfQ7UQCmXGEc/WPlukHSHs5yvckTwjq5fTRk1FG8gaO7fZCNygEUGPuw4Dbvvp3IlsCUn0bOQd63RYsb7NDQ==",
+ "requires": {
+ "lodash": "^4.17.4",
+ "prop-types": "^15.5.10"
+ }
+ },
"react-native-reanimated": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-1.0.1.tgz",
@@ -6712,6 +7223,11 @@
"resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-1.0.0-alpha.22.tgz",
"integrity": "sha512-kSyAt0AeVU6N7ZonfV6dP6iZF8B7Bce+tk3eujXhzBGsLg0VSLnU7uE9VqJF0xdQrHR91ZjGgVMieo/8df9KTA=="
},
+ "react-native-status-bar-height": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-status-bar-height/-/react-native-status-bar-height-2.4.0.tgz",
+ "integrity": "sha512-pWvZFlyIHiuxLugLioq97vXiaGSovFXEyxt76wQtbq0gxv4dGXMPqYow46UmpwOgeJpBhqL1E0EKxnfJRrFz5w=="
+ },
"react-native-svg": {
"version": "9.4.0",
"resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-9.4.0.tgz",
@@ -6958,6 +7474,11 @@
"resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.10.tgz",
"integrity": "sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ=="
},
+ "regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw=="
+ },
"regexpu-core": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz",
@@ -7097,6 +7618,14 @@
"rx-lite": "*"
}
},
+ "rxjs": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
+ "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -7557,11 +8086,36 @@
"plist": "^3.0.1"
}
},
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ }
+ }
+ },
"slash": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
},
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
"slide": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
@@ -7852,6 +8406,11 @@
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
},
+ "strip-json-comments": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
+ "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw=="
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -7865,6 +8424,47 @@
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
"integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
},
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"temp": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
@@ -7881,6 +8481,11 @@
}
}
},
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ },
"throat": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz",
@@ -7986,6 +8591,19 @@
"resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz",
"integrity": "sha1-GuOlDnxguz3vd06scHrLynO7w/8="
},
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "type-fest": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz",
+ "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw=="
+ },
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
@@ -8153,6 +8771,14 @@
}
}
},
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
"urix": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
@@ -8192,6 +8818,11 @@
"resolved": "https://registry.npmjs.org/uuid-js/-/uuid-js-0.7.5.tgz",
"integrity": "sha1-bIhtAqU9LUDc8l2RoXC0p7JblNA="
},
+ "v8-compile-cache": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
+ "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g=="
+ },
"validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@@ -8308,6 +8939,14 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
"write-file-atomic": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz",
diff --git a/Application/package.json b/Application/package.json
index 4a1c5d5..4771b03 100644
--- a/Application/package.json
+++ b/Application/package.json
@@ -9,6 +9,7 @@
},
"dependencies": {
"braces": "^3.0.2",
+ "eslint": "^6.6.0",
"expo": "^33.0.0",
"expo-asset": "^6.0.0",
"firebase": "^6.5.0",
@@ -18,6 +19,7 @@
"react-native-dialog": "^5.6.0",
"react-native-dialog-input": "^1.0.7",
"react-native-double-tap": "^1.0.1",
+ "react-native-elements": "^1.2.7",
"react-native-picker-select": "^6.3.3",
"react-native-swipeout": "^2.3.6",
"react-native-web": "^0.11.4",
diff --git a/Application/pages/AddItemLocationPage.js b/Application/pages/AddItemLocationPage.js
index a128d98..ace3765 100644
--- a/Application/pages/AddItemLocationPage.js
+++ b/Application/pages/AddItemLocationPage.js
@@ -13,7 +13,9 @@ import { styles, pickerStyle } from "./pageStyles/AddItemLocationPageStyle";
import globalStyles from "./pageStyles/GlobalStyle";
import * as firebase from "firebase";
import RNPickerSelect from 'react-native-picker-select';
-import {departments} from "../DepartmentList";
+import { departments } from "../DepartmentList";
+import Menu from "./Menu"
+
const keyboardVerticalOffset = Platform.OS === 'ios' ? (Header.HEIGHT + 64) : (Header.HEIGHT + 0)
const keyboardAvoidingViewBehavior = Platform.OS === 'ios' ? "padding" : "padding"
@@ -51,9 +53,9 @@ class AddItemLocationPage extends Component {
*
* @returns None
*/
- handleChangeDepartment(val){
- if (val != DEFAULT_ITEM_DEPARTMENT){
- this.setState({itemDepartment: val});
+ handleChangeDepartment(val) {
+ if (val != DEFAULT_ITEM_DEPARTMENT) {
+ this.setState({ itemDepartment: val });
}
}
@@ -72,32 +74,32 @@ class AddItemLocationPage extends Component {
* @returns Boolean True if the user has inputted a value for all valid fields
* False otherwise
*/
- checkReqFields(){
+ checkReqFields() {
// Check the generic name field
if (this.state.genericName == DEFAULT_GENERIC_NAME) {
Alert.alert("Please enter a value for the generic name.");
- return(false);
+ return (false);
}
// Check the department field
if (this.state.itemDepartment == DEFAULT_ITEM_DEPARTMENT) {
Alert.alert("Please enter a value for the item department.");
- return(false);
+ return (false);
}
// Check the store name field
if (this.state.storeName == DEFAULT_STORE_NAME) {
Alert.alert("Please enter a value for the store name.");
- return(false);
+ return (false);
}
// Check the aisle number field
if (this.state.aisleNum == DEFAULT_AISLE_NUM) {
Alert.alert("Please enter a value for the aisle number.");
- return(false);
+ return (false);
}
- return(true);
+ return (true);
}
/**
@@ -113,7 +115,7 @@ class AddItemLocationPage extends Component {
handleAdd = () => {
var retVal = this.checkReqFields();
- if (retVal == true){
+ if (retVal == true) {
firebase.database().ref("/itemLocs").push({
genericName: this.state.genericName,
specificName: this.state.specificName,
@@ -139,7 +141,7 @@ class AddItemLocationPage extends Component {
* @returns None
*/
renderRequiredText(bodyText, reqText = "(*)") {
- return(
+ return (
{bodyText}
@@ -151,102 +153,105 @@ class AddItemLocationPage extends Component {
render() {
return (
-
-
- Add Item Location:
-
+
+
);
}
}
diff --git a/Application/pages/CrowdSourcePage.js b/Application/pages/CrowdSourcePage.js
index 1230b02..2f45ea8 100644
--- a/Application/pages/CrowdSourcePage.js
+++ b/Application/pages/CrowdSourcePage.js
@@ -1,6 +1,7 @@
import React, { Component } from "react";
import { Text, View, TouchableHighlight } from "react-native";
import globalStyles from "../pages/pageStyles/GlobalStyle";
+import Menu from "./Menu"
// Text to display on the buttons
const REGISTER_ITEM = "Go To Register Item Page"
@@ -40,6 +41,8 @@ class CrowdSourcePage extends Component {
render() {
return (
+
+
);
}
}
diff --git a/Application/pages/CurrentList.js b/Application/pages/CurrentList.js
index 8e23b32..826a103 100644
--- a/Application/pages/CurrentList.js
+++ b/Application/pages/CurrentList.js
@@ -6,6 +6,8 @@ import Swipeout from "react-native-swipeout";
import DoubleClick from "react-native-double-tap";
import lf from "./ListFunctions";
import Dialog from "react-native-dialog";
+import Menu from "./Menu"
+
class CurrentList extends Component {
constructor(props) {
@@ -56,7 +58,7 @@ class CurrentList extends Component {
style={{
height: 1,
width: "100%",
- backgroundColor: "#607D8B"
+ backgroundColor: "#00b5ec"
}}
/>
);
@@ -113,7 +115,7 @@ class CurrentList extends Component {
flexDirection: "column"
}}
>
-
+
),
backgroundColor: "red",
@@ -124,75 +126,70 @@ class CurrentList extends Component {
}
];
return (
-
-
+
+
+
);
}
}
diff --git a/Application/pages/HomePage.js b/Application/pages/HomePage.js
index bab114d..11f29f1 100644
--- a/Application/pages/HomePage.js
+++ b/Application/pages/HomePage.js
@@ -2,13 +2,14 @@ import React, { Component } from "react";
import { Text, View, TouchableHighlight } from "react-native";
import globalStyles from "../pages/pageStyles/GlobalStyle";
import firebase from 'firebase';
+import Menu from "./Menu"
const YOUR_LISTS = "Go To Your Lists Page"
const CROWD_SOURCE = "Go To Crowd Source Page"
const SIGN_OUT = "Sign Out"
const YOUR_LISTS_PAGE = "YourListsPage";
-const CROWD_SOURCE_PAGE = "CrowdSourceOptionPage";
+const CROWD_SOURCE_PAGE = "CrowdSourcePage";
@@ -30,31 +31,34 @@ class HomePage extends Component {
render() {
return (
-
- HomePage
-
- this.buttonListener(CROWD_SOURCE)}
- >
- {CROWD_SOURCE}
-
-
- this.buttonListener(YOUR_LISTS)}
- >
- {YOUR_LISTS}
-
-
- this.buttonListener(SIGN_OUT)}
- >
- {SIGN_OUT}
-
-
-
+
+
);
}
}
diff --git a/Application/pages/LoginPage.js b/Application/pages/LoginPage.js
index 6b75649..364456b 100644
--- a/Application/pages/LoginPage.js
+++ b/Application/pages/LoginPage.js
@@ -17,7 +17,8 @@ const LOGIN = "Login";
const REGISTER = "Register";
const FORGOT_PASSWORD = "Forgot your password?";
-const HOMEPAGE = "Home";
+const HOMEPAGE = "YourListsPage";
+// TODO const HOMEPAGE = "Home";
const REGISTERPAGE = "Registration";
const FORGOTPASSWORDPAGE = "ForgotPassword";
const VERIFICATIONPAGE = "Verification";
diff --git a/Application/pages/MapCreatorPage.js b/Application/pages/MapCreatorPage.js
index f6fe701..d4c6fbc 100644
--- a/Application/pages/MapCreatorPage.js
+++ b/Application/pages/MapCreatorPage.js
@@ -1,17 +1,19 @@
import React, { Component } from "react";
-import { Text,
- View,
- TouchableHighlight,
- TextInput,
- Picker,
- Alert,
- Image} from "react-native";
-import {styles, pickerStyle} from "../pages/pageStyles/MapCreatorPageStyle";
+import {
+ Text,
+ View,
+ TouchableHighlight,
+ TextInput,
+ Alert,
+ Image
+} from "react-native";
+import { styles, pickerStyle } from "../pages/pageStyles/MapCreatorPageStyle";
import globalStyles from "../pages/pageStyles/GlobalStyle";
-import {departments} from "../DepartmentList"
+import { departments } from "../DepartmentList"
import { FlatList } from "react-native-gesture-handler";
import * as firebase from "firebase";
import RNPickerSelect from 'react-native-picker-select';
+import Menu from "./Menu"
class MapCreatorPage extends Component {
constructor(props) {
@@ -36,7 +38,7 @@ class MapCreatorPage extends Component {
@input None
@return void
*/
- componentDidMount () {
+ componentDidMount() {
this._mounted = true
this.setState({ arrayHolder: [...this.currDepartments] })
@@ -49,7 +51,7 @@ class MapCreatorPage extends Component {
@input None
@return void
*/
- componentWillUnmount () {
+ componentWillUnmount() {
this._mounted = false
}
@@ -63,10 +65,10 @@ class MapCreatorPage extends Component {
*/
addDepartment = () => {
// Add a department to the list
- this.currDepartments.push({depName : departments[0].label});
+ this.currDepartments.push({ depName: departments[0].label });
// Rerender the screen
- this.setState({ arrayHolder: [...this.currDepartments]})
+ this.setState({ arrayHolder: [...this.currDepartments] })
}
/*
@@ -81,7 +83,7 @@ class MapCreatorPage extends Component {
var deps = []
// Copy the current list of departments
- for (var i = 0; i < this.currDepartments.length; i++){
+ for (var i = 0; i < this.currDepartments.length; i++) {
deps.push(this.currDepartments[i]["depName"])
}
@@ -105,7 +107,7 @@ class MapCreatorPage extends Component {
updateDepartment(ind, newVal) {
this.currDepartments[ind]["depName"] = newVal
- this.setState({ arrayHolder: [...this.currDepartments]})
+ this.setState({ arrayHolder: [...this.currDepartments] })
}
/*
@@ -126,7 +128,7 @@ class MapCreatorPage extends Component {
this.currDepartments[ind]["depName"] = aboveItem
// Update the state
- this.setState({ arrayHolder: [...this.currDepartments]})
+ this.setState({ arrayHolder: [...this.currDepartments] })
}
}
@@ -142,7 +144,7 @@ class MapCreatorPage extends Component {
this.currDepartments.splice(ind, 1)
// Update the state
- this.setState({ arrayHolder: [...this.currDepartments]})
+ this.setState({ arrayHolder: [...this.currDepartments] })
}
/*
@@ -163,7 +165,7 @@ class MapCreatorPage extends Component {
this.currDepartments[ind]["depName"] = belowItem
// Update the state
- this.setState({ arrayHolder: [...this.currDepartments]})
+ this.setState({ arrayHolder: [...this.currDepartments] })
}
}
@@ -183,8 +185,8 @@ class MapCreatorPage extends Component {
{/* Render the up button */}
this.upButtonPressed(index)}>
+ style={[styles.listButton, { backgroundColor: "black" }]}
+ onPress={() => this.upButtonPressed(index)}>
{/* Place buffers between elements to make it clearer */}
-
+
{/* Render the delete button */}
this.delButtonPressed(index)}>
+ style={[styles.listButton, { backgroundColor: "black" }]}
+ onPress={() => this.delButtonPressed(index)}>
-
+
{/* Render the down button */}
this.downButtonPressed(index)}>
+ style={[styles.listButton, { backgroundColor: "black" }]}
+ onPress={() => this.downButtonPressed(index)}>
-
+
{/* Render the department picker */}
-
+
this.updateDepartment(index, val)}/>
+ onValueChange={(val) => this.updateDepartment(index, val)} />
{/* Add a blank area at the end of the row to allow for scrolling */}
-
+ {/* */}
)
}
render() {
return (
-
-
-
- Map Creator:
-
-
-
- Store Name:
+
+
);
}
}
diff --git a/Application/pages/Menu.js b/Application/pages/Menu.js
new file mode 100644
index 0000000..838c452
--- /dev/null
+++ b/Application/pages/Menu.js
@@ -0,0 +1,31 @@
+import React, { Component } from "react";
+import {
+ TouchableOpacity,
+ View,
+ Image
+} from "react-native";
+
+class Menu extends Component {
+ constructor(props) {
+ super(props);
+ }
+
+ render() {
+ return (
+
+ { this.props.toggleAction() }}
+ >
+
+
+
+
+ );
+ }
+}
+export default Menu;
\ No newline at end of file
diff --git a/Application/pages/RegisterItemPage.js b/Application/pages/RegisterItemPage.js
index 79a92eb..7594d1f 100644
--- a/Application/pages/RegisterItemPage.js
+++ b/Application/pages/RegisterItemPage.js
@@ -9,11 +9,12 @@ import {
KeyboardAvoidingView,
} from "react-native";
import { Header } from "react-navigation"
-import {styles, pickerStyle} from "./pageStyles/RegisterItemPageStyle";
+import { styles, pickerStyle } from "./pageStyles/RegisterItemPageStyle";
import globalStyles from "../pages/pageStyles/GlobalStyle";
import * as firebase from "firebase";
import RNPickerSelect from 'react-native-picker-select';
-import {units} from "../UnitList";
+import { units } from "../UnitList";
+import Menu from "./Menu"
const keyboardVerticalOffset = Platform.OS === 'ios' ? (Header.HEIGHT + 64) : (Header.HEIGHT + 0)
const keyboardAvoidingViewBehavior = Platform.OS === 'ios' ? "padding" : "padding"
@@ -51,7 +52,7 @@ class RegisterItemPage extends Component {
var retVal = this.checkReqFields();
// Saves the data if all required fields have values
- if (retVal){
+ if (retVal) {
firebase.database().ref("/items").push({
genericName: this.state.genericName,
specificName: this.state.specificName,
@@ -78,20 +79,20 @@ class RegisterItemPage extends Component {
* @returns Boolean True if the user has inputted a value for all valid fields
* False otherwise
*/
- checkReqFields(){
+ checkReqFields() {
// Check the generic name field
if (this.state.genericName == DEFAULT_GENERIC_NAME) {
Alert.alert("Please enter a value for the generic name.");
- return(false);
+ return (false);
}
// Check the specific name field
if (this.state.specificName == DEFAULT_SPECIFIC_NAME) {
Alert.alert("Please enter a value for the specific name.");
- return(false);
+ return (false);
}
- return(true);
+ return (true);
}
/**
*
@@ -107,7 +108,7 @@ class RegisterItemPage extends Component {
* @returns None
*/
renderRequiredText(bodyText, reqText = "(*)") {
- return(
+ return (
{bodyText}
@@ -119,83 +120,86 @@ class RegisterItemPage extends Component {
render() {
return (
-
-
- Register Item:
-
-
-
-
-
- {this.renderRequiredText("Generic Name: ")}
-
-
-
- this.setState({ genericName })}
- value={this.state.genericName}
- />
-
+
+
-
-
-
- {"Register Item"}
-
-
+
);
}
}
diff --git a/Application/pages/RegisterPage.js b/Application/pages/RegisterPage.js
index 8fe1036..220acd5 100644
--- a/Application/pages/RegisterPage.js
+++ b/Application/pages/RegisterPage.js
@@ -8,7 +8,6 @@ import {
Alert,
ActivityIndicator
} from "react-native";
-import * as Firebase from "firebase";
import styles from "./pageStyles/RegisterPageStyle";
import FirebaseUser from "../components/FirebaseUser"
diff --git a/Application/pages/VerificationPage.js b/Application/pages/VerificationPage.js
index 2007490..3cac699 100644
--- a/Application/pages/VerificationPage.js
+++ b/Application/pages/VerificationPage.js
@@ -12,7 +12,8 @@ import FirebaseUser from "../components/FirebaseUser";
const VERIFY = "Verify";
const RESEND = "Resend confirmation link";
-const HOMEPAGE = "Home";
+const HOMEPAGE = "YourListsPage";
+// TODO const HOMEPAGE = "Home";
export default class VerificationPage extends Component {
constructor(props) {
diff --git a/Application/pages/YourLists.js b/Application/pages/YourLists.js
index 2a9ec53..c892d19 100644
--- a/Application/pages/YourLists.js
+++ b/Application/pages/YourLists.js
@@ -10,6 +10,7 @@ import styles from "./pageStyles/YourListsPageStyle";
import Swipeout from "react-native-swipeout";
import Dialog from "react-native-dialog";
import lf from "./ListFunctions";
+import Menu from "./Menu"
class YourLists extends Component {
@@ -53,7 +54,7 @@ class YourLists extends Component {
style={{
height: 1,
width: "100%",
- backgroundColor: "#607D8B"
+ backgroundColor: "#00b5ec"
}}
/>
);
@@ -93,7 +94,7 @@ class YourLists extends Component {
flexDirection: "column"
}}
>
-
+
),
backgroundColor: "red",
@@ -103,53 +104,56 @@ class YourLists extends Component {
}
];
return (
-
-
- New List
-
- Enter the name of the new list you would like to create:
+
+
+
+ All Lists: {this.state.listTitles.length}
+
+ this.setState({ isDialogVisible: true })}
+ >
+
+
+ index.toString()}
+ ItemSeparatorComponent={this.FlatListItemSeparator}
+ renderItem={({ item, index }) => (
+
+ this.handleSwipeOpen(rowId, direction)
+ }
+ close={this.state.activeRow !== index}
+ >
+
+ {item}
+
+
+ )}
+ />
+
+
);
}
}
diff --git a/Application/pages/pageStyles/AddItemLocationPageStyle.js b/Application/pages/pageStyles/AddItemLocationPageStyle.js
index 5c42bcc..8cec8a8 100644
--- a/Application/pages/pageStyles/AddItemLocationPageStyle.js
+++ b/Application/pages/pageStyles/AddItemLocationPageStyle.js
@@ -1,4 +1,6 @@
-import { StyleSheet } from 'react-native';
+import {
+ StyleSheet
+} from 'react-native';
export const styles = StyleSheet.create({
container: {
@@ -40,15 +42,15 @@ export const styles = StyleSheet.create({
color: 'black',
},
textInput: {
- height: 40,
- borderColor: "gray",
+ height: 40,
+ borderColor: "gray",
borderWidth: 1,
justifyContent: "flex-end",
color: "white",
},
picker: {
- height: 40,
- borderColor: "gray",
+ height: 40,
+ borderColor: "gray",
borderWidth: 1,
justifyContent: "flex-end",
color: "white",
@@ -57,22 +59,23 @@ export const styles = StyleSheet.create({
flexDirection: "row",
padding: 20,
},
-});
+});
export const pickerStyle = {
inputAndroid: {
height: 40,
- borderColor: "gray",
+ borderColor: "gray",
borderWidth: 1,
justifyContent: "flex-end",
color: "white",
paddingRight: 30,
- },
+ },
inputIOS: {
- borderColor: "gray",
+ borderColor: "gray",
borderWidth: 1,
justifyContent: "flex-end",
color: "white",
+ height: 40,
paddingRight: 30,
},
-};
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/Application/pages/pageStyles/MapCreatorPageStyle.js b/Application/pages/pageStyles/MapCreatorPageStyle.js
index ca602f9..a80d692 100644
--- a/Application/pages/pageStyles/MapCreatorPageStyle.js
+++ b/Application/pages/pageStyles/MapCreatorPageStyle.js
@@ -1,15 +1,17 @@
-import { StyleSheet,
- Dimensions } from 'react-native';
+import {
+ StyleSheet,
+ Dimensions
+} from 'react-native';
-export const styles = StyleSheet.create({
+export const styles = StyleSheet.create({
mainContainer: {
flex: 1,
- backgroundColor: "white",
+ backgroundColor: "black",
borderLeftWidth: Dimensions.get('window').width / 20,
borderRightWidth: Dimensions.get('window').width / 20,
- borderColor: "white",
+ borderColor: "black",
justifyContent: "space-between",
- },
+ },
topContainer: {
flex: 2,
},
@@ -24,47 +26,45 @@ export const styles = StyleSheet.create({
},
textContainer: {
flex: 1,
- backgroundColor: "white",
+ backgroundColor: "black",
justifyContent: "center",
alignItems: "center",
},
outerButtonContainer: {
flex: 1,
- backgroundColor: "white",
+ backgroundColor: "black",
justifyContent: "center",
alignItems: "center",
},
pickerContainer: {
flex: 1,
- backgroundColor: "white",
+ backgroundColor: "black",
justifyContent: "center",
alignItems: "stretch",
},
midContainer: {
- flex: 8,
- borderWidth: 5,
- borderColor: "black",
+ flex: 8
},
botContainer: {
flex: 2,
},
textInput: {
- height: 40,
- borderColor: "black",
+ height: 40,
+ borderColor: "white",
borderWidth: 1,
justifyContent: "flex-end",
- color: "black",
+ color: "white",
},
blackHeaderText: {
- color: 'black',
+ color: 'white',
fontSize: 20,
},
picker: {
- height: 40,
- borderColor: "black",
- borderWidth: 1,
- justifyContent: "flex-end",
- color: "black",
+ height: 40,
+ borderColor: "white",
+ borderWidth: 1,
+ justifyContent: "flex-end",
+ color: "white",
},
buttonContainer: {
height: 45,
@@ -88,21 +88,23 @@ export const styles = StyleSheet.create({
image: {
flex: 1,
}
-});
+});
export const pickerStyle = {
inputAndroid: {
- borderColor: "white",
+ borderColor: "black",
borderWidth: 1,
justifyContent: "flex-end",
color: "black",
paddingRight: 30,
+ height: 40
},
inputIOS: {
- borderColor: "gray",
+ borderColor: "gray",
borderWidth: 1,
justifyContent: "flex-end",
- color: "black",
+ color: "white",
paddingRight: 30,
+ height: 40
},
-};
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/Application/pages/pageStyles/RegisterItemPageStyle.js b/Application/pages/pageStyles/RegisterItemPageStyle.js
index 2ecc9ec..2aa4dba 100644
--- a/Application/pages/pageStyles/RegisterItemPageStyle.js
+++ b/Application/pages/pageStyles/RegisterItemPageStyle.js
@@ -2,7 +2,7 @@ import {
StyleSheet
} from 'react-native';
-export const styles = StyleSheet.create({
+export const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
@@ -53,18 +53,21 @@ export const styles = StyleSheet.create({
export const pickerStyle = {
inputAndroid: {
- height: 40,
- borderColor: "gray",
+ height: 30,
+ borderColor: "gray",
borderWidth: 1,
justifyContent: "flex-end",
color: "white",
paddingRight: 30,
- },
+ width: 80
+ },
inputIOS: {
- borderColor: "gray",
+ height: 30,
+ borderColor: "gray",
borderWidth: 1,
justifyContent: "flex-end",
color: "white",
paddingRight: 30,
+ width: 80
},
-};
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/Application/pages/pageStyles/YourListsPageStyle.js b/Application/pages/pageStyles/YourListsPageStyle.js
index 97540c0..b29609f 100644
--- a/Application/pages/pageStyles/YourListsPageStyle.js
+++ b/Application/pages/pageStyles/YourListsPageStyle.js
@@ -14,14 +14,10 @@ export default StyleSheet.create({
},
pageTitle: {
padding: 30,
- paddingTop: 50,
paddingBottom: 15,
color: "white",
fontSize: 30
},
- flatList: {
- paddingTop: 30
- },
item: {
padding: 10,
fontSize: 18,