From 7371c026f7a6019fd85d3a0cad2d78ec43c99bea Mon Sep 17 00:00:00 2001 From: kf <7kfpun@gmail.com> Date: Fri, 10 Jun 2016 01:18:27 +0800 Subject: [PATCH] Rewrite with react-native 0.26.3 --- .buckconfig | 6 + .eslintrc | 8 +- .flowconfig | 52 ++++- .gitignore | 9 +- App/Utils/Property/actions.js | 8 - App/Utils/Property/store.js | 14 -- App/Utils/Stock/actions.js | 12 -- App/Utils/Stock/store.js | 112 ---------- App/Views/AddNew/Elements/StockCell/index.js | 54 ----- App/Views/AddNew/Elements/StockCell/style.js | 83 ------- App/Views/AddNew/index.js | 93 -------- App/Views/AddNew/style.js | 55 ----- App/Views/Main/Elements/ChartsPage/index.js | 121 ----------- App/Views/Main/Elements/ChartsPage/style.js | 39 ---- App/Views/Main/Elements/DetailsPage/style.js | 64 ------ App/Views/Main/Elements/NewsPage/index.js | 21 -- App/Views/Main/Elements/StockCell/index.js | 135 ------------ App/Views/Main/Elements/StockCell/style.js | 69 ------ App/Views/Main/index.js | 194 ----------------- App/Views/Main/style.js | 65 ------ .../Settings/Elements/StockCell/index.js | 114 ---------- .../Settings/Elements/StockCell/style.js | 73 ------- App/Views/Settings/index.js | 161 -------------- App/Views/Settings/style.js | 83 ------- App/Views/web.js | 66 ------ Finance.js | 49 ++--- README.md | 45 ++-- android/app/BUCK | 66 ++++++ android/app/build.gradle | 65 +++++- android/app/proguard-rules.pro | 13 +- android/app/react.gradle | 87 -------- android/app/src/main/AndroidManifest.xml | 9 +- .../app/src/main/assets/fonts/EvilIcons.ttf | Bin 13028 -> 13128 bytes .../app/src/main/assets/fonts/FontAwesome.ttf | Bin 142072 -> 152796 bytes .../app/src/main/assets/fonts/Ionicons.ttf | Bin 188508 -> 143936 bytes .../src/main/assets/fonts/MaterialIcons.ttf | Bin 122640 -> 128180 bytes .../app/src/main/assets/fonts/Octicons.ttf | Bin 31740 -> 30680 bytes .../main/java/com/finance/MainActivity.java | 15 +- android/build.gradle | 4 + android/keystores/BUCK | 8 + android/keystores/debug.keystore.properties | 4 + app-store.png | Bin 0 -> 5596 bytes app/actions/stock-action.js | 25 +++ app/alt.js | 2 + app/stores/stock-store.js | 107 +++++++++ {App/Utils => app/utils}/data.js | 0 {App/Utils => app/utils}/finance.js | 0 {App/Utils => app/utils}/functions.js | 0 app/views/add/elements/stock-cell.js | 95 ++++++++ app/views/add/index.js | 159 ++++++++++++++ app/views/main/elements/chart-page.js | 106 +++++++++ .../views/main/elements/details-page.js | 80 +++++-- app/views/main/elements/stock-cell.js | 157 ++++++++++++++ app/views/main/index.js | 195 +++++++++++++++++ app/views/settings/elements/stock-cell.js | 124 +++++++++++ app/views/settings/index.js | 204 ++++++++++++++++++ google-play.png | Bin 10625 -> 6223 bytes index.android.js | 18 +- index.ios.js | 13 +- ios/Finance.xcodeproj/project.pbxproj | 126 ++++++----- ios/Finance/AppDelegate.m | 13 +- ios/FinanceTests/FinanceTests.m | 2 +- package.json | 29 +-- 63 files changed, 1608 insertions(+), 1923 deletions(-) create mode 100644 .buckconfig delete mode 100644 App/Utils/Property/actions.js delete mode 100644 App/Utils/Property/store.js delete mode 100644 App/Utils/Stock/actions.js delete mode 100644 App/Utils/Stock/store.js delete mode 100644 App/Views/AddNew/Elements/StockCell/index.js delete mode 100644 App/Views/AddNew/Elements/StockCell/style.js delete mode 100644 App/Views/AddNew/index.js delete mode 100644 App/Views/AddNew/style.js delete mode 100644 App/Views/Main/Elements/ChartsPage/index.js delete mode 100644 App/Views/Main/Elements/ChartsPage/style.js delete mode 100644 App/Views/Main/Elements/DetailsPage/style.js delete mode 100644 App/Views/Main/Elements/NewsPage/index.js delete mode 100644 App/Views/Main/Elements/StockCell/index.js delete mode 100644 App/Views/Main/Elements/StockCell/style.js delete mode 100644 App/Views/Main/index.js delete mode 100644 App/Views/Main/style.js delete mode 100644 App/Views/Settings/Elements/StockCell/index.js delete mode 100644 App/Views/Settings/Elements/StockCell/style.js delete mode 100644 App/Views/Settings/index.js delete mode 100644 App/Views/Settings/style.js delete mode 100644 App/Views/web.js create mode 100644 android/app/BUCK delete mode 100644 android/app/react.gradle create mode 100644 android/keystores/BUCK create mode 100644 android/keystores/debug.keystore.properties create mode 100644 app-store.png create mode 100644 app/actions/stock-action.js create mode 100644 app/alt.js create mode 100644 app/stores/stock-store.js rename {App/Utils => app/utils}/data.js (100%) rename {App/Utils => app/utils}/finance.js (100%) rename {App/Utils => app/utils}/functions.js (100%) create mode 100644 app/views/add/elements/stock-cell.js create mode 100644 app/views/add/index.js create mode 100644 app/views/main/elements/chart-page.js rename App/Views/Main/Elements/DetailsPage/index.js => app/views/main/elements/details-page.js (79%) create mode 100644 app/views/main/elements/stock-cell.js create mode 100644 app/views/main/index.js create mode 100644 app/views/settings/elements/stock-cell.js create mode 100644 app/views/settings/index.js diff --git a/.buckconfig b/.buckconfig new file mode 100644 index 0000000..934256c --- /dev/null +++ b/.buckconfig @@ -0,0 +1,6 @@ + +[android] + target = Google Inc.:Google APIs:23 + +[maven_repositories] + central = https://repo1.maven.org/maven2 diff --git a/.eslintrc b/.eslintrc index 32713e2..aa94a6b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -87,7 +87,6 @@ "no-caller": 1, // disallow use of arguments.caller or arguments.callee "no-div-regex": 1, // disallow division operators explicitly at beginning of regular expression (off by default) "no-else-return": 0, // disallow else after a return in an if (off by default) - "no-empty-label": 1, // disallow use of labels for anything other then loops and switches "no-eq-null": 0, // disallow comparisons to null without a type-checking operator (off by default) "no-eval": 1, // disallow use of eval() "no-extend-native": 1, // disallow adding to native types @@ -125,7 +124,7 @@ // Strict Mode // These rules relate to using strict mode. - "strict": [2, "global"], // require or disallow the "use strict" pragma in the global scope (off by default in the node environment) + "strict": [2, "never"], // require or disallow the "use strict" pragma in the global scope (off by default in the node environment) // Variables // These rules have to do with variable declarations. @@ -156,6 +155,7 @@ // These rules are purely matters of style and are quite subjective. "key-spacing": 0, + "keyword-spacing": 1, // require a space after certain keywords (off by default) "comma-spacing": 0, "no-multi-spaces": 0, "brace-style": 0, // enforce one true brace style (off by default) @@ -179,11 +179,9 @@ "quote-props": 0, // require quotes around object literal property names (off by default) "semi": 1, // require or disallow use of semicolons instead of ASI "sort-vars": 0, // sort variables within the same declaration block (off by default) - "space-after-keywords": 1, // require a space after certain keywords (off by default) "space-in-brackets": 0, // require or disallow spaces inside brackets (off by default) "space-in-parens": 0, // require or disallow spaces inside parentheses (off by default) "space-infix-ops": 1, // require spaces around operators - "space-return-throw-case": 1, // require a space after return, throw, and case "space-unary-ops": [1, { "words": true, "nonwords": false }], // require or disallow spaces before/after unary operators (words on by default, nonwords off by default) "max-nested-callbacks": 0, // specify the maximum depth callbacks can be nested (off by default) "one-var": 0, // allow just one var statement per function (off by default) @@ -201,7 +199,7 @@ "react/display-name": 0, "react/jsx-boolean-value": 0, - "react/jsx-quotes": [1, "double", "avoid-escape"], + "jsx-quotes": [2, "prefer-double"], "react/jsx-no-undef": 1, "react/jsx-sort-props": 0, "react/jsx-uses-react": 0, diff --git a/.flowconfig b/.flowconfig index 53bfd25..45fd3cc 100644 --- a/.flowconfig +++ b/.flowconfig @@ -15,11 +15,6 @@ # Ignore react and fbjs where there are overlaps, but don't ignore # anything that react-native relies on .*/node_modules/fbjs/lib/Map.js -.*/node_modules/fbjs/lib/Promise.js -.*/node_modules/fbjs/lib/fetch.js -.*/node_modules/fbjs/lib/ExecutionEnvironment.js -.*/node_modules/fbjs/lib/isEmpty.js -.*/node_modules/fbjs/lib/crc32.js .*/node_modules/fbjs/lib/ErrorUtils.js # Flow has a built-in definition for the 'react' module which we prefer to use @@ -28,6 +23,11 @@ .*/node_modules/react/lib/React.js .*/node_modules/react/lib/ReactDOM.js +.*/__mocks__/.* +.*/__tests__/.* + +.*/commoner/test/source/widget/share.js + # Ignore commoner tests .*/node_modules/commoner/test/.* @@ -40,26 +40,58 @@ # Ignore Website .*/website/.* +# Ignore generators +.*/local-cli/generator.* + +# Ignore BUCK generated folders +.*\.buckd/ + +# Ignore RNPM +.*/local-cli/rnpm/.* + +.*/node_modules/is-my-json-valid/test/.*\.json +.*/node_modules/iconv-lite/encodings/tables/.*\.json +.*/node_modules/y18n/test/.*\.json +.*/node_modules/spdx-license-ids/spdx-license-ids.json +.*/node_modules/spdx-exceptions/index.json +.*/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json +.*/node_modules/resolve/lib/core.json +.*/node_modules/jsonparse/samplejson/.*\.json +.*/node_modules/json5/test/.*\.json +.*/node_modules/ua-parser-js/test/.*\.json +.*/node_modules/builtin-modules/builtin-modules.json +.*/node_modules/binary-extensions/binary-extensions.json +.*/node_modules/url-regex/tlds.json +.*/node_modules/joi/.*\.json +.*/node_modules/isemail/.*\.json +.*/node_modules/tr46/.*\.json + + [include] [libs] -Libraries/react-native/react-native-interface.js +node_modules/react-native/Libraries/react-native/react-native-interface.js +node_modules/react-native/flow +flow/ [options] module.system=haste +esproposal.class_static_fields=enable +esproposal.class_instance_fields=enable + munge_underscores=true module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub' -module.name_mapper='^[./a-zA-Z0-9$_-]+\.png$' -> 'RelativeImageStub' +module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' suppress_type=$FlowIssue suppress_type=$FlowFixMe suppress_type=$FixMe -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-0]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-0]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-5]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-5]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy [version] -0.20.1 +^0.25.0 diff --git a/.gitignore b/.gitignore index 110f2c9..dc0fdd8 100644 --- a/.gitignore +++ b/.gitignore @@ -33,7 +33,10 @@ local.properties node_modules/ npm-debug.log -# App -index.android.bundle -main.jsbundle +# BUCK +buck-out/ +\.buckd/ +android/app/libs +android/keystores/debug.keystore +*.jsbundle *.keystore diff --git a/App/Utils/Property/actions.js b/App/Utils/Property/actions.js deleted file mode 100644 index 54483dc..0000000 --- a/App/Utils/Property/actions.js +++ /dev/null @@ -1,8 +0,0 @@ -/* @flow */ -var Reflux = require('reflux'); - -var Actions = Reflux.createActions([ - 'changeShowingProperty', -]); - -module.exports = Actions; diff --git a/App/Utils/Property/store.js b/App/Utils/Property/store.js deleted file mode 100644 index 1dab26c..0000000 --- a/App/Utils/Property/store.js +++ /dev/null @@ -1,14 +0,0 @@ -/* @flow */ -var Reflux = require('reflux'); -var Actions = require('./actions'); - -var Store = Reflux.createStore({ - listenables: Actions, - - onChangeShowingProperty: function(item) { - console.log('onChangeShowingProperty'); - this.trigger(item); - }, -}); - -module.exports = Store; diff --git a/App/Utils/Stock/actions.js b/App/Utils/Stock/actions.js deleted file mode 100644 index 6252f26..0000000 --- a/App/Utils/Stock/actions.js +++ /dev/null @@ -1,12 +0,0 @@ -/* @flow */ -var Reflux = require('reflux'); - -var Actions = Reflux.createActions([ - 'addStock', - 'deleteStock', - 'moveUpStock', - 'moveDownStock', - 'updateStocks', -]); - -module.exports = Actions; diff --git a/App/Utils/Stock/store.js b/App/Utils/Stock/store.js deleted file mode 100644 index 1bab6bf..0000000 --- a/App/Utils/Stock/store.js +++ /dev/null @@ -1,112 +0,0 @@ -/* @flow */ -var Reflux = require('reflux'); -var store = require('react-native-simple-store'); - -// Flux -var Actions = require('./actions'); - -// Utils -var UtilFuncs = require('../functions'); -var finance = require('../../Utils/finance'); - -var Store = Reflux.createStore({ - listenables: Actions, - - onAddStock: function(symbol) { - store.get('watchlist').then((result) => { - var symbols = result.map((item) => item.symbol.toUpperCase()); - - if (symbols.indexOf(symbol.toUpperCase()) === -1) { - result.push({symbol: symbol.toUpperCase(), share: 100}); - // result.sort(UtilFuncs.dynamicSort('symbol')); - console.log('onAddStock', result, symbol); - store.save('watchlist', result).then(() => { - this.onUpdateStocks(); - }); - } - }); - }, - - onMoveUpStock: function(symbol) { - store.get('watchlist').then((result) => { - var symbols = result.map((item) => item.symbol.toUpperCase()); - - if (symbols.indexOf(symbol.toUpperCase()) !== -1) { - UtilFuncs.moveObjectinArray(result, symbol, -1); - console.log('onMoveUpStock', result, symbol); - store.save('watchlist', result).then(() => { - this.onUpdateStocks(); - }); - } - }); - }, - - onMoveDownStock: function(symbol) { - store.get('watchlist').then((result) => { - var symbols = result.map((item) => item.symbol.toUpperCase()); - - if (symbols.indexOf(symbol.toUpperCase()) !== -1) { - UtilFuncs.moveObjectinArray(result, symbol, 1); - console.log('onMoveUpStock', result, symbol); - store.save('watchlist', result).then(() => { - this.onUpdateStocks(); - }); - } - }); - }, - - onDeleteStock: function(symbol) { - store.get('watchlist').then((result) => { - console.log('onDeleteStock', result, symbol); - return UtilFuncs.removeObjectfromArray(result, 'symbol', symbol); - }).then((result) => { - store.save('watchlist', result); - return result; - }).then((result) => { - console.log('onDeleteStock trigger'); - // this.trigger(result); - this.onUpdateStocks(); - }); - }, - - onUpdateStocks: function() { - console.log('onUpdateStocks'); - store.get('watchlist').then((watchlist) => { - if (!Array.isArray(watchlist) || watchlist.length === 0) { - watchlist = [ - {symbol: 'AAPL', share: 100}, - {symbol: 'GOOG', share: 100}, - ]; - store.save('watchlist', watchlist); - } - - var symbols = watchlist.map((item) => item.symbol.toUpperCase()); - - finance.getStock({stock: symbols}, 'quotes') - .then(function(response) { - return response.json(); - }).then(function(json) { - var quotes = json.query.results.quote; - quotes = Array.isArray(quotes) ? quotes : [quotes]; - - var watchlistResult = {}; - quotes.forEach((quote) => { - watchlistResult[quote.symbol] = quote; - }); - store.save('watchlistResult', watchlistResult); - return watchlistResult; - }).then((result) => { - console.log('onUpdateStocks trigger'); - this.trigger(watchlist, result); - }).catch((error) => { - console.log('Request failed', error); - store.get('watchlistResult').then((result) => { - this.trigger(watchlist, result); - }); - - }); - }); - }, -}); - -module.exports = Store; diff --git a/App/Views/AddNew/Elements/StockCell/index.js b/App/Views/AddNew/Elements/StockCell/index.js deleted file mode 100644 index 9a173d9..0000000 --- a/App/Views/AddNew/Elements/StockCell/index.js +++ /dev/null @@ -1,54 +0,0 @@ -/* @flow */ -'use strict'; - -import React, { - Text, - TouchableHighlight, - View, -} from 'react-native'; - -// 3rd party libraries -import { Actions } from 'react-native-router-flux'; - -// Flux -import StockActions from '../../../../Utils/Stock/actions'; - -// Styles -import styles from './style'; - -var StockCell = React.createClass({ - _onPressAdd: function(symbol: Object) { - console.log('_onPressAdd', symbol); - StockActions.addStock(symbol); - Actions.pop(); - }, - - render: function() { - return ( - this._onPressAdd(this.props.stock.symbol)} underlayColor="#202020"> - - - - - - {this.props.stock.symbol} - - - {this.props.stock.exchDisp} - - - - - {this.props.stock.name} - - - - - - - - ); - } -}); - -module.exports = StockCell; diff --git a/App/Views/AddNew/Elements/StockCell/style.js b/App/Views/AddNew/Elements/StockCell/style.js deleted file mode 100644 index 43a77cb..0000000 --- a/App/Views/AddNew/Elements/StockCell/style.js +++ /dev/null @@ -1,83 +0,0 @@ -'use strict'; - -var React = require('react-native'); - -var { - PixelRatio, - StyleSheet, -} = React; - -module.exports = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: 'black', - flexDirection: 'column', - }, - element: { - flex: 1, - flexDirection: 'row', - height: 65, - backgroundColor: 'black', - }, - delete: { - flex: 1, - }, - deleteText: { - fontSize: 15, - color: '#FC3D39', - textAlign: 'left', - marginTop: 20, - marginBottom: 10, - marginRight: 10, - }, - stock: { - flex: 8, - flexDirection: 'column', - }, - symbol: { - flex: 1, - flexDirection: 'row', - }, - symbolText: { - fontSize: 15, - color: 'white', - textAlign: 'left', - marginTop: 10, - marginBottom: 5, - marginRight: 10, - }, - marketText: { - fontSize: 15, - color: '#A6A6A6', - textAlign: 'left', - marginTop: 10, - marginBottom: 5, - marginRight: 10, - }, - name: { - flex: 1, - }, - nameText: { - fontSize: 10, - color: 'white', - textAlign: 'left', - marginTop: 5, - marginBottom: 5, - marginRight: 10, - }, - move: { - flex: 1, - }, - moveText: { - fontSize: 15, - color: 'white', - textAlign: 'left', - marginTop: 20, - marginBottom: 10, - marginRight: 10, - }, - separator: { - height: 1.5 / PixelRatio.get(), - backgroundColor: '#CCCCCC', - }, -}); diff --git a/App/Views/AddNew/index.js b/App/Views/AddNew/index.js deleted file mode 100644 index 90dfb3b..0000000 --- a/App/Views/AddNew/index.js +++ /dev/null @@ -1,93 +0,0 @@ -/* @flow */ -'use strict'; - -import React, { - ListView, - Text, - TouchableHighlight, - View, - TextInput, -} from 'react-native'; - -// 3rd party libraries -import { Actions } from 'react-native-router-flux'; - -// Elements -import StockCell from './Elements/StockCell'; - -// Utils -import finance from '../../Utils/finance'; - -// Styles -import styles from './style'; - -var AddNewView = React.createClass({ - getInitialState() { - return { - dataSource: new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2}), - loaded: false, - text: null, - helpText: 'Type a company name or stock symbol.', - }; - }, - - _onTyping: function(text: Object) { - this.setState({ - text: text.text, - helpText: 'Validating symbol...', - }); - - var that = this; - finance.symbolSuggest(text.text) - .then((response) => response.text()) - .then((result) => { - result = result.replace(/(YAHOO\.util\.ScriptNodeDataSource\.callbacks\()(.*)(\);)/g, '$2'); - console.log(result); - return JSON.parse(result); - }).then((json) => { - that.setState({ - dataSource: that.state.dataSource.cloneWithRows(json.ResultSet.Result), - loaded: true, - helpText: 'Type a company name or stock symbol.', - }); - }).catch((error) => { - console.log('Request failed', error); - }); - }, - - render: function() { - return ( - - - {this.state.helpText} - - - this._onTyping({text})} - value={this.state.text} - /> - Actions.pop()}> - - Cancel - - - - - } - /> - - - ); - } -}); - -module.exports = AddNewView; diff --git a/App/Views/AddNew/style.js b/App/Views/AddNew/style.js deleted file mode 100644 index 9e7890b..0000000 --- a/App/Views/AddNew/style.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -import { - PixelRatio, - Platform, - StyleSheet, -} from 'react-native'; - -module.exports = StyleSheet.create({ - container: { - flex: 1, - marginTop: Platform.OS === 'ios' ? 20 : 0, - flexDirection: 'column', - backgroundColor: 'black', - paddingLeft: 15, - paddingRight: 15, - }, - searchBar: { - flexDirection: 'row', - }, - searchBarInput: { - flex: 4, - flexDirection: 'column', - height: 40, - borderColor: 'gray', - borderWidth: 1 / PixelRatio.get(), - backgroundColor: '#202020', - borderRadius: 4, - color: 'white', - paddingLeft: 10, - }, - helpText: { - color: 'white', - fontSize: 12, - alignSelf: 'center', - marginTop: 5, - marginBottom: 5, - }, - cancelButtonText: { - fontSize: 16, - color: '#3CABDA', - alignSelf: 'center' - }, - cancelButton: { - flex: 1, - height: 40, - marginLeft: 4, - marginBottom: 10, - alignSelf: 'stretch', - justifyContent: 'center' - }, - suggestion: { - flex: 10, - }, -}); diff --git a/App/Views/Main/Elements/ChartsPage/index.js b/App/Views/Main/Elements/ChartsPage/index.js deleted file mode 100644 index 31c7837..0000000 --- a/App/Views/Main/Elements/ChartsPage/index.js +++ /dev/null @@ -1,121 +0,0 @@ -/* @flow */ -'use strict'; - -import React, { - Image, - Text, - TouchableHighlight, - View, -} from 'react-native'; - -// Styles -import styles from './style'; - -var ChartsPage = React.createClass({ - - getInitialState: function() { - return { - timeSpan: '1D', - }; - }, - - render: function() { - return ( - - - this.setState({timeSpan: '1D'})} - underlayColor="#202020"> - { - switch (this.state.timeSpan === '1D') { - case true: return styles.timeSpanSelectedText; - case false: return styles.timeSpanText; - default: return styles.timeSpanText; - } - })()}>1D - - this.setState({timeSpan: '5D'})} - underlayColor="#202020"> - { - switch (this.state.timeSpan === '5D') { - case true: return styles.timeSpanSelectedText; - case false: return styles.timeSpanText; - default: return styles.timeSpanText; - } - })()}>1W - - this.setState({timeSpan: '1M'})} - underlayColor="#202020"> - { - switch (this.state.timeSpan === '1M') { - case true: return styles.timeSpanSelectedText; - case false: return styles.timeSpanText; - default: return styles.timeSpanText; - } - })()}>1M - - this.setState({timeSpan: '3M'})} - underlayColor="#202020"> - { - switch (this.state.timeSpan === '3M') { - case true: return styles.timeSpanSelectedText; - case false: return styles.timeSpanText; - default: return styles.timeSpanText; - } - })()}>3M - - this.setState({timeSpan: '6M'})} - underlayColor="#202020"> - { - switch (this.state.timeSpan === '6M') { - case true: return styles.timeSpanSelectedText; - case false: return styles.timeSpanText; - default: return styles.timeSpanText; - } - })()}>6M - - this.setState({timeSpan: '1Y'})} - underlayColor="#202020"> - { - switch (this.state.timeSpan === '1Y') { - case true: return styles.timeSpanSelectedText; - case false: return styles.timeSpanText; - default: return styles.timeSpanText; - } - })()}>1Y - - this.setState({timeSpan: '2Y'})} - underlayColor="#202020"> - { - switch (this.state.timeSpan === '2Y') { - case true: return styles.timeSpanSelectedText; - case false: return styles.timeSpanText; - default: return styles.timeSpanText; - } - })()}>2Y - - - - - - Under construction (Stock: {this.props.stock.symbol}) - - - ); - }, -}); - -module.exports = NewsPage; diff --git a/App/Views/Main/Elements/StockCell/index.js b/App/Views/Main/Elements/StockCell/index.js deleted file mode 100644 index 948c682..0000000 --- a/App/Views/Main/Elements/StockCell/index.js +++ /dev/null @@ -1,135 +0,0 @@ -/* @flow */ -'use strict'; - -import React, { - Text, - TouchableHighlight, - View, -} from 'react-native'; - -// 3rd party libraries -import store from 'react-native-simple-store'; - -// Flux -import Reflux from 'reflux'; -import PropertyActions from '../../../../Utils/Property/actions'; -import PropertyStore from '../../../../Utils/Property/store'; -import StockStore from '../../../../Utils/Stock/store'; - -// Styles -import styles from './style'; - -var StockCell = React.createClass({ - mixins: [Reflux.ListenerMixin], - - onChangeShowingProperty: function(data: string) { - this.setState({ - showingProperty: data, - }); - }, - - onUpdateStocks: function(watchlist: Array, result: Array) { - this.setState({ - watchlistResult: result, - }); - }, - - getInitialState: function() { - return { - showingProperty: 'Change', - }; - }, - - componentDidMount: function() { - this.listenTo(PropertyStore, this.onChangeShowingProperty); - this.listenTo(StockStore, this.onUpdateStocks); - - store.get('showingProperty').then((result) => { - if (!result) { - result = 'Change'; - store.save('showingProperty', result); - } - this.setState({ - showingProperty: result, - }); - }); - - store.get('watchlistResult').then((result) => { - this.setState({ - watchlistResult: result, - }); - }); - }, - - getShowingProperty: function () { - store.get('showingProperty').then((result) => { - return result; - }); - }, - - changeShowingProperty: function(currentShowingProperty: string) { - var newShowingProperty; - if (currentShowingProperty === 'Change') { - newShowingProperty = 'ChangeinPercent'; - } else if (currentShowingProperty === 'ChangeinPercent') { - newShowingProperty = 'MarketCapitalization'; - } else if (currentShowingProperty === 'MarketCapitalization') { - newShowingProperty = 'Change'; - } - store.save('showingProperty', newShowingProperty); - PropertyActions.changeShowingProperty(newShowingProperty); - }, - - render: function() { - return ( - - - - - - {this.props.stock.symbol} - - - - - {this.state.watchlistResult && this.state.watchlistResult[this.props.stock.symbol] && this.state.watchlistResult[this.props.stock.symbol].LastTradePriceOnly} - - - { - switch (this.state.watchlistResult && this.state.watchlistResult[this.props.stock.symbol] && this.state.watchlistResult[this.props.stock.symbol].Change && this.state.watchlistResult[this.props.stock.symbol].Change.startsWith('+')) { - case true: return styles.changeGreen; - case false: return styles.changeRed; - default: return styles.changeGreen; - } - })()} - underlayColor={(() => { - switch (this.state.watchlistResult && this.state.watchlistResult[this.props.stock.symbol] && this.state.watchlistResult[this.props.stock.symbol].Change && this.state.watchlistResult[this.props.stock.symbol].Change.startsWith('+')) { - case true: return '#53D769'; - case false: return '#FC3D39'; - default: return '#53D769'; - } - })()} - onPress={() => this.changeShowingProperty(this.state.showingProperty)}> - - - {(() => { - switch (this.state.showingProperty) { - case 'Change': return this.state.watchlistResult && this.state.watchlistResult[this.props.stock.symbol] && this.state.watchlistResult[this.props.stock.symbol].Change || '--'; - case 'ChangeinPercent': return this.state.watchlistResult && this.state.watchlistResult[this.props.stock.symbol] && this.state.watchlistResult[this.props.stock.symbol].ChangeinPercent || '--'; - case 'MarketCapitalization': return this.state.watchlistResult && this.state.watchlistResult[this.props.stock.symbol] && this.state.watchlistResult[this.props.stock.symbol].MarketCapitalization || '--'; - default: return this.state.watchlistResult && this.state.watchlistResult[this.props.stock.symbol] && this.state.watchlistResult[this.props.stock.symbol].Change || '--'; - } - })()} - - - - - - - - ); - } -}); - -module.exports = StockCell; diff --git a/App/Views/Main/Elements/StockCell/style.js b/App/Views/Main/Elements/StockCell/style.js deleted file mode 100644 index adc5b6a..0000000 --- a/App/Views/Main/Elements/StockCell/style.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict'; - -import { - PixelRatio, - StyleSheet, -} from 'react-native'; - -module.exports = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: 'black', - marginLeft: 10, - marginRight: 10, - }, - base: { - borderColor: 'white', - borderWidth: 5, - }, - stockContainer: { - flex: 1, - flexDirection: 'row', - height: 50, - justifyContent: 'space-between', - alignItems: 'center', - }, - symbol: { - flex: 3, - }, - symbolText: { - fontSize: 16, - color: 'white', - textAlign: 'left', - marginTop: 10, - marginBottom: 10, - marginRight: 10, - }, - price: { - flex: 2, - }, - priceText: { - fontSize: 16, - color: 'white', - textAlign: 'right', - marginTop: 10, - marginBottom: 10, - marginRight: 10, - }, - changeRed: { - backgroundColor: '#FC3D39', - flex: 2, - padding: 5, - borderRadius: 3. - }, - changeGreen: { - backgroundColor: '#53D769', - flex: 2, - padding: 5, - borderRadius: 3, - }, - changeText: { - fontSize: 16, - color: 'white', - textAlign: 'center', - }, - separator: { - height: 1.5 / PixelRatio.get(), - backgroundColor: '#CCCCCC', - }, -}); diff --git a/App/Views/Main/index.js b/App/Views/Main/index.js deleted file mode 100644 index 4d983d2..0000000 --- a/App/Views/Main/index.js +++ /dev/null @@ -1,194 +0,0 @@ -/* @flow */ -'use strict'; - -import React, { - ListView, - Platform, - PullToRefreshViewAndroid, - Text, - TouchableHighlight, - View, - ViewPagerAndroid, -} from 'react-native'; - -// 3rd party libraries -import { Actions } from 'react-native-router-flux'; -import Icon from 'react-native-vector-icons/MaterialIcons'; -import RefreshableListView from 'react-native-refreshable-listview'; -import ViewPager from 'react-native-viewpager'; - -// Flux -import Reflux from 'reflux'; -import StockActions from '../../Utils/Stock/actions'; -import StockStore from '../../Utils/Stock/store'; - -// View Elements -import StockCell from './Elements/StockCell'; -import ChartsPage from './Elements/ChartsPage'; -import DetailsPage from './Elements/DetailsPage'; -import NewsPage from './Elements/NewsPage'; - -// Styles -import styles from './style'; - -var ViewReactClass = React.createClass({ - mixins: [Reflux.ListenerMixin], - - onUpdateStocks: function(watchlist: Array, result: Array) { - this.updateRows(watchlist, result); - }, - - onDeleteStock: function(watchlist: Array, result: Array) { - this.updateRows(watchlist, result); - }, - - getInitialState: function() { - var viewPagerDataSource = new ViewPager.DataSource({pageHasChanged: (p1, p2) => p1 !== p2}); - - return { - dataSource: new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2}), - loaded: false, - dataSourcePage: viewPagerDataSource.cloneWithPages(['DETAILS', 'CHARTS', 'NEWS']), - }; - }, - - componentDidMount: function() { - this.listenTo(StockStore, this.onUpdateStocks); - this.listenTo(StockStore, this.onDeleteStock); - - StockActions.updateStocks(); - }, - - updateRows: function(watchlist: Array, result: Array) { - this.setState({ - dataSource: this.state.dataSource.cloneWithRows(watchlist), - loaded: true, - selectedStock: this.state.selectedStock || watchlist[0], - watchlistResult: result, - }); - console.log('updateRows', this.state.loaded); - }, - - render: function() { - if (!this.state.loaded) { - return ( - - Loading... - - ); - } - - return ( - this.renderListView() - ); - }, - - renderListView: function() { - return ( - - - {(() => { - switch (Platform.OS) { - case 'ios': return StockActions.updateStocks()} - renderRow={(stock) => this.setState({selectedStock: stock})} stock={stock}/>} - />; - case 'android': return StockActions.updateStocks()}> - this.setState({selectedStock: stock})} stock={stock}/>} - /> - ; - default: return null; - } - })()} - - - {(() => { - switch (Platform.OS) { - case 'ios': return this.renderViewPagerIOS(); - case 'android': return this.renderViewPagerAndroid(); - default: return null; - } - })()} - - - this.openPage()} - underlayColor="#202020"> - - Yahoo! - - - - - Market closed - - - this.pushSettingsView()} - underlayColor="#202020"> - - - - - ); - }, - - renderViewPagerAndroid: function() { - return ( - - - - - - - - - - - - ); - }, - - renderViewPagerIOS: function() { - return ( - - ); - }, - - _renderPage: function(data: Object, pageID: number | string) { - return ( - - {(() => { - switch (data) { - case 'DETAILS': return ; - case 'CHARTS': return ; - case 'NEWS': return ; - default: return ; - } - })()} - - ); - }, - - pushSettingsView: function() { - Actions.settings(); - }, - - openPage: function() { - Actions.web({url: 'http://finance.yahoo.com/q?s=' + this.state.selectedStock.symbol}); - }, -}); - -module.exports = ViewReactClass; diff --git a/App/Views/Main/style.js b/App/Views/Main/style.js deleted file mode 100644 index 466032a..0000000 --- a/App/Views/Main/style.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict'; - -import { - Platform, - StyleSheet, -} from 'react-native'; - -module.exports = StyleSheet.create({ - container: { - flex: 1, - marginTop: Platform.OS === 'ios' ? 20 : 0, - justifyContent: 'space-between', - backgroundColor: 'black', - }, - stocksBlock: { - flexDirection: 'column', - flex: 9, - }, - detailedBlock: { - flex: 5, - backgroundColor: '#202020', - justifyContent: 'space-between', - }, - footerBlock: { - flex: 1, - flexDirection: 'row', - backgroundColor: '#202020', - alignItems: 'center', - paddingLeft: 10, - paddingRight: 10, - }, - loadingText: { - fontSize: 15, - textAlign: 'center', - marginTop: 40, - marginBottom: 10, - marginRight: 10, - color: 'white', - }, - yahoo: { - flex: 1, - }, - yahooText: { - fontSize: 15, - fontWeight: 'bold', - color: 'white', - textAlign: 'left', - }, - footerMiddle: { - flex: 1, - }, - marketTimeText: { - fontSize: 12, - color: '#A6A6A6', - textAlign: 'center', - }, - settings: { - flex: 1, - alignItems: 'flex-end', - }, - icon: { - width: 20, - height: 20, - }, -}); diff --git a/App/Views/Settings/Elements/StockCell/index.js b/App/Views/Settings/Elements/StockCell/index.js deleted file mode 100644 index a70afbe..0000000 --- a/App/Views/Settings/Elements/StockCell/index.js +++ /dev/null @@ -1,114 +0,0 @@ -/* @flow */ -'use strict'; - -import React, { - Text, - TouchableOpacity, - View, -} from 'react-native'; - -import Icon from 'react-native-vector-icons/MaterialIcons'; -import Swipeout from 'react-native-swipeout'; - -// Flux -import StockActions from '../../../../Utils/Stock/actions'; - -// Styles -import styles from './style'; - -var StockCell = React.createClass({ - _onPressDeleteButton: function(symbol: Object) { - console.log('_onPressDeleteButton', symbol); - StockActions.deleteStock(symbol); - }, - - render: function() { - let that = this; - var swipeoutBtns = [{ - text: 'Move up', - onPress: function() { - StockActions.moveUpStock(that.props.stock.symbol); - }, - type: 'secondary', - }, { - text: 'Move down', - onPress: function() { - StockActions.moveDownStock(that.props.stock.symbol); - }, - type: 'primary', - }, { - text: 'Delete', - onPress: function() { - StockActions.deleteStock(that.props.stock.symbol); - }, - type: 'delete', - }]; - - return ( - - - - this._onPressDeleteButton(this.props.stock.symbol)} /> - - - - {this.props.stock.symbol} - - - {this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].StockExchange} - - - - - {this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].Name} - - - - - - - - - ); - - return ( - - - this._onPressDeleteButton(this.props.stock.symbol)}> - - - - - - {this.props.stock.symbol} - - - {this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].StockExchange} - - - - - {this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].Name} - - - - - - - - - - ); - } -}); - -module.exports = StockCell; diff --git a/App/Views/Settings/Elements/StockCell/style.js b/App/Views/Settings/Elements/StockCell/style.js deleted file mode 100644 index 4c849b8..0000000 --- a/App/Views/Settings/Elements/StockCell/style.js +++ /dev/null @@ -1,73 +0,0 @@ -'use strict'; - -import { - PixelRatio, - StyleSheet, -} from 'react-native'; - -module.exports = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: 'black', - flexDirection: 'column', - marginLeft: 15, - marginRight: 15, - }, - element: { - flex: 1, - flexDirection: 'row', - height: 65, - backgroundColor: 'black', - alignItems: 'center', - }, - delete: { - flex: 1, - }, - stock: { - flex: 7, - flexDirection: 'column', - }, - symbol: { - flex: 1, - flexDirection: 'row', - }, - symbolText: { - fontSize: 15, - color: 'white', - textAlign: 'left', - marginTop: 10, - marginBottom: 5, - marginRight: 10, - }, - marketText: { - fontSize: 15, - color: '#A6A6A6', - textAlign: 'left', - marginTop: 10, - marginBottom: 5, - marginRight: 10, - }, - name: { - flex: 1, - }, - nameText: { - fontSize: 10, - color: 'white', - textAlign: 'left', - marginTop: 5, - marginBottom: 5, - marginRight: 10, - }, - move: { - flex: 1, - alignItems: 'flex-end', - }, - separator: { - height: 1.5 / PixelRatio.get(), - backgroundColor: '#CCCCCC', - }, - icon: { - width: 20, - height: 20, - }, -}); diff --git a/App/Views/Settings/index.js b/App/Views/Settings/index.js deleted file mode 100644 index 5c4385d..0000000 --- a/App/Views/Settings/index.js +++ /dev/null @@ -1,161 +0,0 @@ -/* @flow */ -'use strict'; - -import React, { - ListView, - Platform, - Text, - ToolbarAndroid, - TouchableHighlight, - View, -} from 'react-native'; - -// 3rd party libraries -import { Actions } from 'react-native-router-flux'; -import store from 'react-native-simple-store'; -import Icon from 'react-native-vector-icons/MaterialIcons'; -import NavigationBar from 'react-native-navbar'; - -// Flux -import Reflux from 'reflux'; -import PropertyActions from '../../Utils/Property/actions'; -import PropertyStore from '../../Utils/Property/store'; -import StockStore from '../../Utils/Stock/store'; - -// Elements -import StockCell from './Elements/StockCell'; - -// Styles -import styles from './style'; - -var SettingsView = React.createClass({ - mixins: [Reflux.ListenerMixin], - - onChangeShowingProperty: function(data: string) { - this.setState({ - showingProperty: data, - }); - }, - - onUpdateStocks: function(watchlist: Array, result: Array) { - this._genRows(watchlist, result); - }, - - onDeleteStock: function(watchlist: Array, result: Array) { - this._genRows(watchlist, result); - }, - - getInitialState() { - return { - dataSource: new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2}), - loaded: false, - }; - }, - - componentDidMount: function() { - this.listenTo(PropertyStore, this.onChangeShowingProperty); - this.listenTo(StockStore, this.onDeleteStock); - this.listenTo(StockStore, this.onUpdateStocks); - - store.get('showingProperty').then((result) => { - this.setState({ - showingProperty: result, - }); - }); - - store.get('watchlist').then((watchlist) => { - store.get('watchlistResult').then((result) => { - this._genRows(watchlist, result); - }); - }); - }, - - _genRows: function(watchlist: Array, result: Array) { - this.setState({ - dataSource: this.state.dataSource.cloneWithRows(watchlist), - loaded: true, - watchlistResult: result, - }); - }, - - _setShowingProperty: function(value: string) { - this.setState({ - showingProperty: value, - }); - store.save('showingProperty', value); - PropertyActions.changeShowingProperty(value); - }, - - onActionSelected: function(position) { - if (position === 0) { // index of 'Add' - Actions.add(); - } else if (position === 1) { // index of 'Done' - Actions.pop(); - } - }, - - renderToolbar: function() { - if (Platform.OS === 'ios') { - return ( - Actions.add()} />} - rightButton={{title: 'Done', handler: () => Actions.pop(), tintColor: '#3CABDA', style: styles.navigatorRightButton}} - /> - ); - } else if (Platform.OS === 'android') { - return ( - this.onActionSelected(position)} /> - ); - } - }, - - render: function() { - return ( - - {this.renderToolbar()} - - - } - /> - - - this._setShowingProperty('ChangeinPercent')}> - - percentage - - - this._setShowingProperty('Change')}> - - price - - - this._setShowingProperty('MarketCapitalization')}> - - market cap - - - - - ); - } -}); - -module.exports = SettingsView; diff --git a/App/Views/Settings/style.js b/App/Views/Settings/style.js deleted file mode 100644 index 9dd69d3..0000000 --- a/App/Views/Settings/style.js +++ /dev/null @@ -1,83 +0,0 @@ -'use strict'; - -import { - Platform, - PixelRatio, - StyleSheet, -} from 'react-native'; - -module.exports = StyleSheet.create({ - container: { - flex: 1, - marginTop: Platform.OS === 'ios' ? 20 : 0, - backgroundColor: 'black', - }, - navigatorTitle: { - backgroundColor: '#202020', - height: 39 - 12, - }, - navigatorLeftButton: { - marginTop: -12, - paddingLeft: 10, - paddingRight: 50, - }, - navigatorRightButton: { - marginTop: -12, - paddingLeft: 50, - paddingRight: 10, - }, - toolbar: { - height: 56, - backgroundColor: '#E9EAED' - }, - topBlock: { - flex: 1 - }, - bottomBlock: { - flexDirection: 'row', - paddingLeft: 15, - paddingRight: 15, - marginBottom: 10, - }, - title: { - fontSize: 30, - alignSelf: 'center', - marginBottom: 30 - }, - buttonLeft: { - height: 36, - borderColor: '#3CABDA', - borderWidth: 1 / PixelRatio.get(), - flex: 1, - borderTopLeftRadius: 4, - borderBottomLeftRadius: 4, - justifyContent: 'center' - }, - buttonMiddle: { - height: 36, - borderColor: '#3CABDA', - borderWidth: 1 / PixelRatio.get(), - flex: 1, - justifyContent: 'center' - }, - buttonRight: { - height: 36, - borderColor: '#3CABDA', - borderWidth: 1 / PixelRatio.get(), - flex: 1, - borderTopRightRadius: 4, - borderBottomRightRadius: 4, - justifyContent: 'center' - }, - buttonSelected: { - backgroundColor: '#3CABDA', - }, - buttonText: { - fontSize: 14, - color: '#3CABDA', - alignSelf: 'center' - }, - buttonTextSelected: { - color: 'black', - }, -}); diff --git a/App/Views/web.js b/App/Views/web.js deleted file mode 100644 index 4cd3f91..0000000 --- a/App/Views/web.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; - -import React, { - PixelRatio, - Platform, - StyleSheet, - ToolbarAndroid, - View, - WebView, -} from 'react-native'; - -// 3rd party libraries -import { Actions } from 'react-native-router-flux'; -import Icon from 'react-native-vector-icons/MaterialIcons'; -import NavigationBar from 'react-native-navbar'; - -class CustomWebView extends React.Component { - renderToolbar() { - if (Platform.OS === 'ios') { - return ( - Actions.pop()} />} - /> - ); - } else if (Platform.OS === 'android') { - return ( - - ); - } - } - - render() { - return ( - - {this.renderToolbar()} - - - - - ); - } -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - }, - navigatorLeftButton: { - paddingLeft: 10, - paddingRight: 50, - }, - toolbar: { - height: 56, - backgroundColor: '#E9EAED' - }, - separator: { - height: 1 / PixelRatio.get(), - backgroundColor: '#CCCCCC', - }, -}); - -module.exports = CustomWebView; diff --git a/Finance.js b/Finance.js index 0e5d1cd..58ee6e6 100644 --- a/Finance.js +++ b/Finance.js @@ -1,33 +1,34 @@ -'use strict'; - -import React, { - Navigator, -} from 'react-native'; +import React from 'react'; +// 3rd party libraries import { + Actions, Router, - Route, - Schema, + Scene, + // Reducer, } from 'react-native-router-flux'; -var Main = require('./App/Views/Main'); -var Web = require('./App/Views/web'); -var Settings = require('./App/Views/Settings'); -var AddNew = require('./App/Views/AddNew'); +// Views +import MainView from './app/views/main'; +import SettingsView from './app/views/settings'; +import AddView from './app/views/add'; -export default class Example extends React.Component { - render() { - return ( - - - - +// @todo remove when RN upstream is fixed +console.ignoredYellowBox = [ + 'Warning: In next release empty section headers will be rendered.', + 'Warning: setState(...): Can only update a mounted or mounting component.', +]; - - - - - - ); +const scenes = Actions.create( + + + + + +); + +export default class Periods extends React.Component { + render() { + return ; } } diff --git a/README.md b/README.md index c273f16..0aee833 100644 --- a/README.md +++ b/README.md @@ -7,48 +7,46 @@ iOS's Stocks App clone written in [React Native](https://github.com/facebook/rea ## Demo -[![Play Store Button](https://raw.github.com/7kfpun/FinanceReactNative/master/google-play.png "Google Play Button")](https://play.google.com/store/apps/details?id=com.kfpun.finance) +[![Play Store Button](google-play.png "Google Play Button")](https://play.google.com/store/apps/details?id=com.kfpun.finance) ## App preview -![Preview](https://raw.github.com/7kfpun/FinanceReactNative/master/previewIOS.gif "iOS app preview") -![Preview](https://raw.github.com/7kfpun/FinanceReactNative/master/previewAndroid.gif "Android app preview") +![Preview](previewIOS.gif "iOS app preview") +![Preview](previewAndroid.gif "Android app preview") + +## React and React Native version + +* react: 15.0.2 +* react-native: 0.26.3 ## Plugins used -* [react-native-navbar](https://github.com/Kureev/react-native-navbar): Simple customizable navbar component for react-native. -* [react-native-refreshable-listview](https://github.com/jsdf/react-native-refreshable-listview): A pull-to-refresh ListView which shows a loading spinner while your data reloads. -* [react-native-router-flux](https://github.com/aksonov/react-native-router-flux): iOS/Android React Native Router based on exNavigator. -* [react-native-simple-store](https://github.com/jasonmerino/react-native-simple-store): A minimalistic wrapper around React Native's AsyncStorage. -* [react-native-swipeout](https://github.com/dancormier/react-native-swipeout) - iOS-style swipeout buttons behind component. -* [react-native-vector-icons](https://github.com/oblador/react-native-vector-icons): 3000 Customizable Icons for React Native with support for NavBar/TabBar, image source and full stying. -* [react-native-viewpager](https://github.com/race604/react-native-viewpager) - ViewPager component for React Native. -* [reflux](https://github.com/reflux/refluxjs): A simple library for uni-directional dataflow application architecture with React extensions inspired by Flux. +* [alt](https://github.com/goatslacker/alt) - Isomorphic flux implementation. +* [react-native-navbar](https://github.com/Kureev/react-native-navbar) - Navbar component for React Native. +* [react-native-router-flux](https://github.com/aksonov/react-native-router-flux) - React Native Router based on new React Native Navigation API (0.26) +* [react-native-simple-store](https://github.com/jasonmerino/react-native-simple-store) - A minimalistic wrapper around React Native's AsyncStorage. +* [react-native-vector-icons](https://github.com/oblador/react-native-vector-icons) - 3000 Customizable Icons for React Native with support for NavBar/TabBar/ToolbarAndroid, image source and full stying. +* [rn-viewpager](https://github.com/zbtang/React-Native-ViewPager) - ViewPager and Indicator component for react-native on both android and ios. ## Components used +* **AppRegistry** - The JS entry point to running all React Native apps. * **Image** - A React component for displaying different types of images, including network images, static resources, temporary local images, and images from local disk, such as the camera roll. +* **Linking** - A general interface to interact with both incoming and outgoing app links. * **ListView** - A core component designed for efficient display of vertically scrolling lists of changing data. -* **Navigator** - Use Navigator to transition between different scenes in your app. -* **PixelRatio** - A class gives access to the device pixel density. -* **Platform** -* **PullToRefreshViewAndroid** -* **StatusBarIOS** +* **Platform** - A module is provided by React Native to detect what is the platform in which the app is running. +* **RefreshControl** - This component is used inside a ScrollView or ListView to add pull to refresh functionality. +* **StatusBar** - Component to control the app status bar. * **StyleSheet** - A StyleSheet is an abstraction similar to CSS StyleSheets. * **Text** - A React component for displaying text which supports nesting, styling, and touch handling. * **TextInput** - A foundational component for inputting text into the app via a keyboard. -* **ToastAndroid** * **ToolbarAndroid** - React component that wraps the Android-only Toolbar widget. * **TouchableHighlight** - A wrapper for making views respond properly to touches. -* **TouchableOpacity** - A wrapper for making views respond properly to touches. -* **View** - A container that supports layout with flexbox, style, some touch handling, and accessibility controls, and is designed to be nested inside other views and to have 0 to many children of any type. -* **ViewPagerAndroid** - Container that allows to flip left and right between child views. -* **WebView** - Renders a native WebView. +* **View** - The most fundamental component for building UI, View is a container that supports layout with flexbox, style, some touch handling, and accessibility controls, and is designed to be nested inside other views and to have 0 to many children of any type. ## Additional * [eslint](https://github.com/eslint/eslint): A fully pluggable tool for identifying and reporting on patterns in JavaScript. -* [flow](https://github.com/facebook/flow): Adds static typing to JavaScript to improve developer productivity and code quality. ## Running @@ -60,8 +58,7 @@ iOS's Stocks App clone written in [React Native](https://github.com/facebook/rea #### iOS -* Open `Finance.xcodeproj` in `XCode` -* Press `cmd+r` to build it +* Run `react-native run-ios` #### Android diff --git a/android/app/BUCK b/android/app/BUCK new file mode 100644 index 0000000..e74586c --- /dev/null +++ b/android/app/BUCK @@ -0,0 +1,66 @@ +import re + +# To learn about Buck see [Docs](https://buckbuild.com/). +# To run your application with Buck: +# - install Buck +# - `npm start` - to start the packager +# - `cd android` +# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US` +# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck +# - `buck install -r android/app` - compile, install and run application +# + +lib_deps = [] +for jarfile in glob(['libs/*.jar']): + name = 'jars__' + re.sub(r'^.*/([^/]+)\.jar$', r'\1', jarfile) + lib_deps.append(':' + name) + prebuilt_jar( + name = name, + binary_jar = jarfile, + ) + +for aarfile in glob(['libs/*.aar']): + name = 'aars__' + re.sub(r'^.*/([^/]+)\.aar$', r'\1', aarfile) + lib_deps.append(':' + name) + android_prebuilt_aar( + name = name, + aar = aarfile, + ) + +android_library( + name = 'all-libs', + exported_deps = lib_deps +) + +android_library( + name = 'app-code', + srcs = glob([ + 'src/main/java/**/*.java', + ]), + deps = [ + ':all-libs', + ':build_config', + ':res', + ], +) + +android_build_config( + name = 'build_config', + package = 'com.finance', +) + +android_resource( + name = 'res', + res = 'src/main/res', + package = 'com.finance', +) + +android_binary( + name = 'app', + package_type = 'debug', + manifest = 'src/main/AndroidManifest.xml', + keystore = '//android/keystores:debug', + deps = [ + ':app-code', + ], +) diff --git a/android/app/build.gradle b/android/app/build.gradle index 07ad9a1..2807749 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,12 +1,15 @@ apply plugin: "com.android.application" +import com.android.build.OutputFile + /** - * The react.gradle file registers two tasks: bundleDebugJsAndAssets and bundleReleaseJsAndAssets. + * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets + * and bundleReleaseJsAndAssets). * These basically call `react-native bundle` with the correct arguments during the Android build * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the * bundle directly from the development server. Below you can see all the possible configurations * and their defaults. If you decide to add a configuration block, make sure to add it before the - * `apply from: "react.gradle"` line. + * `apply from: "../../node_modules/react-native/react.gradle"` line. * * project.ext.react = [ * // the name of the generated asset file containing your JS bundle @@ -21,6 +24,15 @@ apply plugin: "com.android.application" * // whether to bundle JS and assets in release mode * bundleInRelease: true, * + * // whether to bundle JS and assets in another build variant (if configured). + * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants + * // The configuration property can be in the following formats + * // 'bundleIn${productFlavor}${buildType}' + * // 'bundleIn${buildType}' + * // bundleInFreeDebug: true, + * // bundleInPaidRelease: true, + * // bundleInBeta: true, + * * // the root of your project, i.e. where "package.json" lives * root: "../../", * @@ -47,7 +59,22 @@ apply plugin: "com.android.application" * ] */ -apply from: "react.gradle" +apply from: "../../node_modules/react-native/react.gradle" + +/** + * Set this to true to create two separate APKs instead of one: + * - An APK that only works on ARM devices + * - An APK that only works on x86 devices + * The advantage is the size of the APK is reduced by about 4MB. + * Upload all the APKs to the Play Store and people will download + * the correct one based on the CPU architecture of their device. + */ +def enableSeparateBuildPerCPUArchitecture = false + +/** + * Run Proguard to shrink the Java bytecode in release builds. + */ +def enableProguardInReleaseBuilds = false android { compileSdkVersion 23 @@ -63,17 +90,45 @@ android { abiFilters "armeabi-v7a", "x86" } } + splits { + abi { + reset() + enable enableSeparateBuildPerCPUArchitecture + universalApk false // If true, also generate a universal APK + include "armeabi-v7a", "x86" + } + } buildTypes { release { - minifyEnabled false // Set this to true to enable Proguard + minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } + // applicationVariants are e.g. debug, release + applicationVariants.all { variant -> + variant.outputs.each { output -> + // For each separate APK per architecture, set a unique version code as described here: + // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits + def versionCodes = ["armeabi-v7a":1, "x86":2] + def abi = output.getFilter(OutputFile.ABI) + if (abi != null) { // null for the universal-debug, universal-release variants + output.versionCodeOverride = + versionCodes.get(abi) * 1048576 + defaultConfig.versionCode + } + } + } } dependencies { compile project(':react-native-vector-icons') compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.android.support:appcompat-v7:23.0.1" - compile "com.facebook.react:react-native:0.18.+" + compile "com.facebook.react:react-native:+" // From node_modules +} + +// Run this once to be able to run the application with BUCK +// puts all compile dependencies into folder libs for BUCK to use +task copyDownloadableDepsToLibs(type: Copy) { + from configurations.compile + into 'libs' } diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index ffa8c9f..9852871 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -40,17 +40,20 @@ -keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } -keep class * extends com.facebook.react.bridge.NativeModule { *; } +-keepclassmembers,includedescriptorclasses class * { native ; } -keepclassmembers class * { @com.facebook.react.uimanager.UIProp ; } --keepclassmembers class * { @com.facebook.react.uimanager.ReactProp ; } --keepclassmembers class * { @com.facebook.react.uimanager.ReactPropGroup ; } +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp ; } +-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup ; } + +-dontwarn com.facebook.react.** # okhttp -keepattributes Signature -keepattributes *Annotation* --keep class com.squareup.okhttp.** { *; } --keep interface com.squareup.okhttp.** { *; } --dontwarn com.squareup.okhttp.** +-keep class okhttp3.** { *; } +-keep interface okhttp3.** { *; } +-dontwarn okhttp3.** # okio diff --git a/android/app/react.gradle b/android/app/react.gradle deleted file mode 100644 index 1e08b00..0000000 --- a/android/app/react.gradle +++ /dev/null @@ -1,87 +0,0 @@ -import org.apache.tools.ant.taskdefs.condition.Os - -def config = project.hasProperty("react") ? project.react : []; - -def bundleAssetName = config.bundleAssetName ?: "index.android.bundle" -def entryFile = config.entryFile ?: "index.android.js" - -// because elvis operator -def elvisFile(thing) { - return thing ? file(thing) : null; -} - -def reactRoot = elvisFile(config.root) ?: file("../../") -def jsBundleDirDebug = elvisFile(config.jsBundleDirDebug) ?: - file("$buildDir/intermediates/assets/debug") -def jsBundleDirRelease = elvisFile(config.jsBundleDirRelease) ?: - file("$buildDir/intermediates/assets/release") -def resourcesDirDebug = elvisFile(config.resourcesDirDebug) ?: - file("$buildDir/intermediates/res/merged/debug") -def resourcesDirRelease = elvisFile(config.resourcesDirRelease) ?: - file("$buildDir/intermediates/res/merged/release") -def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"] - -def jsBundleFileDebug = file("$jsBundleDirDebug/$bundleAssetName") -def jsBundleFileRelease = file("$jsBundleDirRelease/$bundleAssetName") - -task bundleDebugJsAndAssets(type: Exec) { - // create dirs if they are not there (e.g. the "clean" task just ran) - doFirst { - jsBundleDirDebug.mkdirs() - resourcesDirDebug.mkdirs() - } - - // set up inputs and outputs so gradle can cache the result - inputs.files fileTree(dir: reactRoot, excludes: inputExcludes) - outputs.dir jsBundleDirDebug - outputs.dir resourcesDirDebug - - // set up the call to the react-native cli - workingDir reactRoot - if (Os.isFamily(Os.FAMILY_WINDOWS)) { - commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "true", "--entry-file", - entryFile, "--bundle-output", jsBundleFileDebug, "--assets-dest", resourcesDirDebug - } else { - commandLine "react-native", "bundle", "--platform", "android", "--dev", "true", "--entry-file", - entryFile, "--bundle-output", jsBundleFileDebug, "--assets-dest", resourcesDirDebug - } - - enabled config.bundleInDebug ?: false -} - -task bundleReleaseJsAndAssets(type: Exec) { - // create dirs if they are not there (e.g. the "clean" task just ran) - doFirst { - jsBundleDirRelease.mkdirs() - resourcesDirRelease.mkdirs() - } - - // set up inputs and outputs so gradle can cache the result - inputs.files fileTree(dir: reactRoot, excludes: inputExcludes) - outputs.dir jsBundleDirRelease - outputs.dir resourcesDirRelease - - // set up the call to the react-native cli - workingDir reactRoot - if (Os.isFamily(Os.FAMILY_WINDOWS)) { - commandLine "cmd","/c", "react-native", "bundle", "--platform", "android", "--dev", "false", "--entry-file", - entryFile, "--bundle-output", jsBundleFileRelease, "--assets-dest", resourcesDirRelease - } else { - commandLine "react-native", "bundle", "--platform", "android", "--dev", "false", "--entry-file", - entryFile, "--bundle-output", jsBundleFileRelease, "--assets-dest", resourcesDirRelease - } - - enabled config.bundleInRelease ?: true -} - -gradle.projectsEvaluated { - // hook bundleDebugJsAndAssets into the android build process - bundleDebugJsAndAssets.dependsOn mergeDebugResources - bundleDebugJsAndAssets.dependsOn mergeDebugAssets - processDebugResources.dependsOn bundleDebugJsAndAssets - - // hook bundleReleaseJsAndAssets into the android build process - bundleReleaseJsAndAssets.dependsOn mergeReleaseResources - bundleReleaseJsAndAssets.dependsOn mergeReleaseAssets - processReleaseResources.dependsOn bundleReleaseJsAndAssets -} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 342f510..1de95fa 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,7 +1,14 @@ + package="com.finance" + android:versionCode="1" + android:versionName="1.0"> + + + viUR!6{EIBZL^zfVj69g9&EJ%o2o6?g<7}irV*Pqk{Bxp zl?a}t54DIWf>7~jpjZ@9P>7%hJ$n$*Ac)7J&|(~7Jj{Fl-^`o$X6Ai0s+mPV0IXo=<$$jaz=$!KE)@gd!Xp5}LyC(t zdLdu0(@hZVAa0qNy`0(LR+U2i0DIqM4Sm}DeLY37Ph|0I)>zbq6-Ei@B}Yd#S6pzt zv9A$7CB8R1pVlWojAiJ7N5r>s`a&L7;1$Ia#DO_IXT1G2dLBS-qoU;ee4z*r(!}9D z;##9QYVg^x_F_`%TL&AXG=Psa&G@%7%~--inB<3X0tfhAyouvH%z}K3b>l##%s2*b zI945-QbKwzZ8`%^&H37O-M!O2<$mJ+;~Dl;J-@w4Zw;W55Z||-WH1h0cnABz1wN`X zzC}U@Drhn9R+x-E{vL}Tuh={+fi`hupJ>Bv$1G?mJ+At&*W|MQGz-GPpeUF$Ka*JR z?Q267VaMmTU?==&bVIX*R_ttQ6FBiiQ=7?O;#N5nOu~Ko1Qc88tQ%cTZGr$QO>HLs z6h9;H!ZQCe5!vJ`_5s0|B41mb*1+1?ThsUbBSiSr9efqzp1G%9m=iQ&=8a(EB3 XS}x9=8;r#E1MrvXR$EP*{y*QpUT=gO delta 557 zcmYLHO=uHA7=5!zibdN^Ht}Q+TN>J0*kpD?BuXnqVxSVK(m)F~)g|2|LXr(8g!I%> zsCeipqnA?r0nw`v5Ea3CD~JUX@l-05B1FhVQM|=3HQ-^sdGCGm&CK^^cGE}JDj0wP ztige6u~_12<+^16#xAKtvvWaX_H}XsU<<@=rSfL+Fmk#BND0!eq$*_<9u@^0k16lW zn5AN;Lp#CPA$}s0TS>RtUt5%l0B5UN%UpIn`L;p1eH!PoS!>mFJeR0|`AG0*^W~~% zZ(yGIE8^QZJ7vZ*^Km-hDe?Pxvs%P6yr(>E2(@75t#)hqC7`{aOX)?sRQBy8zW~7_ z;`_(VQG;6x&7U{r$zM1rQ5n#<)a=bt6E!x)X2eC7WKprr9*B@MDsD&SvXX8EW zf}16JxR3M|kq&5MaXccgn6sbODrCSv?1IXS9_}OE5^n+{EG!NJA&N?H{d@=-ba09W zMIB)vW*5pa`%cDEjR03KsFy3Zb2BNsP$H~{G@WY(*TdorSH<_>oS5Xp)bbLq)qn7D Z$xmJ|dbh4O-QR#uAKvNR`M*s~`~|=LgQ@@k diff --git a/android/app/src/main/assets/fonts/FontAwesome.ttf b/android/app/src/main/assets/fonts/FontAwesome.ttf index 26dea7951a73079223b50653c455c5adf46a4648..f221e50a2ef60738ba30932d834530cdfe55cb3e 100644 GIT binary patch delta 13912 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 diff --git a/android/app/src/main/assets/fonts/Ionicons.ttf b/android/app/src/main/assets/fonts/Ionicons.ttf index c4e4632486d863337c1c73478ddb3c20726c55a0..307ad889aa8ed924001abc023b3b172804b5e657 100644 GIT binary patch literal 143936 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

