FIX: Addressed some crashes when running on an Android device. (#115)

FIX: Weird styling on inputs #68
This commit is contained in:
Marcos Rodriguez Vélez 2018-11-01 15:44:39 -04:00 committed by Igor Korsakov
parent 6dea72553f
commit d913934c9e
17 changed files with 211 additions and 219 deletions

View file

@ -7,7 +7,7 @@ import Selftest from './screen/selftest';
import { BlueHeader } from './BlueComponents';
import MockStorage from './MockStorage';
let assert = require('assert');
jest.mock('react-native-qrcode', () => 'Video');
jest.mock('react-native-custom-qr-codes', () => 'Video');
const AsyncStorage = new MockStorage();
jest.setMock('AsyncStorage', AsyncStorage);
jest.useFakeTimers();

View file

@ -267,12 +267,13 @@ export class BlueFormMultiInput extends Component {
<FormInput
{...this.props}
multiline
underlineColorAndroid="transparent"
numberOfLines={4}
inputStyle={{
width: width - 40,
color: BlueApp.settings.foregroundColor,
height: 120,
fontSize: (isIpad && 10) || ((is.iphone8() && 12) || 14),
// fontSize: (isIpad && 10) || ((is.iphone8() && 12) || 14),
}}
containerStyle={{
marginTop: 5,
@ -361,7 +362,7 @@ export class BlueHeaderDefaultSub extends Component {
>
<View style={stylesBlueIcon.box}>
<View style={stylesBlueIcon.ballTransparrent}>
<Icon name="times" size={16} type="font-awesome" color={BlueApp.settings.foregroundColor} />
<Image source={require('./img/close.png')} />
</View>
</View>
</TouchableOpacity>

View file

@ -97,6 +97,7 @@ module.exports = {
from: 'Input',
to: 'Output',
copy: 'Copy',
transaction_details: 'Transaction details',
},
},
send: {

View file

@ -97,6 +97,7 @@ module.exports = {
from: 'De',
to: 'A',
copy: 'Copiar',
transaction_details: 'Detalles de la transacción',
},
},
send: {

View file

@ -98,6 +98,7 @@ module.exports = {
from: 'De',
to: 'Para',
copy: 'Copiar',
transaction_details: 'Transaction details',
},
},
send: {

View file

@ -97,6 +97,7 @@ module.exports = {
from: 'De',
to: 'Para',
copy: 'Copiar',
transaction_details: 'Transaction details',
},
},
send: {

View file

@ -96,6 +96,7 @@ module.exports = {
from: 'От',
to: 'Кому',
copy: 'копировать',
transaction_details: 'Transaction details',
},
},
send: {

View file

@ -96,6 +96,7 @@ module.exports = {
from: 'Від',
to: 'Кому',
copy: 'копія',
transaction_details: 'Transaction details',
},
},
send: {

127
package-lock.json generated
View file

@ -1183,7 +1183,7 @@
},
"abstract-leveldown": {
"version": "0.12.3",
"resolved": "http://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.3.tgz",
"resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.3.tgz",
"integrity": "sha1-EWsexcdxDvei1XBnaLvbREC+EHA=",
"requires": {
"xtend": "~3.0.0"
@ -1903,7 +1903,7 @@
},
"auth0-js": {
"version": "7.6.1",
"resolved": "http://registry.npmjs.org/auth0-js/-/auth0-js-7.6.1.tgz",
"resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-7.6.1.tgz",
"integrity": "sha1-W66oYDEzuxQ70sMntVpX2nr9+Xw=",
"dev": true,
"requires": {
@ -3133,7 +3133,7 @@
},
"bl": {
"version": "0.8.2",
"resolved": "http://registry.npmjs.org/bl/-/bl-0.8.2.tgz",
"resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz",
"integrity": "sha1-yba8oI0bwuoA/Ir7Txpf0eHGbk4=",
"requires": {
"readable-stream": "~1.0.26"
@ -4522,7 +4522,7 @@
},
"es6-promisify": {
"version": "5.0.0",
"resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
"requires": {
"es6-promise": "^4.0.3"
@ -4793,7 +4793,7 @@
},
"eslint-plugin-node": {
"version": "6.0.1",
"resolved": "http://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz",
"resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz",
"integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==",
"dev": true,
"requires": {
@ -4868,7 +4868,7 @@
},
"espree": {
"version": "3.5.4",
"resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
"resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
"integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
"dev": true,
"requires": {
@ -4926,7 +4926,7 @@
},
"events": {
"version": "1.1.1",
"resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz",
"resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
"integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
},
"evp_bytestokey": {
@ -5471,7 +5471,7 @@
},
"fast-deep-equal": {
"version": "1.1.0",
"resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
},
"fast-diff": {
@ -5521,7 +5521,7 @@
"dependencies": {
"core-js": {
"version": "1.2.7",
"resolved": "http://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
}
}
@ -6356,7 +6356,7 @@
},
"get-stream": {
"version": "3.0.0",
"resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
},
"get-uri": {
@ -6641,7 +6641,7 @@
"dependencies": {
"async": {
"version": "1.5.2",
"resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
"dev": true
}
@ -7251,7 +7251,7 @@
},
"isemail": {
"version": "2.2.1",
"resolved": "http://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz",
"resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz",
"integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=",
"dev": true
},
@ -7868,7 +7868,7 @@
},
"jest-changed-files": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.4.3.tgz",
"integrity": "sha512-83Dh0w1aSkUNFhy5d2dvqWxi/y6weDwVVLU6vmK0cV9VpRxPzhTeGimbsbRDSnEoszhF937M4sDLLeS7Cu/Tmw==",
"dev": true,
"requires": {
@ -7908,7 +7908,7 @@
},
"jest-docblock": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.3.tgz",
"integrity": "sha512-uPKBEAw7YrEMcXueMKZXn/rbMxBiSv48fSqy3uEnmgOlQhSX+lthBqHb1fKWNVmFqAp9E/RsSdBfiV31LbzaOg==",
"dev": true,
"requires": {
@ -7917,7 +7917,7 @@
},
"jest-environment-jsdom": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz",
"integrity": "sha512-FviwfR+VyT3Datf13+ULjIMO5CSeajlayhhYQwpzgunswoaLIPutdbrnfUHEMyJCwvqQFaVtTmn9+Y8WCt6n1w==",
"dev": true,
"requires": {
@ -7928,7 +7928,7 @@
},
"jest-environment-node": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.3.tgz",
"integrity": "sha512-reZl8XF6t/lMEuPWwo9OLfttyC26A5AMgDyEQ6DBgZuyfyeNUzYT8BFo6uxCCP/Av/b7eb9fTi3sIHFPBzmlRA==",
"dev": true,
"requires": {
@ -7992,7 +7992,7 @@
},
"jest-message-util": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.3.tgz",
"integrity": "sha512-iAMeKxhB3Se5xkSjU0NndLLCHtP4n+GtCqV0bISKA5dmOXQfEbdEmYiu2qpnWBDCQdEafNDDU6Q+l6oBMd/+BA==",
"dev": true,
"requires": {
@ -8005,13 +8005,13 @@
},
"jest-mock": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-mock/-/jest-mock-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.4.3.tgz",
"integrity": "sha512-+4R6mH5M1G4NK16CKg9N1DtCaFmuxhcIqF4lQK/Q1CIotqMs/XBemfpDPeVZBFow6iyUNu6EBT9ugdNOTT5o5Q==",
"dev": true
},
"jest-regex-util": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.4.3.tgz",
"integrity": "sha512-LFg1gWr3QinIjb8j833bq7jtQopiwdAs67OGfkPrvy7uNUbVMfTXXcOKXJaeY5GgjobELkKvKENqq1xrUectWg==",
"dev": true
},
@ -8083,7 +8083,7 @@
},
"jest-serializer": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz",
"integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==",
"dev": true
},
@ -8103,7 +8103,7 @@
},
"jest-util": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-util/-/jest-util-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.3.tgz",
"integrity": "sha512-rfDfG8wyC5pDPNdcnAlZgwKnzHvZDu8Td2NJI/jAGKEGxJPYiE4F0ss/gSAkG4778Y23Hvbz+0GMrDJTeo7RjQ==",
"dev": true,
"requires": {
@ -8131,7 +8131,7 @@
},
"jest-worker": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-worker/-/jest-worker-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.4.3.tgz",
"integrity": "sha512-B1ucW4fI8qVAuZmicFxI1R3kr2fNeYJyvIQ1rKcuLYnenFV5K5aMbxFj6J0i00Ju83S8jP2d7Dz14+AvbIHRYQ==",
"dev": true,
"requires": {
@ -8215,7 +8215,7 @@
},
"jest-get-type": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz",
"integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w=="
},
"jest-haste-map": {
@ -8964,7 +8964,7 @@
},
"json5": {
"version": "0.5.1",
"resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
"integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
},
"jsonfile": {
@ -9016,7 +9016,7 @@
},
"isemail": {
"version": "1.2.0",
"resolved": "http://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz",
"resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz",
"integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=",
"dev": true
},
@ -9269,7 +9269,7 @@
},
"semver": {
"version": "2.3.2",
"resolved": "http://registry.npmjs.org/semver/-/semver-2.3.2.tgz",
"resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz",
"integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI="
},
"string_decoder": {
@ -9355,7 +9355,7 @@
},
"lodash.isempty": {
"version": "4.4.0",
"resolved": "http://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz",
"resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz",
"integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4="
},
"lodash.isinteger": {
@ -9492,7 +9492,7 @@
},
"lottie-react-native": {
"version": "2.5.0",
"resolved": "http://registry.npmjs.org/lottie-react-native/-/lottie-react-native-2.5.0.tgz",
"resolved": "https://registry.npmjs.org/lottie-react-native/-/lottie-react-native-2.5.0.tgz",
"integrity": "sha1-BxG4s0vsd0FVLCS3Hv09TKs0dXE=",
"requires": {
"invariant": "^2.2.2",
@ -9679,7 +9679,7 @@
},
"media-typer": {
"version": "0.3.0",
"resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
"dev": true
},
@ -9864,7 +9864,7 @@
"dependencies": {
"jest-docblock": {
"version": "22.4.0",
"resolved": "http://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.0.tgz",
"resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.0.tgz",
"integrity": "sha512-lDY7GZ+/CJb02oULYLBDj7Hs5shBhVpDYpIm8LUyqw9X2J22QRsM19gmGQwIFqGSJmpc/LRrSYudeSrG510xlQ==",
"requires": {
"detect-newline": "^2.1.0"
@ -9886,12 +9886,12 @@
},
"jest-serializer": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz",
"integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw=="
},
"jest-worker": {
"version": "22.2.2",
"resolved": "http://registry.npmjs.org/jest-worker/-/jest-worker-22.2.2.tgz",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.2.2.tgz",
"integrity": "sha512-ZylDXjrFNt/OP6cUxwJFWwDgazP7hRjtCQbocFHyiwov+04Wm1x5PYzMGNJT53s4nwr0oo9ocYTImS09xOlUnw==",
"requires": {
"merge-stream": "^1.0.1"
@ -9899,17 +9899,17 @@
},
"json5": {
"version": "0.4.0",
"resolved": "http://registry.npmjs.org/json5/-/json5-0.4.0.tgz",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz",
"integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0="
},
"mime-db": {
"version": "1.23.0",
"resolved": "http://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz",
"integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk="
},
"mime-types": {
"version": "2.1.11",
"resolved": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz",
"integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=",
"requires": {
"mime-db": "~1.23.0"
@ -9987,7 +9987,7 @@
"dependencies": {
"jest-serializer": {
"version": "22.4.3",
"resolved": "http://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz",
"resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz",
"integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw=="
}
}
@ -10519,7 +10519,7 @@
},
"npmlog": {
"version": "2.0.4",
"resolved": "http://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
"integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=",
"requires": {
"ansi": "~0.3.1",
@ -11044,7 +11044,7 @@
},
"pify": {
"version": "2.3.0",
"resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
},
"pinkie": {
@ -11189,7 +11189,7 @@
},
"kind-of": {
"version": "1.1.0",
"resolved": "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
"integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ="
}
}
@ -11558,11 +11558,6 @@
"bitcoin-ops": "^1.3.0"
}
},
"qr.js": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/qr.js/-/qr.js-0.0.0.tgz",
"integrity": "sha1-ys6GOG9ZoNuAUPqQ2baw6IoeNk8="
},
"qrcode-terminal": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
@ -11960,7 +11955,7 @@
},
"react-native-elements": {
"version": "0.19.1",
"resolved": "http://registry.npmjs.org/react-native-elements/-/react-native-elements-0.19.1.tgz",
"resolved": "https://registry.npmjs.org/react-native-elements/-/react-native-elements-0.19.1.tgz",
"integrity": "sha1-+Stp2GShUCFdAfgf48UqnK2oPkU=",
"requires": {
"lodash.isempty": "^4.4.0",
@ -12009,7 +12004,7 @@
},
"react-native-maps": {
"version": "0.21.0",
"resolved": "http://registry.npmjs.org/react-native-maps/-/react-native-maps-0.21.0.tgz",
"resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-0.21.0.tgz",
"integrity": "sha512-FkCCV1AyaT5ut5ZTKNIdFWBxRUXZovGTydy7U4Cyifj2dv0Q3Sv21B0Myj+aoGhJhvBJzxsU25dDGQN3TP7b/Q==",
"requires": {
"babel-plugin-module-resolver": "^2.3.0",
@ -12117,16 +12112,6 @@
"react-native-animatable": "^1.2.4"
}
},
"react-native-qrcode": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/react-native-qrcode/-/react-native-qrcode-0.2.7.tgz",
"integrity": "sha512-Xvc3T1h95zA9tbRxiMkKethDYpPwKcqDPIHe9Cxt7pM+lma9dSzd6yXGGLGeZmFU/SmHMK+4bTnDltUv1s4Jnw==",
"requires": {
"create-react-class": "^15.6.0",
"prop-types": "^15.5.10",
"qr.js": "0.0.0"
}
},
"react-native-randombytes": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/react-native-randombytes/-/react-native-randombytes-3.5.1.tgz",
@ -12284,7 +12269,7 @@
},
"react-native-tab-view": {
"version": "0.0.77",
"resolved": "http://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.77.tgz",
"resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.77.tgz",
"integrity": "sha512-9vjD4Ly1Zlum1Y4g23ODpi/F3gYIUIsKWrsZO/Oh5cuX1eiB1DRVn11nY1z+j/hsQfhfyW6nDlmySyDvYQvYCA==",
"requires": {
"prop-types": "^15.6.0"
@ -12595,7 +12580,7 @@
},
"regexpp": {
"version": "1.1.0",
"resolved": "http://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
"integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
"dev": true
},
@ -12611,7 +12596,7 @@
},
"regjsgen": {
"version": "0.2.0",
"resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
"integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc="
},
"regjsparser": {
@ -12955,7 +12940,7 @@
},
"safe-regex": {
"version": "1.1.0",
"resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
"requires": {
"ret": "~0.1.10"
@ -13314,7 +13299,7 @@
},
"serialize-error": {
"version": "2.1.0",
"resolved": "http://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
"resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
"integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go="
},
"serve-static": {
@ -13434,7 +13419,7 @@
},
"xmlbuilder": {
"version": "8.2.2",
"resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
"integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M="
}
}
@ -13493,7 +13478,7 @@
},
"slugid": {
"version": "1.1.0",
"resolved": "http://registry.npmjs.org/slugid/-/slugid-1.1.0.tgz",
"resolved": "https://registry.npmjs.org/slugid/-/slugid-1.1.0.tgz",
"integrity": "sha1-4J8AiZwJ9acFjtw23UnwRv1QqCo=",
"dev": true,
"requires": {
@ -13502,7 +13487,7 @@
"dependencies": {
"uuid": {
"version": "2.0.3",
"resolved": "http://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
"integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
"dev": true
}
@ -13930,7 +13915,7 @@
},
"eslint-plugin-import": {
"version": "2.9.0",
"resolved": "http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz",
"integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=",
"dev": true,
"requires": {
@ -13981,7 +13966,7 @@
},
"eslint-plugin-react": {
"version": "7.7.0",
"resolved": "http://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz",
"integrity": "sha512-KC7Snr4YsWZD5flu6A5c0AcIZidzW3Exbqp7OT67OaD2AppJtlBr/GuPrW/vaQM/yfZotEvKAdrxrO+v8vwYJA==",
"dev": true,
"requires": {
@ -14222,7 +14207,7 @@
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "^2.0.0"
@ -14235,7 +14220,7 @@
},
"strip-eof": {
"version": "1.0.0",
"resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
},
"strip-json-comments": {
@ -15286,7 +15271,7 @@
"dependencies": {
"uuid": {
"version": "3.0.1",
"resolved": "http://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
"integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE="
}
}
@ -15426,7 +15411,7 @@
},
"xmlbuilder": {
"version": "8.2.2",
"resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
"integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=",
"dev": true
}
@ -15439,7 +15424,7 @@
},
"xmlbuilder": {
"version": "4.0.0",
"resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz",
"integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=",
"requires": {
"lodash": "^3.5.0"

View file

@ -69,7 +69,6 @@
"react-native-level-fs": "^3.0.0",
"react-native-material-dropdown": "^0.11.1",
"react-native-modal": "^6.5.0",
"react-native-qrcode": "^0.2.7",
"react-native-snap-carousel": "^3.7.4",
"react-navigation": "^2.17.0",
"react-test-render": "^1.1.1",

View file

@ -89,11 +89,10 @@ export default class ReceiveDetails extends Component {
<QRCode
content={this.state.address}
size={(is.ipad() && 300) || 300}
bgColor={BlueApp.settings.foregroundColor}
fgColor={BlueApp.settings.brandingColor}
color={BlueApp.settings.foregroundColor}
backgroundColor={BlueApp.settings.brandingColor}
logo={require('../../img/qr-code.png')}
/>
<TouchableOpacity onPress={this.copyToClipboard}>
<Animated.Text style={styles.address} numberOfLines={0}>
{this.state.addressText}

View file

@ -124,7 +124,9 @@ export default class Confirm extends Component {
})
}
>
<Text style={{ color: '#0c2550', fontSize: 15, fontWeight: '500', alignSelf: 'center' }}>{loc.transactions.details.title}</Text>
<Text style={{ color: '#0c2550', fontSize: 15, fontWeight: '500', alignSelf: 'center' }}>
{loc.transactions.details.transaction_details}
</Text>
</TouchableOpacity>
</BlueCard>
</SafeBlueArea>

View file

@ -100,6 +100,7 @@ export default class WalletsAdd extends Component {
}}
style={{ flex: 1, marginHorizontal: 8, color: '#81868e' }}
editable={!this.state.isLoading}
underlineColorAndroid="transparent"
/>
</View>
<BlueFormLabel>{loc.wallets.add.wallet_type}</BlueFormLabel>

View file

@ -1,7 +1,7 @@
/* global alert */
import React, { Component } from 'react';
import { ActivityIndicator, View, Button, Text, TextInput, Alert } from 'react-native';
import { BlueButton, SafeBlueArea, BlueCard, BlueFormInputAddress, BlueSpacing20, BlueNavigationStyle } from '../../BlueComponents';
import { BlueButton, SafeBlueArea, BlueCard, BlueSpacing20, BlueNavigationStyle } from '../../BlueComponents';
import PropTypes from 'prop-types';
import { LightningCustodianWallet } from '../../class/lightning-custodian-wallet';
let EV = require('../../events');
@ -77,9 +77,12 @@ export default class WalletDetails extends Component {
{(() => {
if (this.state.wallet.getAddress()) {
return (
<View>
<BlueFormInputAddress value={this.state.wallet.getAddress()} editable />
</View>
<React.Fragment>
<Text style={{ color: '#0c2550', fontWeight: '500', fontSize: 14, marginVertical: 12 }}>
{loc.wallets.details.address.toLowerCase()}
</Text>
<Text style={{ color: '#81868e', fontWeight: '500', fontSize: 14 }}>{this.state.wallet.getAddress()}</Text>
</React.Fragment>
);
}
})()}
@ -154,11 +157,11 @@ export default class WalletDetails extends Component {
<BlueSpacing20 />
<Button
title={loc.wallets.details.delete}
title={loc.wallets.details.title}
color="#d0021b"
onPress={() =>
Alert.alert(
'Alert',
loc.wallets.details.delete + ' ' + loc.wallets.details.title,
loc.wallets.details.are_you_sure,
[
{

View file

@ -1,6 +1,6 @@
import React, { Component } from 'react';
import { Dimensions, ActivityIndicator, View } from 'react-native';
import QRCode from 'react-native-qrcode';
import { QRCode } from 'react-native-custom-qr-codes';
import { BlueSpacing40, SafeBlueArea, BlueCard, BlueText, BlueHeaderDefaultSub } from '../../BlueComponents';
import PropTypes from 'prop-types';
/** @type {AppStorage} */
@ -92,10 +92,11 @@ export default class WalletExport extends Component {
}
})()}
<QRCode
value={this.state.wallet.getSecret()}
content={this.state.wallet.getSecret()}
size={this.determineSize()}
bgColor={BlueApp.settings.foregroundColor}
fgColor={BlueApp.settings.brandingColor}
color={BlueApp.settings.foregroundColor}
backgroundColor={BlueApp.settings.brandingColor}
logo={require('../../img/qr-code.png')}
/>
<BlueText style={{ marginVertical: 8 }}>{this.state.wallet.getSecret()}</BlueText>
</BlueCard>

View file

@ -333,7 +333,6 @@ export default class WalletsList extends Component {
}}
/>
</BlueList>
); })()}
</ScrollView>
</SafeBlueArea>
);

View file

@ -20,7 +20,6 @@ import {
BlueTransactionOffchainIcon,
BlueSendButtonIcon,
BlueReceiveButtonIcon,
BlueList,
BlueListItem,
} from '../../BlueComponents';
import { Icon } from 'react-native-elements';
@ -286,7 +285,7 @@ export default class WalletTransactions extends Component {
return '';
}
_keyExtractor = (item, index) => index.toString();
_keyExtractor = (_item, index) => index.toString();
renderListHeaderComponent = () => {
return (
@ -335,140 +334,137 @@ export default class WalletTransactions extends Component {
);
}
})()}
<BlueList>
<FlatList
style={{ flex: 1 }}
ListHeaderComponent={this.renderListHeaderComponent}
ListEmptyComponent={
<View style={{ top: 50, height: 100 }}>
<FlatList
ListHeaderComponent={this.renderListHeaderComponent}
ListEmptyComponent={
<View style={{ top: 50, height: 100 }}>
<Text
style={{
fontSize: 18,
color: '#9aa0aa',
textAlign: 'center',
}}
>
{(this.isLightning() &&
'Lightning wallet should be used for your daily\ntransactions. Fees are unfairly cheap and\nspeed is blazing fast.') ||
loc.wallets.list.empty_txs1}
</Text>
<Text
style={{
fontSize: 18,
color: '#9aa0aa',
textAlign: 'center',
}}
>
{(this.isLightning() && '\nTo start using it tap on "manage funds"\nand topup your balance') ||
loc.wallets.list.empty_txs2}
</Text>
<Text />
<Text />
{!this.isLightning() && (
<Text
style={{
fontSize: 18,
color: '#9aa0aa',
textAlign: 'center',
textDecorationLine: 'underline',
}}
>
{(this.isLightning() &&
'Lightning wallet should be used for your daily\ntransactions. Fees are unfairly cheap and\nspeed is blazing fast.') ||
loc.wallets.list.empty_txs1}
</Text>
<Text
style={{
fontSize: 18,
color: '#9aa0aa',
textAlign: 'center',
}}
>
{(this.isLightning() && '\nTo start using it tap on "manage funds"\nand topup your balance') ||
loc.wallets.list.empty_txs2}
</Text>
<Text />
<Text />
{!this.isLightning() && (
<Text
style={{
fontSize: 18,
color: '#9aa0aa',
textAlign: 'center',
textDecorationLine: 'underline',
}}
onPress={() =>
this.props.navigation.navigate('BuyBitcoin', {
address: this.state.wallet.getAddress(),
secret: this.state.wallet.getSecret(),
})
}
>
{loc.wallets.list.tap_here_to_buy}
</Text>
)}
</View>
}
refreshControl={<RefreshControl onRefresh={() => this.refreshTransactions()} refreshing={this.state.isTransactionsLoading} />}
data={this.state.dataSource}
extraData={this.state.dataSource}
keyExtractor={this._keyExtractor}
renderItem={rowData => {
return (
<BlueListItem
avatar={(() => {
// is it lightning refill tx?
if (rowData.item.category === 'receive' && rowData.item.confirmations < 3) {
return (
<View style={{ width: 25 }}>
<BlueTransactionPendingIcon />
</View>
);
}
if (rowData.item.type && rowData.item.type === 'bitcoind_tx') {
return (
<View style={{ width: 25 }}>
<BlueTransactionOnchainIcon />
</View>
);
}
if (rowData.item.type === 'paid_invoice') {
// is it lightning offchain payment?
return (
<View style={{ width: 25 }}>
<BlueTransactionOffchainIcon />
</View>
);
}
if (!rowData.item.confirmations) {
return (
<View style={{ width: 25 }}>
<BlueTransactionPendingIcon />
</View>
);
} else if (rowData.item.value < 0) {
return (
<View style={{ width: 25 }}>
<BlueTransactionOutgoingIcon />
</View>
);
} else {
return (
<View style={{ width: 25 }}>
<BlueTransactionIncommingIcon />
</View>
);
}
})()}
title={loc.transactionTimeToReadable(rowData.item.received)}
subtitle={
(rowData.item.confirmations < 7 ? loc.transactions.list.conf + ': ' + rowData.item.confirmations + ' ' : '') +
this.txMemo(rowData.item.hash) +
(rowData.item.memo || '')
onPress={() =>
this.props.navigation.navigate('BuyBitcoin', {
address: this.state.wallet.getAddress(),
secret: this.state.wallet.getSecret(),
})
}
onPress={() => {
if (rowData.item.hash) {
navigate('TransactionDetails', {
hash: rowData.item.hash,
});
}
}}
badge={{
value: 3,
textStyle: { color: 'orange' },
containerStyle: { marginTop: 0 },
}}
hideChevron
rightTitle={new BigNumber((rowData.item.value && rowData.item.value) || 0).dividedBy(100000000).toString()}
rightTitleStyle={{
fontWeight: '600',
fontSize: 16,
color: rowData.item.value / 100000000 < 0 ? BlueApp.settings.foregroundColor : '#37c0a1',
}}
/>
);
}}
/>
</BlueList>
>
{loc.wallets.list.tap_here_to_buy}
</Text>
)}
</View>
}
refreshControl={<RefreshControl onRefresh={() => this.refreshTransactions()} refreshing={this.state.isTransactionsLoading} />}
data={this.state.dataSource}
extraData={this.state.dataSource}
keyExtractor={this._keyExtractor}
renderItem={rowData => {
return (
<BlueListItem
avatar={(() => {
// is it lightning refill tx?
if (rowData.item.category === 'receive' && rowData.item.confirmations < 3) {
return (
<View style={{ width: 25 }}>
<BlueTransactionPendingIcon />
</View>
);
}
if (rowData.item.type && rowData.item.type === 'bitcoind_tx') {
return (
<View style={{ width: 25 }}>
<BlueTransactionOnchainIcon />
</View>
);
}
if (rowData.item.type === 'paid_invoice') {
// is it lightning offchain payment?
return (
<View style={{ width: 25 }}>
<BlueTransactionOffchainIcon />
</View>
);
}
if (!rowData.item.confirmations) {
return (
<View style={{ width: 25 }}>
<BlueTransactionPendingIcon />
</View>
);
} else if (rowData.item.value < 0) {
return (
<View style={{ width: 25 }}>
<BlueTransactionOutgoingIcon />
</View>
);
} else {
return (
<View style={{ width: 25 }}>
<BlueTransactionIncommingIcon />
</View>
);
}
})()}
title={loc.transactionTimeToReadable(rowData.item.received)}
subtitle={
(rowData.item.confirmations < 7 ? loc.transactions.list.conf + ': ' + rowData.item.confirmations + ' ' : '') +
this.txMemo(rowData.item.hash) +
(rowData.item.memo || '')
}
onPress={() => {
if (rowData.item.hash) {
navigate('TransactionDetails', {
hash: rowData.item.hash,
});
}
}}
badge={{
value: 3,
textStyle: { color: 'orange' },
containerStyle: { marginTop: 0 },
}}
hideChevron
rightTitle={new BigNumber((rowData.item.value && rowData.item.value) || 0).dividedBy(100000000).toString()}
rightTitleStyle={{
fontWeight: '600',
fontSize: 16,
color: rowData.item.value / 100000000 < 0 ? BlueApp.settings.foregroundColor : '#37c0a1',
}}
/>
);
}}
/>
</View>
<View
style={{