r9(T^(I1*f{28#Bt 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

8E#xmG!w{$tO5=<$!EHPzZXo}IBc1_sqA&q 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 diff --git a/android/app/src/main/assets/fonts/MaterialIcons.ttf b/android/app/src/main/assets/fonts/MaterialIcons.ttf index 683dcd05ac96df15b00df6db60e17d4943072656..7015564ad166a3e9d88c82f17829f0cc01ebe29a 100644 GIT binary patch delta 23043 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 RwPhI0VMn5~O^GYi5yV+lva0Sg1mg%&S4lO} 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 getPackages() { - return Arrays.asList( - new MainReactPackage()); + return Arrays.asList( + new MainReactPackage(), + new VectorIconsPackage() + ); } } diff --git a/android/build.gradle b/android/build.gradle index ccdfc4e..403a007 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -16,5 +16,9 @@ allprojects { repositories { mavenLocal() jcenter() + maven { + // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm + url "$projectDir/../../node_modules/react-native/android" + } } } diff --git a/android/keystores/BUCK b/android/keystores/BUCK new file mode 100644 index 0000000..15da20e --- /dev/null +++ b/android/keystores/BUCK @@ -0,0 +1,8 @@ +keystore( + name = 'debug', + store = 'debug.keystore', + properties = 'debug.keystore.properties', + visibility = [ + 'PUBLIC', + ], +) diff --git a/android/keystores/debug.keystore.properties b/android/keystores/debug.keystore.properties new file mode 100644 index 0000000..121bfb4 --- /dev/null +++ b/android/keystores/debug.keystore.properties @@ -0,0 +1,4 @@ +key.store=debug.keystore +key.alias=androiddebugkey +key.store.password=android +key.alias.password=android diff --git a/app-store.png b/app-store.png new file mode 100644 index 0000000000000000000000000000000000000000..d9e236353970c6f046343bede9fbd3b8258238a2 GIT binary patch literal 5596 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 { + store.get('watchlistResult').then((watchlistResult) => { + console.log('From store watchlist:', watchlist); + if (!watchlist || !Array.isArray(watchlist)) { + watchlist = [ + {symbol: 'AAPL', share: 100}, + {symbol: 'GOOG', share: 100}, + ]; + store.save('watchlist', watchlist); + } + that.setState({ + watchlist: watchlist, + watchlistResult: watchlistResult, + selectedStock: watchlist.length > 0 ? watchlist[0] : {}, + }); + that.handleUpdateStocks(); + }); + }); + + this.bindListeners({ + handleUpdateStocks: StockActions.UPDATE_STOCKS, + handleAddStock: StockActions.ADD_STOCK, + handleDeleteStock: StockActions.DELETE_STOCK, + handleSelectStock: StockActions.SELECT_STOCK, + handleSelectProperty: StockActions.SELECT_PROPERTY, + }); + + this.state = { + watchlist: [], + watchlistResult: {}, + selectedStock: {}, + selectedProperty: 'ChangeinPercent', + }; + } + + handleUpdateStocks() { + let symbols = this.state.watchlist.map((item) => item.symbol.toUpperCase()); + + let that = this; + finance.getStock({stock: symbols}, 'quotes') + .then(function(response) { + return response.json(); + }).then(function(json) { + var quotes = json.query.results.quote; + quotes = Array.isArray(quotes) ? quotes : [quotes]; + + var watchlistResult = {}; + quotes.forEach((quote) => { + watchlistResult[quote.symbol] = quote; + }); + store.save('watchlistResult', watchlistResult); + that.setState({watchlistResult: watchlistResult}); + }).catch((error) => { + console.log('Request failed', error); + store.get('watchlistResult').then((watchlistResult) => { + that.setState({watchlistResult: watchlistResult}); + }); + }); + } + + handleAddStock(symbol) { + console.log('handleAddStock', symbol); + let watchlist = this.state.watchlist; + watchlist.push({symbol: symbol.toUpperCase(), share: 100}); + this.setState({watchlist: watchlist}); + store.save('watchlist', watchlist); + this.handleUpdateStocks(); + } + + handleDeleteStock(symbol) { + console.log('handleDeleteStock', symbol); + let watchlist = UtilFuncs.removeObjectfromArray(this.state.watchlist, 'symbol', symbol); + this.setState({watchlist: watchlist}); + store.save('watchlist', watchlist); + + if (watchlist.length === 0) { + this.setState({selectedStock: {}}); + } + } + + handleSelectStock(stock) { + console.log('handleSelectStock', stock); + this.setState({selectedStock: stock}); + } + + handleSelectProperty(property) { + console.log('handleSelectProperty', property); + this.setState({selectedProperty: property}); + } +} + +module.exports = alt.createStore(StockStore, 'StockStore'); diff --git a/App/Utils/data.js b/app/utils/data.js similarity index 100% rename from App/Utils/data.js rename to app/utils/data.js diff --git a/App/Utils/finance.js b/app/utils/finance.js similarity index 100% rename from App/Utils/finance.js rename to app/utils/finance.js diff --git a/App/Utils/functions.js b/app/utils/functions.js similarity index 100% rename from App/Utils/functions.js rename to app/utils/functions.js diff --git a/app/views/add/elements/stock-cell.js b/app/views/add/elements/stock-cell.js new file mode 100644 index 0000000..2f27255 --- /dev/null +++ b/app/views/add/elements/stock-cell.js @@ -0,0 +1,95 @@ +import React from 'react'; +import { + StyleSheet, + Text, + TouchableHighlight, + View, +} from 'react-native'; + +// Flux +import StockActions from '../../../actions/stock-action'; + +// 3rd party libraries +import { Actions } from 'react-native-router-flux'; + +export default class StockCell extends React.Component { + _onPressAdd(symbol) { + console.log('_onPressAdd', symbol); + StockActions.addStock(symbol); + Actions.pop(); + } + + render() { + return ( + this._onPressAdd(this.props.stock.symbol)} underlayColor="#202020"> + + + + + {this.props.stock.symbol} + + + {this.props.stock.exchDisp} + + + + + {this.props.stock.name} + + + + + + ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + flexDirection: 'row', + height: 65, + backgroundColor: 'black', + borderBottomColor: '#CCCCCC', + borderBottomWidth: StyleSheet.hairlineWidth, + }, + stock: { + flex: 8, + flexDirection: 'column', + }, + symbol: { + flex: 1, + flexDirection: 'row', + }, + symbolText: { + fontSize: 15, + color: 'white', + textAlign: 'left', + marginTop: 10, + marginBottom: 5, + marginRight: 10, + }, + marketText: { + fontSize: 15, + color: '#A6A6A6', + textAlign: 'left', + marginTop: 10, + marginBottom: 5, + marginRight: 10, + }, + name: { + flex: 1, + }, + nameText: { + fontSize: 10, + color: 'white', + textAlign: 'left', + marginTop: 5, + marginBottom: 5, + marginRight: 10, + }, + separator: { + height: StyleSheet.hairlineWidth, + backgroundColor: '#CCCCCC', + }, +}); diff --git a/app/views/add/index.js b/app/views/add/index.js new file mode 100644 index 0000000..d8f0c66 --- /dev/null +++ b/app/views/add/index.js @@ -0,0 +1,159 @@ +import React from 'react'; +import { + ListView, + Platform, + StyleSheet, + Text, + TextInput, + TouchableHighlight, + View, +} from 'react-native'; + +// Elements +import StockCell from './elements/stock-cell'; + +// 3rd party libraries +import { Actions } from 'react-native-router-flux'; +import Icon from 'react-native-vector-icons/MaterialIcons'; + +// Utils +import finance from '../../utils/finance'; + +export default class Settings extends React.Component { + constructor(props) { + super(props); + + this.state = { + dataSource: new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2}), + loaded: false, + text: null, + helpText: 'Type a company name or stock symbol.', + }; + } + + _onTyping(text) { + this.setState({ + text: text.text || '', + helpText: 'Validating symbol...', + }); + + var that = this; + finance.symbolSuggest(text.text) + .then((response) => response.text()) + .then((result) => { + result = result.replace(/(YAHOO\.util\.ScriptNodeDataSource\.callbacks\()(.*)(\);)/g, '$2'); + console.log(result); + return JSON.parse(result); + }).then((json) => { + that.setState({ + dataSource: that.state.dataSource.cloneWithRows(json.ResultSet.Result), + loaded: true, + helpText: 'Type a company name or stock symbol.', + }); + }).catch((error) => { + console.log('Request failed', error); + }); + } + + render() { + return ( + + {Platform.OS === 'ios' && } + + + {this.state.helpText} + + + + this._onTyping({text})} + value={this.state.text} + /> + {(this.state.text && this.state.text.length > 0) ? + this.setState({ + text: '', + dataSource: this.state.dataSource.cloneWithRows([]), + })} + /> : null} + + + Cancel + + + + + + + } + /> + + + ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + flexDirection: 'column', + backgroundColor: 'black', + }, + topBlock: { + backgroundColor: '#202020', + paddingTop: 15, + paddingBottom: 10, + paddingLeft: 15, + paddingRight: 15, + }, + helpText: { + color: 'white', + fontSize: 12, + alignSelf: 'center', + }, + searchBar: { + marginTop: 10, + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + }, + searchIcon: { + paddingRight: 5, + }, + searchBarInput: { + flex: 4, + flexDirection: 'column', + height: 30, + backgroundColor: '#424242', + borderRadius: 4, + color: 'white', + paddingLeft: 10, + }, + clearIcon: { + paddingLeft: 2, + }, + cancelButtonText: { + fontSize: 16, + color: '#3CABDA', + }, + cancelButton: { + flex: 1, + marginLeft: 4, + }, + suggestion: { + flex: 10, + paddingHorizontal: 15, + }, +}); diff --git a/app/views/main/elements/chart-page.js b/app/views/main/elements/chart-page.js new file mode 100644 index 0000000..812c39d --- /dev/null +++ b/app/views/main/elements/chart-page.js @@ -0,0 +1,106 @@ +import React from 'react'; +import { + Image, + StyleSheet, + Text, + TouchableHighlight, + View, +} from 'react-native'; + +export default class ChartPage extends React.Component { + constructor(props) { + super(props); + + this.state = { + timeSpan: '1D', + }; + } + + render() { + return ( + + + this.setState({timeSpan: '1D'})} + underlayColor="#202020"> + {'1D'} + + this.setState({timeSpan: '5D'})} + underlayColor="#202020"> + {'1W'} + + this.setState({timeSpan: '1M'})} + underlayColor="#202020"> + {'1M'} + + this.setState({timeSpan: '3M'})} + underlayColor="#202020"> + {'3M'} + + this.setState({timeSpan: '6M'})} + underlayColor="#202020"> + {'6M'} + + this.setState({timeSpan: '1Y'})} + underlayColor="#202020"> + {'1Y'} + + this.setState({timeSpan: '2Y'})} + underlayColor="#202020"> + {'2Y'} + + + + @@ -126,7 +124,63 @@ var DetailsPage = React.createClass({ ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + paddingLeft: 10, + paddingRight: 10, + }, + nameBlock: { + flex: 1, + paddingTop: 4, + justifyContent: 'center', + alignItems: 'center', + }, + nameText: { + fontWeight: 'bold', + fontSize: 12, + color: 'white', + }, + details: { + flex: 5, + flexDirection: 'column', + borderTopWidth: StyleSheet.hairlineWidth, + borderBottomWidth: StyleSheet.hairlineWidth, + borderColor: 'white', + }, + detailsRow: { + flex: 1, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + }, + detailsRowColumn: { + flex: 1, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + paddingLeft: 5, + paddingRight: 5, + }, + separator: { + height: StyleSheet.hairlineWidth, + backgroundColor: 'white', + }, + separatorThin: { + height: StyleSheet.hairlineWidth / 2, + backgroundColor: '#A6A6A6', + }, + propertyText: { + fontSize: 12, + color: '#A6A6A6', + textAlign: 'left', + }, + valueText: { + fontSize: 15, + color: 'white', + textAlign: 'right', }, }); - -module.exports = DetailsPage; diff --git a/app/views/main/elements/stock-cell.js b/app/views/main/elements/stock-cell.js new file mode 100644 index 0000000..3302253 --- /dev/null +++ b/app/views/main/elements/stock-cell.js @@ -0,0 +1,157 @@ +import React from 'react'; +import { + Text, + TouchableHighlight, + View, + StyleSheet, +} from 'react-native'; + +// Flux +import StockActions from '../../../actions/stock-action'; +import StockStore from '../../../stores/stock-store'; + +const ROTATE_PROPERTIES = { + Change: 'MarketCapitalization', + ChangeinPercent: 'Change', + MarketCapitalization: 'ChangeinPercent', +}; + +export default class StockCell extends React.Component { + constructor(props) { + super(props); + + this.state = StockStore.getState(); + } + + componentDidMount() { + StockStore.listen((state) => this.onStockStoreChange(state)); + } + + componentWillUnmount() { + StockStore.unlisten((state) => this.onStockStoreChange(state)); + } + + onStockStoreChange(state) { + this.setState({ + selectedProperty: state.selectedProperty, + selectedStock: state.selectedStock, + }); + } + + changeSelectedStock(stock) { + console.log('Selected Stock:', stock); + StockActions.selectStock(stock); + } + + render() { + console.log(this.state.selectedStock.symbol, this.props.stock.symbol, this.state.selectedStock.symbol === this.props.stock.symbol); + return ( + this.changeSelectedStock(this.props.stock)} underlayColor="#202020"> + + + + {this.props.stock.symbol} + + + + + {this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].LastTradePriceOnly} + + + { + switch (this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].Change && this.props.watchlistResult[this.props.stock.symbol].Change.startsWith('+')) { + case true: return styles.changeGreen; + case false: return styles.changeRed; + default: return styles.changeGreen; + } + })()} + underlayColor={(() => { + switch (this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].Change && this.props.watchlistResult[this.props.stock.symbol].Change.startsWith('+')) { + case true: return '#53D769'; + case false: return '#FC3D39'; + default: return '#53D769'; + } + })()} + onPress={() => StockActions.selectProperty(ROTATE_PROPERTIES[this.state.selectedProperty])}> + + + {(() => { + switch (this.state.selectedProperty) { + case 'Change': return this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].Change || '--'; + case 'ChangeinPercent': return this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].ChangeinPercent || '--'; + case 'MarketCapitalization': return this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].MarketCapitalization || '--'; + default: return this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].Change || '--'; + } + })()} + + + + + + ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: 'black', + marginLeft: 10, + marginRight: 10, + flexDirection: 'row', + height: 50, + justifyContent: 'space-between', + alignItems: 'center', + borderBottomColor: '#CCCCCC', + borderBottomWidth: StyleSheet.hairlineWidth, + }, + selected: { + backgroundColor: '#202020', + }, + symbol: { + flex: 3, + }, + symbolText: { + fontSize: 16, + color: 'white', + textAlign: 'left', + marginTop: 10, + marginBottom: 10, + marginRight: 10, + }, + price: { + flex: 2, + }, + priceText: { + fontSize: 16, + color: 'white', + textAlign: 'right', + marginTop: 10, + marginBottom: 10, + marginRight: 10, + }, + changeRed: { + backgroundColor: '#FC3D39', + flex: 2, + padding: 5, + borderRadius: 3, + }, + changeGreen: { + backgroundColor: '#53D769', + flex: 2, + padding: 5, + borderRadius: 3, + }, + changeText: { + fontSize: 16, + color: 'white', + textAlign: 'center', + }, + separator: { + height: StyleSheet.hairlineWidth, + backgroundColor: '#CCCCCC', + }, +}); diff --git a/app/views/main/index.js b/app/views/main/index.js new file mode 100644 index 0000000..c021bcd --- /dev/null +++ b/app/views/main/index.js @@ -0,0 +1,195 @@ +import React from 'react'; +import { + Linking, + ListView, + Platform, + Text, + TouchableHighlight, + StyleSheet, + View, + RefreshControl, +} from 'react-native'; + +// Flux +import StockActions from '../../actions/stock-action'; +import StockStore from '../../stores/stock-store'; + +// 3rd party libraries +import { Actions } from 'react-native-router-flux'; +import { IndicatorViewPager, PagerDotIndicator } from 'rn-viewpager'; +import Icon from 'react-native-vector-icons/MaterialIcons'; + +// View Elements +import StockCell from './elements/stock-cell'; +import ChartPage from './elements/chart-page'; +import DetailsPage from './elements/details-page'; + +export default class Main extends React.Component { + constructor(props) { + super(props); + + this.state = Object.assign({ + dataSource: new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2}), + loaded: false, + refreshing: false, + key: Math.random(), + }, StockStore.getState()); + } + + componentDidMount() { + StockStore.listen((state) => this.onStockStoreChange(state)); + + StockActions.updateStocks(); + } + + componentWillUnmount() { + StockStore.unlisten((state) => this.onStockStoreChange(state)); + } + + onStockStoreChange(state) { + this.setState({ + dataSource: this.state.dataSource.cloneWithRows(state.watchlist), + watchlistResult: state.watchlistResult, + selectedProperty: state.selectedProperty, + selectedStock: state.selectedStock, + key: Math.random(), + }); + } + + _onRefresh() { + this.setState({refreshing: true}); + StockActions.updateStocks(); + this.setState({refreshing: false}); + } + + _renderDotIndicator() { + return ( + + ); + } + + render() { + return ( + + {Platform.OS === 'ios' && } + + + } + dataSource={this.state.dataSource} + renderRow={(stock) => } + /> + + + + + + + + + + + + {'Under construction (Stock: ' + this.state.selectedStock.symbol + ')'} + + + + + + Linking.openURL( + 'http://finance.yahoo.com/q?s=' + this.state.selectedStock.symbol + ).catch(err => console.error('An error occurred', err))} + underlayColor="#202020"> + + Yahoo! + + + + + Market closed + + + + + + + + ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'space-between', + backgroundColor: 'black', + }, + statusBar: { + height: 20, + }, + stocksBlock: { + flexDirection: 'column', + flex: 9, + }, + detailedBlock: { + flex: 5, + backgroundColor: '#202020', + justifyContent: 'space-between', + }, + footerBlock: { + flex: 1, + flexDirection: 'row', + backgroundColor: '#202020', + alignItems: 'center', + paddingLeft: 10, + paddingRight: 10, + }, + loadingText: { + fontSize: 15, + textAlign: 'center', + marginTop: 40, + marginBottom: 10, + marginRight: 10, + color: 'white', + }, + yahoo: { + flex: 1, + }, + yahooText: { + fontSize: 15, + fontWeight: 'bold', + color: 'white', + textAlign: 'left', + }, + footerMiddle: { + flex: 1, + }, + marketTimeText: { + fontSize: 12, + color: '#A6A6A6', + textAlign: 'center', + }, + settings: { + flex: 1, + alignItems: 'flex-end', + }, + icon: { + width: 20, + height: 20, + }, +}); diff --git a/app/views/settings/elements/stock-cell.js b/app/views/settings/elements/stock-cell.js new file mode 100644 index 0000000..ca6739c --- /dev/null +++ b/app/views/settings/elements/stock-cell.js @@ -0,0 +1,124 @@ +import React from 'react'; +import { + StyleSheet, + Text, + View, +} from 'react-native'; + +// Flux +import StockActions from '../../../actions/stock-action'; + +// 3rd party libraries +import Icon from 'react-native-vector-icons/MaterialIcons'; + +export default class StockCell extends React.Component { + _onPressDelete(symbol) { + console.log('_onPressDelete', symbol); + StockActions.deleteStock(symbol); + } + + render() { + return ( + + this._onPressDelete(this.props.stock.symbol)} /> + + + + {this.props.stock.symbol} + + + {this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].StockExchange} + + + + + {this.props.watchlistResult && this.props.watchlistResult[this.props.stock.symbol] && this.props.watchlistResult[this.props.stock.symbol].Name} + + + + + + ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: 'black', + flexDirection: 'row', + justifyContent: 'center', + marginHorizontal: 15, + height: 65, + borderBottomColor: '#CCCCCC', + borderBottomWidth: StyleSheet.hairlineWidth, + }, + deleteIcon: { + flex: 1, + alignSelf: 'center', + }, + deleteText: { + fontSize: 15, + color: '#FC3D39', + textAlign: 'left', + marginTop: 20, + marginBottom: 10, + marginRight: 10, + }, + stock: { + flex: 8, + flexDirection: 'column', + }, + symbol: { + flex: 1, + flexDirection: 'row', + }, + symbolText: { + fontSize: 15, + color: 'white', + textAlign: 'left', + marginTop: 10, + marginBottom: 5, + marginRight: 10, + }, + marketText: { + fontSize: 15, + color: '#A6A6A6', + textAlign: 'left', + marginTop: 10, + marginBottom: 5, + marginRight: 10, + }, + name: { + flex: 1, + }, + nameText: { + fontSize: 10, + color: 'white', + textAlign: 'left', + marginTop: 5, + marginBottom: 5, + marginRight: 10, + }, + move: { + flex: 1, + alignSelf: 'center', + }, + moveText: { + fontSize: 15, + color: 'white', + textAlign: 'left', + marginTop: 20, + marginBottom: 10, + marginRight: 10, + }, + separator: { + height: StyleSheet.hairlineWidth, + backgroundColor: '#CCCCCC', + }, +}); diff --git a/app/views/settings/index.js b/app/views/settings/index.js new file mode 100644 index 0000000..63d16bf --- /dev/null +++ b/app/views/settings/index.js @@ -0,0 +1,204 @@ +import React from 'react'; +import { + ListView, + Platform, + StyleSheet, + Text, + TouchableHighlight, + View, +} from 'react-native'; + +// Flux +import StockActions from '../../actions/stock-action'; +import StockStore from '../../stores/stock-store'; + +// 3rd party libraries +import { Actions } from 'react-native-router-flux'; +import NavigationBar from 'react-native-navbar'; +import Icon from 'react-native-vector-icons/MaterialIcons'; + +// View Elements +import StockCell from './elements/stock-cell'; + +export default class Main extends React.Component { + constructor(props) { + super(props); + + this.state = Object.assign({ + dataSource: new ListView.DataSource({rowHasChanged: (row1, row2) => row1 !== row2}), + key: Math.random(), + }, StockStore.getState()); + } + + componentDidMount() { + StockStore.listen((state) => this.onStockStoreChange(state)); + + StockActions.updateStocks(); + } + + componentWillUnmount() { + StockStore.unlisten((state) => this.onStockStoreChange(state)); + } + + onStockStoreChange(state) { + this.setState({ + dataSource: this.state.dataSource.cloneWithRows(state.watchlist), + watchlistResult: state.watchlistResult, + selectedProperty: state.selectedProperty, + key: Math.random(), + }); + } + + onActionSelected(position) { + if (position === 0) { // index of 'Add' + Actions.add(); + } else if (position === 1) { // index of 'Done' + Actions.pop(); + } + } + + renderToolbar() { + if (Platform.OS === 'ios') { + return ( + } + rightButton={{ + title: 'Done', + tintColor: '#3CABDA', + handler: Actions.pop, + }} + /> + ); + } else if (Platform.OS === 'android') { + return ( + this.onActionSelected(position)} + /> + ); + } + } + + render() { + return ( + + {this.renderToolbar()} + + } + /> + + + StockActions.selectProperty('ChangeinPercent')}> + + percentage + + + StockActions.selectProperty('Change')}> + + price + + + StockActions.selectProperty('MarketCapitalization')}> + + market cap + + + + + ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: 'black', + }, + navigatorBarIOS: { + backgroundColor: '#202020', + borderBottomWidth: StyleSheet.hairlineWidth, + borderBottomColor: '#424242', + }, + navigatorLeftButton: { + paddingTop: 10, + paddingLeft: 10, + paddingRight: 50, + }, + navigatorRightButton: { + paddingTop: 10, + paddingLeft: 50, + paddingRight: 10, + }, + toolbar: { + height: 56, + backgroundColor: '#202020', + }, + topBlock: { + flex: 1 + }, + bottomBlock: { + flexDirection: 'row', + paddingLeft: 15, + paddingRight: 15, + marginBottom: 10, + }, + title: { + fontSize: 30, + alignSelf: 'center', + marginBottom: 30 + }, + buttonLeft: { + height: 36, + borderColor: '#3CABDA', + borderWidth: StyleSheet.hairlineWidth, + flex: 1, + borderTopLeftRadius: 4, + borderBottomLeftRadius: 4, + justifyContent: 'center' + }, + buttonMiddle: { + height: 36, + borderColor: '#3CABDA', + borderWidth: StyleSheet.hairlineWidth, + flex: 1, + justifyContent: 'center' + }, + buttonRight: { + height: 36, + borderColor: '#3CABDA', + borderWidth: StyleSheet.hairlineWidth, + flex: 1, + borderTopRightRadius: 4, + borderBottomRightRadius: 4, + justifyContent: 'center' + }, + buttonSelected: { + backgroundColor: '#3CABDA', + }, + buttonText: { + fontSize: 14, + color: '#3CABDA', + alignSelf: 'center' + }, + buttonTextSelected: { + color: 'black', + }, +}); diff --git a/google-play.png b/google-play.png index bfe23b09cdbf67e0e7699d6691db667ff013393d..5d7a9fd7c7f1000ae1814ca3b936f80d0a6f6a8a 100644 GIT binary patch literal 6223 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 literal 10625 zcmW+*16X8V8=tV*8#ZmV*|zQ4+-6VOY-4M)ZQHhOY_-|mY=8Iv^*qz9nYqtB=fw~2 z3H`1hiHv}U00M!KrKQA_f$IqH5`lvOeq%VM5(5`_JEat{j#ybF z+z&IBf`$YhO(ujScNt5m7hPN&8h<1w1S%@ZF9J)64k--bFYF#kUQ}RyNZ8oRwr9T8 zV#mY5!j!ny z;Jc!&LOY}ZB9&Ul*Gk4M?yn6;Zx5@X!SI!8N*ae2lfw|wFinV|&pj2F#h(pz>t+H3 z%8A7Sc6;;YHic3(HN_FtgrZM>(hc+R&B$o?eSf;#P6!0rcJi5hr(>+g^W%l_`}v+n zehzJ}hnVC15N=k7D%1$dIbPAYvHLGJ;<+)c%gg(Fdw*pHM6?aZG`!!zefm8bZ`Myf ze6J68TU|S3{w%uwlF*M^eG|8Gg#^=a@V|`K4x%Mrn-M==3Fp5JNE@|k(qQf?Vc18B zrA6GZ6n+a8iK8AQpZhS`*`#}c64+!1)mREZc*fF~=o&-a%Tl6gI`!;4fI!#nw!MF- z;Gq1>1GlGLKQ08{By-3?erD2f_8^d+7#V}=SiRsd90(+q<4;o~jDOqvg{}vNp!d^S zFXF2K$1f4Gfj$v55d;%I0tW-?iU1L+;K>?78Uw~ZLWFERO6I}wb|?&eYAq=IcBs#W za9O=n9scmp!Xt2>4M|o)AdJE^Nu%I!QiC2zdZnN-!pVq7Lok)T$;PrvF)N3u601oO zUh_LZa{tzmXp7|?0kH(U26sp@C-~PX@&7?;6m2cx#QPGjd}%Cd+43*Y#h1u7P_&^x4SX?TVg9Wt zMMt`b5&fAF%`-%FfRhX(RFs9XH3m|;wm@|bV@_huMw#@Ot~8xZ3Xe2?bj8G~4wgHC zj+k~NXfJcGe~)z!e~;u^8zIw3$iCoFWrs?6%u)t-A8ns)AI3C=MOZCAO?kZ}R~4N- zT1%udw@JBL>37LzHs>_%$v|vr*}}@a#Cbe(9PLaH%^!3EA3du7XbK}R7N6AM} zx2{OY!B~OAAz&)p^e?bqz__kos#D~OaOcBuhgF$4nNL#=Q&CfG)ii0EXuPmu#}E=_ z5-Ae#X&6;Y%Zkc2$`I9V)W%h#OZ8N|t0dG|Rd!3^|0I>Gm1TZERl!#Qm-3eUE(4d? zstOkP{CEq6`Oz=euP9oelvAs}+c89pXpCF$Mn__WTpsM~&ptp=JGt!TLerk|M%W(C zUsjsSEy^mxs!^|elVBzYyPIPFnBk-Ve@IoFeB%?gfq6l_Lycd=CfCYrs$*4_l$@kl zE>*5nE_vF?QFT_FS=1@s{^P|TMR-_-QioC!96j|Z^H613WxW`o7+ap7=dOyO%&HJS zw_VJ&+ot$DC96x%FH6q0c*DK(@R`7y@lEyZ=X3F$B$6gfJrWtrD$>*!zCm_-TRuX@ z;ngc8QQdwa(L%#S!{qH>v8}Uw`3n+}5~vXtLpr-;yFZ714&_t8P>@i_%Ad%erzy*~ z7Eu@R%JIq#PfkqcO)jRgr}Hx}u^gr!rZ1&$HXCTUY0)*6G_{yY*X?N){Wx#xunE%Q z{!yr@rlngiQJGmuzSv&bUW{Jcst~VGp0x<>ueoX(Z7OZXt=azzvs%^kv&q{KY=i@D z9<1s=kME54Zu5?O>#-v)A4Bn7hkNuTSqgD_N~R z=Qy`G|Gkzy!In*(^@G)Mrhi0qOKE>r5HUNE$!fF0M^RMKAKZ9I%4p0Ot5LaB(_H9U z_F#B{BXBR^ki9Fg%g4FFvhhQIg0rW2qXj9ae^uy%C<6{<7>_-j(h6?o; z_Sc4ddGzoi>5dZQSv9?{TRszx$Y~YE5{?e24A}3jBrzZP7gI^{aF{X`J7s|q^xfxZ zaR%1#z%abu2Z=K1caTP~V3b{mCf+P_GP~>SnyBNZ*t1xY*hV^-S&_S%UWT1Upp3zi zZ-ujstxa%%-hmCdD=Ihzb@14vY#9dFE6vh!{12{I-VpUxex`egiB#GniA{?^6Ss8V z?O=B&8)Pk{+i(3vSsK$Jhb*_A&Xa|m=0g0Fg`cOBIWR6Z#$Ke1L_WR=d;&f&a~ZEN z4XS$|vUo@#zOWLX$|*k*XHe5)Et}*i^%;dopy4JE=U2cJgeZerz>{ zGvgxr;|!w@V>_;?Fj!WDo>23kv%-?Qj?dnG6=4_a6K$|MOa)&{SQE|91;z3+jpQny zP6`isD}TM-v4Gx22&+>>HH7^j@6)xVGhIbZ#vhxFhR?y7_ySm=VO5x`ILTPPf2r2o z_VIt)j&-N5B{Y{SB_AZC*dQ;jG$3!PH=Nzwi?1>!Pg1S6 z2R4be=6Cb8beI;8PEGO(surl;sy?f7oX@Q{8ZJHB%%0S?OIiX zP?KLUTQGf*eyM*DtO_kVeoT7#savV=)BbE2Y7XiRmK3FFsrAnS;T*rJa`YnYsU*rU zQP+Fsg)2QW2eMjZ#?TI_otXRH@dNzk!&hXU6_*Ilif!0=A{Rn1A)}>8+I5;lx=PxM zwvl$5;)KBL;>m``tK=#XY6ctM4|kax)lrL;=W@4td55v=%!D?QU=b`b` zrX{NFMH`ya_MG@f_#tlx@08AUi_>-8>i%bq7LBxO9{ryuPA7ct@$-tq?HTQ9RjoQ! zt>+${jhpl*YZ&Ty#%dV8?l^u#5 z`nN)7!poxTzZV3x-`Du9xm3|e_o5aRa z%JLwP2RR7j7YG79eE`>E5XhMc1UfMQfp}6tAROB`{Xq#3=xc?vn6Rqb%D+r^O|^xU z9$(LF#}rCaOtfD}!>R++ozxOWPuylh3srGS8g#`Iw|XygW@kmI?wLw#ha|%DiuHDV z5X0YNrNzlVLBPVKqGZ%}310pqhJbCTxW8~;gtETZ0#`OJwJ*MOo$9_wsVWkqK{`Qp zfCy=5dMyp2qsomGxcqSJLBp@I#k;$7}QbP6ZThi9)X?X(w&lNTl!Z72v=Q~X;^?%(_guF?yq>_-A z7ru&Sz?;?^9YNr1@1~XKNJ8GI!EhYXajfX0(&8+mjShF~70f{meeX|x>FKLyR_Q6M zV3hm&d$ln;d;9J7i!M@zbEbF-dF3iby^a*0w`V9O>%UAx5xDs>BJ_JVe!aR~yGx;Z zzYzvPSXafCT=kzsKNU@8aI3(P3@lczLKCy$MKVEzOr|%7e7tm@L86JkF$1fub+RY` z{?ymk-@dqD{Dqe1`|nRL0P^MNM)N6pbI~4gjHC030(y|OR5c-*Npj4$e z@fw>>lj>k1l@z$i^D{arK_sXLtW%Q6yTYrhG!qev#DIXu-!0qw;U;?#DP-J8z z5C~u24;qof-Ca_%i4>B&d`?86g5nRll_q2~zmU*na$tYue{9DRsEw}oM!)g#>5!3; z!3jlt<<}ykEQVucWko0QRi@Kvk%ESX4gnqw54>f6G(%$l`glcSn(_;TW;_&u4uoaA zE`>SY$ieO7jrtoKo2r<&czNIVKtJ=-J*dwxC#{w(E&|DC^*2XPTE=>-x42hU_ch=H zWfqJn{v=tmYyt11^>$8a=}<17#lvNA;NK2zJX%^SJ+CWqv#Hm(fB>&=q@=Vf)Y6ZS zk1>gf;#w>26%`eu)63L4M06BD{0pb{fuuE(r)hT zdjp}n8T_6}96wi7OZ7LqyqQ^9cmFLrHki*s`l%Ev%;osw&(6*c3=#q{$WX}S+1}Za zadKhO`E zemvxuKP+RZ?na9n z8O2E{D4^p-O6=|FeD*t9s_sS;331&>%_$+9=3f$ZI-V1UBM}3dSUen?J^|NbIO;-N zMkXjNZ|QXK{*3n*kmwZl({h@Jf1BOphGhjjhGP=J}YdnlVB9>@X^rz8^le{`JGjn9Lm7>XJody(} z>aO;8d71X?M}v87n-*UfmROPyX`nFVZx0Cs2WNt)*x2!TJEx{^ZaY@cw`XHj)f)BS zw?6~>zU<#fD5wO=onon zPX!ThJN&xZ9fo3ZK2ZgFIOoqrVY1#gYU)%}!B;fDsm%77W?R9YeRjoyImQr0pM@!lLB#RCXmayty?c`}gDx z^}Dj7f{LDA?GF*CQaxOuIKQC*Gg3nI$B)#V<+;;4^F}Q`e*V#^siKk+sZnD#JZ8K| zkU1OP#N=e+hwIUdf4*e2a;={q-8dWxnn=#9xt*(PaZZlk+S(e;U43I?VNTALhI5ld zb#+O7DPMdWnRJ};?~}{R%K~92P5`Wn_GZo5q~cUdGkI>GS=8{(_ari*$qaTx2(rw@ zEjAiuP%A~GPPp-o?yX7G&GwJN+1#F5^ZQ3~**EJAS2%S#V@h4R$BY??@wPVoo&xu5 z9_92aGS--qut{Yx>c~i>4GgJArWfKe3;V~*k+iKyIa#im5)v?G>iPWx+l(zrNvY3~ zB=Wx#1&-~?*k^Jen8KSpElG=zO8+SblL=~!cXc);oRI$`6w=pHSQ&MMBY8ZeB>mxJ zLNXoXqygNOJr8rt=Z+qw*px^1pmj$s8+|Li(0*uWY*?{6>5UEaJe_h-AWPd8lL+|1@P#CkqYrV`O#pJz8;sy>Bv~^gV}fp4GU|qQoEVUC%?AZu`CDr~wNZ`f6`t3WavCAtHaLLtM=bGk1Iz}=ZH zZ%+#OG%*tsGFpu)la&SwXjoWdTifY?Plz>jbvu!q8^i(vUu|tK1Sb%T96qi7RsH9l zkeEnKJGvVX9v&X|73YMEm;&q6MmmZ1^)3np#^&JoZ_{*ao-*!l8Ib^JyvpEH?$(Uf zlwjW%ii-7Xl30Ao*#`H1$+^dm*F!SoSp{njl|OFb$kI7 zkwi>Z*84CkPa%S{W|Aqn@}qrjO-;?%v|xuHu||e;$Ds*EoEM?CF(EY#GkmD(KEznu zKoBBsf&Qe?WzXSXPiq*W2_Gz4$@1TemoYJD8{QAP0Jpkr2jQG^1AOxWhl&cG%@a>Z zF8|H^@$ZlQCy2>2yLeCOIvvAgF75<-etpSXAIdNp)05={HFS*l6*WB@;%#NTrzE_h zD0q^)P2(rV6Daef&HaQr!_7J5$D|*HiFLB#^ycQ!Zy>m)=^D+PYNtHhSY{=)V!OobP`{hzYOUStcM+)7>x)R< z;QnCbhl~q7pS*XxzJgG8` zz~_u=`nkGua3BG|G`HI&F|fRr@>xq;TgB+F{B{lw-)L#W>*`nlOtbh?0`Oe0Zo7*; zkcxJnuFOnAKmz8em8%2X9hZ%Kyvl)6L;#G7T0Qnh>BU+@6n%?HwHft%v__ zy*;^5Hkqc(#@w9B$H&KdttB?w=ecz8aI-{-6zJ38<$5sDI)XC#5-G{1ZQIXyASI5K zJrT&TI<0DXxmoh9b#YQ6-}ems<;_SGy^@1l(J-yTsK&cw4)5icU#`;W@R`vRf4}$| z&jKrg;Bvd%63w>fuvr^8?qIr?$*y?Tq})4#BpqkX23Gng-u_j*`&{ci_b zTLx+DRxXNx_9HPQ1;xelE%wGP7aQ`{)^tGPNGT|SLqgy{fR+?jP(VS(V>39K$pwg9 zZ8d2$o|4sM1P#zsp%D>eTwE#G^jc_`m;=DGgk@w9fCxSODRw-V*ao0XE|Vt_c#>A5 zr8ux!V437VI{f@VIem%z?$;)R3Kb}}wzgf*C$vDIT@}5RIT;r_-D)hQ-69Gc~wU3qk{xj*r!6WSH#h=mWWM|dm;@iiV2XpQ=9j1v5yjhPT)fr<>0 zqc%;@>k3G$Oi~<1CUZa6gmE!oZem=nV#L!BRq3JJ-PPv^M3*vuYJX4Gi6)NNNs zx36)(F{`McAwU5{uJvkDWJd>|scHEH&{^(hjZ2`TzqO>+__h0?P z!@p~4n0}!R3=J)o(WIO(c|F>J_DvBseO`V>J|)p>7fp;6y^u@q=zl!pfN&UeT1ck> z_vIfJ^9FG6lGX?3hMOq*+SnVL{f-z40hf@A3&-~Mc7yHadzVW~G$F5g{;3y0gdhL_ zaumFMcfm*u#BUVmJ+h~ zjFa(s&Vu6=pNg*U?;nUC9N$tQ*vX_}>$nYQ11l(-Tkdfy9a2K17s_a%VAbJFm6Vh! z!K_WzPx~{PKq+F~o#=Ue6!n%bSi0|oQr0xSk$X+`_wPo%pb~K9WXJ>HS>7Z!kFZjy z9TcXetSkb6SSq^}w&43CslUHJ;DYBWwK=f?u?z^C%CmBX{R;T_`CI_ZA9S)36S3ak z-)~PA!h!Yyx~i%~xyVDe!z~ujP1`3YWd!Q1=-AjWJ!`FwzM`BL{Zetn`TqEmjG3lG zN$!6ObSNCv@G!CSt<3!kn7e;vu?^U6g{O`Rd&oyH2Dib+cw z1Ek%oW#d@?qUC?s*fLZnBP-kLc9qAXt>IHLnYLgfsK!B6Sy?%IdY2*S`_&I{3ziSG zIyyR1va-g2Xk_64JotCXt|EH?PhF2(Zx!2?AHp9e5-5gySUw z=v+C|^yPNfLk7)dJ|z?KGbN30=|u-*kGDLEBkZVCrv;ly_4y4Eu+i)0W^p?nzWHs+ z)~9wdoOdBxe!l3qQK)21NlnEiCnujsV-E*<)X3P_VxxmwQQ(Q}<>8{ZrKLq?MB2ID z-Puy!!NCFRB^LlX_A(Kn#2Bafu>a;v;z28&p00^%=1Wz&CZ?uW0K;rLg8;HShHPUA zx%m?%;x5hkTXp^k#}*0eRKn+bNInX$HM?Yl?*h?E*|xh{K3CpLo=?~NI;{@k?r^6| z)zu4TKRP|w0TsPBOypZ(^eY|4RaG^i4(~sDTb#C8X`uG2i|@8vpfRmULwY!2`g94b zKQ=9`?B6ah|4Rhq7y6ekBfWvJShlKw{4$>_2;K27vmip;O1JG&s(O3q{_r-3oU78E zR6?a_FXrK_4Fwe5w{e!z(o!#AfUvNkG9UJKx1_I8iz+H2!t@2ndcEzA6B}(ZaG79f zJ@ZnwUFtCpYs7;TSE1@lB+GuBy0k~Gc#C%aB#UHopOAw!kEjF#rP}~PRMu$8e1G{r z{^Rxb=DA$g{OePG`TLPbe9i<{Wp{V?t0~?K)pS=N-T+b7Ivp#UE@rWUqw-wj)7an< z5yLHS6tehQwH{0X%_A%<+|ml1-i=}Ex$k2E9Se-inlTruS&BGwz97L2MoG)bnE-+T z^!WT-=l$a1#G@No|J*rOApJSZ_x;K81AN_+D$vX$M=NVOZEPy=v=@)}v+L$?IzA<3 z#BrKmQd9E_PbR>cAulKw)#=CqzsNQ{gM5b-G|6H0|;F}f#Y&me<@bTRQ{6+urG_{ zA1bY88+joi(8u#qcM6yN4&lW|C32_UG%zuGIu!f}t*>WIN=o`qcmtD>-Ti%W5s`pA z5j9CKFFsD&je+_3c*gEm3@{ixF)?v@b!B+}Z@J@P!?SVaGm-Z#I=~BKWsk(=yZ!L$ z9m8a@cK!44n+@5xd>`6kxF*~@#%wYP(s*NJ$R0H6u@Wvef9jnK-k(&QqJNC9(O&Uc zt5<3b)=vwRBeekzDlRK)Dvn$h4h3asauOL45fSj+=4&m?z}64u6$RB`?yHHWMq)|b z?-n$;UC#*sakl@bRHZ_@IqK-hyz6lXal`Y1AF#Bkz$deHrn11S$S*n?HJMT0>~yiR z0&r3(DPO$2y#Y5};@s5O&`{uhb0DJ)2?;4BC6(iNsNZEcy}nK;9rqvR4o4G#PyUp4 zJRPKKYHO>gt4jcuU$e#l0%$ciPfq}g33hgOL&L*?3C`DlD~+dFF4^*OsVqUQj)!%2 z+amjk(!d9RDPhRqbH7IMoHVHioI3TrmXs76$hP~9V|jTwAt@;?DQPH$*%;WgI*hk7 z?FEqT7Q1aoY;0^Ya`M=im`hN&5aCn-YII1!w#rYc79X5yKM;IxB+T8FTxXvjclyln z_^5N8B*z!|W&=zKJk6DD1GCZSRPYnc6G*a3|Df66@p8N4c1{*xL$y%#$&nFaO3L3m zJ4R&Ezz8iAz)ky|0rYA*zt!=K&*@}RG zfQpfkl9^e_o@Na(H#e6~yD0)Fpy+9Vmxzr{&ztLU#`zp!C}1+N-0DaP2-R*pg$1{52Usy;EoRk1qV`ya+u2)S-ODoH5^wP2gIAB#(%uF6QRV;SDw-^{23hU?)Y;0`Y{#%X*SX}*dtP3a^Uf1)1-d_KloE#e7r|wVP z539<6H~kGfoSB&!^&0_dZ+KzpPpFzcZM8o${xH<3&^~ui5}gCi#m@=&Cb#DH^%j2N zk+k>>nI<#maAuiLSFTu5f(St9fpT{QLTwq;FD54!fsuY&vorNh1!S70)|LWwEAV@B zwP1;f*T+f?L@&Lfr%qh;oWHw}-B zT)DW#ezl*hUk98Oy|B~~1tY-y!AriUfTGsh*oY$yAzmgr5GpzF1tn%YFuTU&nqQ*&#J0 zFut<)^PhrXh06nJ&)8TP;PC+x1?D$-1qHwU{84o|UwhK*RKJa;Ax0gPN+zSaY3id9 zfW7!2+qT%11p;ZMP+_V&rye2V{XIGi7=;3&%!+@sk_ zdcM_$L{{>alc!9NV=8oqT2`Vu4FP}oX{y{i7dUTK92LStE4>d2lfmMEfG-kqMz+Jg zRC*B?4=QhFr`?z3Ll&YWmOjHz?B>GpLs7N%RpnMnL2iIN07*1vtG)-&L25yc;SB$| z-M5JJ!|{(2V(q!Qch0@f9m@tCyR_MBTk&|T9&kOJ;(z#ph6c1F#}T diff --git a/index.android.js b/index.android.js index 91cc180..373abff 100644 --- a/index.android.js +++ b/index.android.js @@ -1,20 +1,6 @@ -'use strict'; - import { - AppRegistry, - BackAndroid, + AppRegistry } from 'react-native'; -import Finance from './Finance'; - -import { Actions } from 'react-native-router-flux'; - -BackAndroid.addEventListener('hardwareBackPress', () => { - try { - Actions.pop(); - return true; - } catch (err) { - return false; - } -}); +import Finance from './finance'; AppRegistry.registerComponent('Finance', () => Finance); diff --git a/index.ios.js b/index.ios.js index 92ac704..6395479 100644 --- a/index.ios.js +++ b/index.ios.js @@ -1,10 +1,9 @@ -/** - * Sample React Native App - * https://github.com/facebook/react-native - */ -'use strict'; +import { + AppRegistry, + StatusBar, +} from 'react-native'; +import Finance from './finance'; -import {AppRegistry} from 'react-native'; -import Finance from './Finance'; +StatusBar.setBarStyle('light-content', true); AppRegistry.registerComponent('Finance', () => Finance); diff --git a/ios/Finance.xcodeproj/project.pbxproj b/ios/Finance.xcodeproj/project.pbxproj index 3724d43..1b831b7 100644 --- a/ios/Finance.xcodeproj/project.pbxproj +++ b/ios/Finance.xcodeproj/project.pbxproj @@ -21,16 +21,16 @@ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 4823C734A64D4ACD8CF92862 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 51884E9AB87B4B14B63A589D /* Entypo.ttf */; }; - 4E84FE4C13214DDEB0AA48DF /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 81B5A0C924744434BFCF6227 /* Ionicons.ttf */; }; - 76AA4311A7BA474C9D4D0189 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30B8D0BAB70040FEAFA23EB3 /* libRNVectorIcons.a */; }; + 147DC33E592E4C0EAEC22C45 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85D0D392B65B47DDBA269005 /* Entypo.ttf */; }; + 3DDC89A7EA7D40B58956CF8B /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0134FCC9E4B74501ACC77ABD /* FontAwesome.ttf */; }; + 4A0FFA7147644D2984236700 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D40090CD91A54FF287ED9013 /* Ionicons.ttf */; }; + 7118F1D99A504A12A0145400 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = EC500A9DFB9742C585E59EA9 /* Zocial.ttf */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; - 8CBE69E8A04246C5949793E4 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9E0A883C61EB4E5CB6A2E21A /* Foundation.ttf */; }; - A8C200B54C594B0699ED2BDB /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A0C3212C3F1843B7B97B7E29 /* Zocial.ttf */; }; - D3CDFE212B554F489807FF71 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0C1173DCE06A4B2F93EDC0D3 /* EvilIcons.ttf */; }; - D8AAEBAAA09445808920D2DF /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9CE4F84376D84B7285C81602 /* FontAwesome.ttf */; }; - DF1E7D5991F04E02A13E8C4E /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9D099323564C4BD38C296D76 /* MaterialIcons.ttf */; }; - F1B835090DC3441D9351FFAA /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 190BB980685A4E6C99A2BD23 /* Octicons.ttf */; }; + 89522A86F78948809E570C2C /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B5E229444C8743719400FEB1 /* EvilIcons.ttf */; }; + A8FF1CB4E6784FD393F678AD /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 56EC5901FF894414AE78FDCE /* libRNVectorIcons.a */; }; + AAFE15B78DC8463CA54C1AE1 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 455E73C70D004ED4B434D6FA /* MaterialIcons.ttf */; }; + B5E61FBDC3D548E8A7A2CE6A /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 584A14921C3B4F9B9E3B22A9 /* Foundation.ttf */; }; + E9CE11F7FB3B47088F24BCF4 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C34B8D5D8CE2408AADC643BD /* Octicons.ttf */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -111,9 +111,9 @@ remoteGlobalIDString = 58B5119B1A9E6C1200147676; remoteInfo = RCTText; }; - AA3BF89A1C48EE930065FAD6 /* PBXContainerItemProxy */ = { + AACC6E731D095F7F007E26F3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 8E437AD37ABF44AC8264CAFB /* RNVectorIcons.xcodeproj */; + containerPortal = 0EE93BD9537F4F8E9DA77B2E /* RNVectorIcons.xcodeproj */; proxyType = 2; remoteGlobalIDString = 5DBEB1501B18CEA900B34395; remoteInfo = RNVectorIcons; @@ -130,7 +130,8 @@ 00E356EE1AD99517003FC87E /* FinanceTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FinanceTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* FinanceTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FinanceTests.m; sourceTree = ""; }; - 0C1173DCE06A4B2F93EDC0D3 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; + 0134FCC9E4B74501ACC77ABD /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; + 0EE93BD9537F4F8E9DA77B2E /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; }; 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* Finance.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Finance.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -141,17 +142,16 @@ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Finance/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Finance/main.m; sourceTree = ""; }; 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; - 190BB980685A4E6C99A2BD23 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; - 30B8D0BAB70040FEAFA23EB3 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; - 51884E9AB87B4B14B63A589D /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; + 455E73C70D004ED4B434D6FA /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; + 56EC5901FF894414AE78FDCE /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; + 584A14921C3B4F9B9E3B22A9 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; - 81B5A0C924744434BFCF6227 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; - 8E437AD37ABF44AC8264CAFB /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; }; - 9CE4F84376D84B7285C81602 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; - 9D099323564C4BD38C296D76 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; - 9E0A883C61EB4E5CB6A2E21A /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; - A0C3212C3F1843B7B97B7E29 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; + 85D0D392B65B47DDBA269005 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; + B5E229444C8743719400FEB1 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; + C34B8D5D8CE2408AADC643BD /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; + D40090CD91A54FF287ED9013 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; + EC500A9DFB9742C585E59EA9 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -176,7 +176,7 @@ 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, - 76AA4311A7BA474C9D4D0189 /* libRNVectorIcons.a in Frameworks */, + A8FF1CB4E6784FD393F678AD /* libRNVectorIcons.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -278,21 +278,6 @@ name = Products; sourceTree = ""; }; - 36832D3505F14EC1BD4DF211 /* Resources */ = { - isa = PBXGroup; - children = ( - 51884E9AB87B4B14B63A589D /* Entypo.ttf */, - 0C1173DCE06A4B2F93EDC0D3 /* EvilIcons.ttf */, - 9CE4F84376D84B7285C81602 /* FontAwesome.ttf */, - 9E0A883C61EB4E5CB6A2E21A /* Foundation.ttf */, - 81B5A0C924744434BFCF6227 /* Ionicons.ttf */, - 9D099323564C4BD38C296D76 /* MaterialIcons.ttf */, - 190BB980685A4E6C99A2BD23 /* Octicons.ttf */, - A0C3212C3F1843B7B97B7E29 /* Zocial.ttf */, - ); - name = Resources; - sourceTree = ""; - }; 78C398B11ACF4ADC00677621 /* Products */ = { isa = PBXGroup; children = ( @@ -314,7 +299,7 @@ 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, - 8E437AD37ABF44AC8264CAFB /* RNVectorIcons.xcodeproj */, + 0EE93BD9537F4F8E9DA77B2E /* RNVectorIcons.xcodeproj */, ); name = Libraries; sourceTree = ""; @@ -334,7 +319,7 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */, 00E356EF1AD99517003FC87E /* FinanceTests */, 83CBBA001A601CBA00E9B192 /* Products */, - 36832D3505F14EC1BD4DF211 /* Resources */, + B460E8898B3C45C880D5C360 /* Resources */, ); indentWidth = 2; sourceTree = ""; @@ -349,14 +334,29 @@ name = Products; sourceTree = ""; }; - AA3BF88D1C48EE930065FAD6 /* Products */ = { + AACC6E661D095F7F007E26F3 /* Products */ = { isa = PBXGroup; children = ( - AA3BF89B1C48EE930065FAD6 /* libRNVectorIcons.a */, + AACC6E741D095F7F007E26F3 /* libRNVectorIcons.a */, ); name = Products; sourceTree = ""; }; + B460E8898B3C45C880D5C360 /* Resources */ = { + isa = PBXGroup; + children = ( + 85D0D392B65B47DDBA269005 /* Entypo.ttf */, + B5E229444C8743719400FEB1 /* EvilIcons.ttf */, + 0134FCC9E4B74501ACC77ABD /* FontAwesome.ttf */, + 584A14921C3B4F9B9E3B22A9 /* Foundation.ttf */, + D40090CD91A54FF287ED9013 /* Ionicons.ttf */, + 455E73C70D004ED4B434D6FA /* MaterialIcons.ttf */, + C34B8D5D8CE2408AADC643BD /* Octicons.ttf */, + EC500A9DFB9742C585E59EA9 /* Zocial.ttf */, + ); + name = Resources; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -464,8 +464,8 @@ ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; }, { - ProductGroup = AA3BF88D1C48EE930065FAD6 /* Products */; - ProjectRef = 8E437AD37ABF44AC8264CAFB /* RNVectorIcons.xcodeproj */; + ProductGroup = AACC6E661D095F7F007E26F3 /* Products */; + ProjectRef = 0EE93BD9537F4F8E9DA77B2E /* RNVectorIcons.xcodeproj */; }, ); projectRoot = ""; @@ -547,11 +547,11 @@ remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - AA3BF89B1C48EE930065FAD6 /* libRNVectorIcons.a */ = { + AACC6E741D095F7F007E26F3 /* libRNVectorIcons.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; path = libRNVectorIcons.a; - remoteRef = AA3BF89A1C48EE930065FAD6 /* PBXContainerItemProxy */; + remoteRef = AACC6E731D095F7F007E26F3 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXReferenceProxy section */ @@ -570,14 +570,14 @@ files = ( 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, - 4823C734A64D4ACD8CF92862 /* Entypo.ttf in Resources */, - D3CDFE212B554F489807FF71 /* EvilIcons.ttf in Resources */, - D8AAEBAAA09445808920D2DF /* FontAwesome.ttf in Resources */, - 8CBE69E8A04246C5949793E4 /* Foundation.ttf in Resources */, - 4E84FE4C13214DDEB0AA48DF /* Ionicons.ttf in Resources */, - DF1E7D5991F04E02A13E8C4E /* MaterialIcons.ttf in Resources */, - F1B835090DC3441D9351FFAA /* Octicons.ttf in Resources */, - A8C200B54C594B0699ED2BDB /* Zocial.ttf in Resources */, + 147DC33E592E4C0EAEC22C45 /* Entypo.ttf in Resources */, + 89522A86F78948809E570C2C /* EvilIcons.ttf in Resources */, + 3DDC89A7EA7D40B58956CF8B /* FontAwesome.ttf in Resources */, + B5E61FBDC3D548E8A7A2CE6A /* Foundation.ttf in Resources */, + 4A0FFA7147644D2984236700 /* Ionicons.ttf in Resources */, + AAFE15B78DC8463CA54C1AE1 /* MaterialIcons.ttf in Resources */, + E9CE11F7FB3B47088F24BCF4 /* Octicons.ttf in Resources */, + 7118F1D99A504A12A0145400 /* Zocial.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -596,7 +596,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "../node_modules/react-native/packager/react-native-xcode.sh"; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/packager/react-native-xcode.sh"; }; /* End PBXShellScriptBuildPhase section */ @@ -645,10 +645,6 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", @@ -670,10 +666,6 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); INFOPLIST_FILE = FinanceTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -699,7 +691,10 @@ ); INFOPLIST_FILE = Finance/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = "-ObjC"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + ); PRODUCT_NAME = Finance; }; name = Debug; @@ -716,7 +711,10 @@ ); INFOPLIST_FILE = Finance/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = "-ObjC"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lc++", + ); PRODUCT_NAME = Finance; }; name = Release; diff --git a/ios/Finance/AppDelegate.m b/ios/Finance/AppDelegate.m index db33f42..afb3dcb 100644 --- a/ios/Finance/AppDelegate.m +++ b/ios/Finance/AppDelegate.m @@ -36,15 +36,24 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( /** * OPTION 2 * Load from pre-bundled file on disk. The static bundle is automatically - * generated by "Bundle React Native code and images" build step. + * generated by the "Bundle React Native code and images" build step when + * running the project on an actual device or running the project on the + * simulator in the "Release" build configuration. */ // jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; - + +#if TARGET_IPHONE_SIMULATOR + jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; +#else + jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif + RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"Finance" initialProperties:nil launchOptions:launchOptions]; + rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [UIViewController new]; diff --git a/ios/FinanceTests/FinanceTests.m b/ios/FinanceTests/FinanceTests.m index f1bc8d1..5f431a4 100644 --- a/ios/FinanceTests/FinanceTests.m +++ b/ios/FinanceTests/FinanceTests.m @@ -13,7 +13,7 @@ #import "RCTLog.h" #import "RCTRootView.h" -#define TIMEOUT_SECONDS 240 +#define TIMEOUT_SECONDS 600 #define TEXT_TO_LOOK_FOR @"Welcome to React Native!" @interface FinanceTests : XCTestCase diff --git a/package.json b/package.json index ef2844b..e75ca28 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,10 @@ "description": "iOS's Stocks App clone written in React Native for demo purpose. Data is pulled from Yahoo Finance.", "main": "index.js", "scripts": { - "start": "node node_modules/react-native/local-cli/cli.js start" + "start": "node node_modules/react-native/local-cli/cli.js start", + "build-android": "npm run release-android; osascript -e 'display notification \"DONE!\" with title \"Android built\"'", + "bundle-android": "$NVM_BIN/react-native bundle --platform android --dev false --entry-file ./index.android.js --bundle-output android/app/src/main/assets/index.android.bundle # --assets-dest android/app/src/main/res/", + "release-android": "cd android && ./gradlew assembleRelease && cd .." }, "repository": { "type": "git", @@ -25,20 +28,18 @@ }, "homepage": "https://github.com/7kfpun/FinanceReactNative#readme", "dependencies": { - "react-native": "0.18.0", - "react-native-navbar": "1.2.2", - "react-native-refreshable-listview": "^1.3.0", - "react-native-router-flux": "^2.0.9", - "react-native-simple-store": "^0.1.0", - "react-native-swipeout": "^2.0.12", - "react-native-vector-icons": "^1.0.4", - "react-native-viewpager": "^0.1.6", - "reflux": "^0.3.0" + "alt": "^0.18.4", + "react": "15.0.2", + "react-native": "0.26.3", + "react-native-navbar": "^1.5.0", + "react-native-router-flux": "^3.26.24", + "react-native-simple-store": "^1.0.1", + "react-native-vector-icons": "^2.0.3", + "rn-viewpager": "^1.1.2" }, "devDependencies": { - "babel-eslint": "^6.0.0", - "babel-jest": "^9.0.3", - "eslint": "^2.4.0", - "eslint-plugin-react": "^4.2.3" + "babel-eslint": "^6.0.4", + "eslint": "^2.11.1", + "eslint-plugin-react": "^5.1.1" } }