diff --git a/app.json b/app.json
index 8540784..f83d1b5 100644
--- a/app.json
+++ b/app.json
@@ -7,7 +7,7 @@
"platforms": [
"ios"
],
- "version": "0.2.2",
+ "version": "0.2.3",
"orientation": "portrait",
"icon": "./src/images/icon-abacus.png",
"splash": {
@@ -20,7 +20,7 @@
"url": "https://u.expo.dev/292ed6dc-804c-4444-95f5-fa5d76d9913b"
},
"ios": {
- "buildNumber": "0.2.2",
+ "buildNumber": "0.2.3",
"bundleIdentifier": "abacus.ios.app",
"infoPlist": {
"NSFaceIDUsageDescription": "Abacus use Authentication with TouchId or FaceID"
diff --git a/package-lock.json b/package-lock.json
index 244e2ba..598ff79 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "abacus",
- "version": "0.2.2",
+ "version": "0.2.3",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "abacus",
- "version": "0.2.2",
+ "version": "0.2.3",
"dependencies": {
"@expo/vector-icons": "^13.0.0",
"@react-native-async-storage/async-storage": "~1.17.3",
@@ -26,7 +26,8 @@
"expo-application": "~4.2.2",
"expo-asset": "~8.6.1",
"expo-auth-session": "~3.7.1",
- "expo-dev-client": "~1.1.1",
+ "expo-blur": "~11.2.0",
+ "expo-dev-client": "~1.2.1",
"expo-font": "~10.2.0",
"expo-haptics": "~11.3.0",
"expo-linear-gradient": "~11.4.0",
@@ -35,7 +36,7 @@
"expo-secure-store": "~11.3.0",
"expo-splash-screen": "~0.16.1",
"expo-status-bar": "~1.4.0",
- "expo-updates": "~0.14.3",
+ "expo-updates": "~0.14.4",
"expo-web-browser": "~11.0.0",
"globally": "^0.0.0",
"lodash": "^4.17.21",
@@ -2540,9 +2541,9 @@
}
},
"node_modules/@expo/config-plugins": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.0.tgz",
- "integrity": "sha512-Bgjgv64f/XqpXXKPAoGhc5dbmuJB8eOBkhV6FMI/RMP06HfL7EQvXgcBBoJThLAZVyd29XikFgaCvABt/NavxQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.1.tgz",
+ "integrity": "sha512-1OfnsOrfeSkB0VZfT01UjQ5Uq6p+yYbq8yNkj0e99K/6NLHpyvIxj+5tZIV0nQXgkOcqBIABL2uA7lwB8CkaBQ==",
"dependencies": {
"@expo/config-types": "^46.0.0",
"@expo/json-file": "8.2.36",
@@ -13797,6 +13798,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/expo-blur": {
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-11.2.0.tgz",
+ "integrity": "sha512-bj16aFGqsp7amJZiLvZt2nuwpKVJNCRcf/1c6NaCNrXCnXt/J8MloachNV0VoiiNKfKDV6EJTn+Jwo1sctchCA==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
"node_modules/expo-constants": {
"version": "13.2.3",
"resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.2.3.tgz",
@@ -13818,14 +13827,14 @@
}
},
"node_modules/expo-dev-client": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-1.1.1.tgz",
- "integrity": "sha512-62/QX+tfdGfth4XKtE0zYUHPlW1sEWbY+aFLk0Wt3xZF0Y2tb1I6gAU68X3nSKNueZDPOAgjfG2uyyyOEgq9mw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-1.2.1.tgz",
+ "integrity": "sha512-LKFfReJbUDF3r3cSjt4PLmykKsfMonT1kdCc1Cepz82/btMzL/RASnRYjk7eGd+fcq06lethEQ+w2MLo/70hDQ==",
"dependencies": {
"@expo/config-plugins": "~5.0.0",
- "expo-dev-launcher": "1.1.1",
- "expo-dev-menu": "1.1.1",
- "expo-dev-menu-interface": "0.7.1",
+ "expo-dev-launcher": "1.2.1",
+ "expo-dev-menu": "1.2.1",
+ "expo-dev-menu-interface": "0.7.2",
"expo-manifests": "~0.3.0",
"expo-updates-interface": "~0.7.0"
},
@@ -13834,12 +13843,12 @@
}
},
"node_modules/expo-dev-launcher": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-1.1.1.tgz",
- "integrity": "sha512-bZyhcVKI3r+d46wx3CfF5mG3fn01/mpUeDEcqfAOp9lEV0/NijbBiA+WzdHyK+mGf8z3igI7g7BuOyCYGLo9nw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-1.2.1.tgz",
+ "integrity": "sha512-q1BBnC69mTlbpHpiaezoHJ5rQgkvdvl6NH9rNSrg0tUfNRMNLDhjHwQWSpDGGIww7rVJ354ysjQp8E35OKOEJw==",
"dependencies": {
"@expo/config-plugins": "~5.0.0",
- "expo-dev-menu": "1.1.1",
+ "expo-dev-menu": "1.2.1",
"resolve-from": "^5.0.0",
"semver": "^7.3.5"
},
@@ -13862,12 +13871,12 @@
}
},
"node_modules/expo-dev-menu": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-1.1.1.tgz",
- "integrity": "sha512-13YOkWmhvQVHuKRJsPIpdo2yWxr+mPneENu5VHsBvAL9WKVh+4KwAMJ35YM7LAoV0VCxxZmcehIQ30koC54DZg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-1.2.1.tgz",
+ "integrity": "sha512-QurTAJitgIIXQKsZCEW+aY4y3RZFFR0ygP17p1odeoiCwsxKnoIkksKGOL46sdcLzONiVGZBu6z58Mg2JymfIQ==",
"dependencies": {
"@expo/config-plugins": "~5.0.0",
- "expo-dev-menu-interface": "0.7.1",
+ "expo-dev-menu-interface": "0.7.2",
"semver": "^7.3.5"
},
"peerDependencies": {
@@ -13875,9 +13884,9 @@
}
},
"node_modules/expo-dev-menu-interface": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-0.7.1.tgz",
- "integrity": "sha512-EeG6ymydrr/DWy83wQY4uSToVAVLYeOIXc8UH00cpWqYTQRUK7BAuloEItW9/nOrRXJDU6nalSOje5n8kC/BgA==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-0.7.2.tgz",
+ "integrity": "sha512-Ym0IFsgBj9bdInjRcxv6xfczdTCKfPKUAsLZ1sD5twpOs7oBViMnTC0+KTGkkYHG4EapWbu9yApPmbV3N10Zcg==",
"peerDependencies": {
"expo": "*"
}
@@ -14236,14 +14245,14 @@
"integrity": "sha512-nY6GuvoS/U5XdhfBNmvXGRoGzIXywXpSZs2wdiP+FbS79P9UWyEqzgARrBTF+6pQxUVMs6/vdffxRpwhjwYPug=="
},
"node_modules/expo-updates": {
- "version": "0.14.3",
- "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.14.3.tgz",
- "integrity": "sha512-WmtwHv3xiqlHDVseTANjj0L0PbMd5v+rcud0I5E5Vd1ou14ADgfCrr9c3qheDyj3TKqpA/9+JY9Ls3iq8G1SjQ==",
+ "version": "0.14.4",
+ "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.14.4.tgz",
+ "integrity": "sha512-+TbhUmsbjkOMHR/fhZEtcIf7xa8d/UbcvicIAr6jD9FfluBoRatB2sXiswBEohQeQov4P4XlfBKyNE5QTpu0Xw==",
"dependencies": {
"@expo/code-signing-certificates": "0.0.2",
- "@expo/config": "~7.0.0",
- "@expo/config-plugins": "~5.0.0",
- "@expo/metro-config": "~0.3.18",
+ "@expo/config": "~7.0.1",
+ "@expo/config-plugins": "~5.0.1",
+ "@expo/metro-config": "~0.3.19",
"arg": "4.1.0",
"expo-eas-client": "~0.3.0",
"expo-manifests": "~0.3.0",
@@ -14268,6 +14277,62 @@
"expo": "*"
}
},
+ "node_modules/expo-updates/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/expo-updates/node_modules/@expo/config": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.1.tgz",
+ "integrity": "sha512-4lu0wr45XXJ2MXiLAm2+fmOyy/jjqF3NuDm92fO6nuulRzEEvTP4w3vsibJ690rT81ohtvhpruKhkRs0wSjKWA==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.1",
+ "@expo/config-types": "^46.0.1",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ }
+ },
+ "node_modules/expo-updates/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/expo-updates/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/expo-web-browser": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-11.0.0.tgz",
@@ -36325,9 +36390,9 @@
}
},
"@expo/config-plugins": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.0.tgz",
- "integrity": "sha512-Bgjgv64f/XqpXXKPAoGhc5dbmuJB8eOBkhV6FMI/RMP06HfL7EQvXgcBBoJThLAZVyd29XikFgaCvABt/NavxQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.1.tgz",
+ "integrity": "sha512-1OfnsOrfeSkB0VZfT01UjQ5Uq6p+yYbq8yNkj0e99K/6NLHpyvIxj+5tZIV0nQXgkOcqBIABL2uA7lwB8CkaBQ==",
"requires": {
"@expo/config-types": "^46.0.0",
"@expo/json-file": "8.2.36",
@@ -44956,6 +45021,12 @@
}
}
},
+ "expo-blur": {
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-11.2.0.tgz",
+ "integrity": "sha512-bj16aFGqsp7amJZiLvZt2nuwpKVJNCRcf/1c6NaCNrXCnXt/J8MloachNV0VoiiNKfKDV6EJTn+Jwo1sctchCA==",
+ "requires": {}
+ },
"expo-constants": {
"version": "13.2.3",
"resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.2.3.tgz",
@@ -44972,25 +45043,25 @@
"requires": {}
},
"expo-dev-client": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-1.1.1.tgz",
- "integrity": "sha512-62/QX+tfdGfth4XKtE0zYUHPlW1sEWbY+aFLk0Wt3xZF0Y2tb1I6gAU68X3nSKNueZDPOAgjfG2uyyyOEgq9mw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-1.2.1.tgz",
+ "integrity": "sha512-LKFfReJbUDF3r3cSjt4PLmykKsfMonT1kdCc1Cepz82/btMzL/RASnRYjk7eGd+fcq06lethEQ+w2MLo/70hDQ==",
"requires": {
"@expo/config-plugins": "~5.0.0",
- "expo-dev-launcher": "1.1.1",
- "expo-dev-menu": "1.1.1",
- "expo-dev-menu-interface": "0.7.1",
+ "expo-dev-launcher": "1.2.1",
+ "expo-dev-menu": "1.2.1",
+ "expo-dev-menu-interface": "0.7.2",
"expo-manifests": "~0.3.0",
"expo-updates-interface": "~0.7.0"
}
},
"expo-dev-launcher": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-1.1.1.tgz",
- "integrity": "sha512-bZyhcVKI3r+d46wx3CfF5mG3fn01/mpUeDEcqfAOp9lEV0/NijbBiA+WzdHyK+mGf8z3igI7g7BuOyCYGLo9nw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-1.2.1.tgz",
+ "integrity": "sha512-q1BBnC69mTlbpHpiaezoHJ5rQgkvdvl6NH9rNSrg0tUfNRMNLDhjHwQWSpDGGIww7rVJ354ysjQp8E35OKOEJw==",
"requires": {
"@expo/config-plugins": "~5.0.0",
- "expo-dev-menu": "1.1.1",
+ "expo-dev-menu": "1.2.1",
"resolve-from": "^5.0.0",
"semver": "^7.3.5"
},
@@ -45006,12 +45077,12 @@
}
},
"expo-dev-menu": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-1.1.1.tgz",
- "integrity": "sha512-13YOkWmhvQVHuKRJsPIpdo2yWxr+mPneENu5VHsBvAL9WKVh+4KwAMJ35YM7LAoV0VCxxZmcehIQ30koC54DZg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-1.2.1.tgz",
+ "integrity": "sha512-QurTAJitgIIXQKsZCEW+aY4y3RZFFR0ygP17p1odeoiCwsxKnoIkksKGOL46sdcLzONiVGZBu6z58Mg2JymfIQ==",
"requires": {
"@expo/config-plugins": "~5.0.0",
- "expo-dev-menu-interface": "0.7.1",
+ "expo-dev-menu-interface": "0.7.2",
"semver": "^7.3.5"
},
"dependencies": {
@@ -45026,9 +45097,9 @@
}
},
"expo-dev-menu-interface": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-0.7.1.tgz",
- "integrity": "sha512-EeG6ymydrr/DWy83wQY4uSToVAVLYeOIXc8UH00cpWqYTQRUK7BAuloEItW9/nOrRXJDU6nalSOje5n8kC/BgA==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-0.7.2.tgz",
+ "integrity": "sha512-Ym0IFsgBj9bdInjRcxv6xfczdTCKfPKUAsLZ1sD5twpOs7oBViMnTC0+KTGkkYHG4EapWbu9yApPmbV3N10Zcg==",
"requires": {}
},
"expo-eas-client": {
@@ -45285,14 +45356,14 @@
"integrity": "sha512-nY6GuvoS/U5XdhfBNmvXGRoGzIXywXpSZs2wdiP+FbS79P9UWyEqzgARrBTF+6pQxUVMs6/vdffxRpwhjwYPug=="
},
"expo-updates": {
- "version": "0.14.3",
- "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.14.3.tgz",
- "integrity": "sha512-WmtwHv3xiqlHDVseTANjj0L0PbMd5v+rcud0I5E5Vd1ou14ADgfCrr9c3qheDyj3TKqpA/9+JY9Ls3iq8G1SjQ==",
+ "version": "0.14.4",
+ "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.14.4.tgz",
+ "integrity": "sha512-+TbhUmsbjkOMHR/fhZEtcIf7xa8d/UbcvicIAr6jD9FfluBoRatB2sXiswBEohQeQov4P4XlfBKyNE5QTpu0Xw==",
"requires": {
"@expo/code-signing-certificates": "0.0.2",
- "@expo/config": "~7.0.0",
- "@expo/config-plugins": "~5.0.0",
- "@expo/metro-config": "~0.3.18",
+ "@expo/config": "~7.0.1",
+ "@expo/config-plugins": "~5.0.1",
+ "@expo/metro-config": "~0.3.19",
"arg": "4.1.0",
"expo-eas-client": "~0.3.0",
"expo-manifests": "~0.3.0",
@@ -45301,6 +45372,52 @@
"fbemitter": "^3.0.0",
"resolve-from": "^5.0.0",
"uuid": "^3.4.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@expo/config": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.1.tgz",
+ "integrity": "sha512-4lu0wr45XXJ2MXiLAm2+fmOyy/jjqF3NuDm92fO6nuulRzEEvTP4w3vsibJ690rT81ohtvhpruKhkRs0wSjKWA==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.1",
+ "@expo/config-types": "^46.0.1",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
+ }
}
},
"expo-updates-interface": {
diff --git a/package.json b/package.json
index 09b5159..721f0c9 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "abacus",
"homepage": "https://github.com/victorbalssa/abacus",
- "version": "0.2.2",
+ "version": "0.2.3",
"private": true,
"jest": {
"preset": "jest-expo",
@@ -40,7 +40,7 @@
"expo-secure-store": "~11.3.0",
"expo-splash-screen": "~0.16.1",
"expo-status-bar": "~1.4.0",
- "expo-updates": "~0.14.3",
+ "expo-updates": "~0.14.4",
"expo-web-browser": "~11.0.0",
"globally": "^0.0.0",
"lodash": "^4.17.21",
@@ -67,8 +67,9 @@
"slash": "^3.0.0",
"victory-native": "^36.3.1",
"expo-local-authentication": "~12.3.0",
- "expo-dev-client": "~1.1.1",
- "expo-application": "~4.2.2"
+ "expo-dev-client": "~1.2.1",
+ "expo-application": "~4.2.2",
+ "expo-blur": "~11.2.0"
},
"devDependencies": {
"@babel/core": "^7.18.6",
diff --git a/src/components/Chart.tsx b/src/components/Chart.tsx
index 79d919e..84f9a5d 100644
--- a/src/components/Chart.tsx
+++ b/src/components/Chart.tsx
@@ -1,52 +1,37 @@
import React from 'react';
-import { RefreshControl } from 'react-native';
import {
- Box,
ScrollView,
} from 'native-base';
+import { View } from 'react-native';
import AssetsHistoryChart from './Charts/AssetsHistoryChart';
import RangeTitle from './UI/RangeTitle';
-import colors from '../constants/colors';
const Chart = ({
- accounts,
loading,
+ accounts,
fetchData,
filterData,
start,
end,
- enableScroll,
- disableScroll,
- scrollEnabled,
+ backendURL,
}) => (
<>
-
-
- )}
- scrollEnabled={scrollEnabled}
- >
-
-
-
+
+
+
+
>
);
diff --git a/src/components/Charts/AssetsHistoryChart.tsx b/src/components/Charts/AssetsHistoryChart.tsx
index 822c03f..439cebf 100644
--- a/src/components/Charts/AssetsHistoryChart.tsx
+++ b/src/components/Charts/AssetsHistoryChart.tsx
@@ -1,11 +1,11 @@
-import React, { useState } from 'react';
+import React, { useMemo, useState } from 'react';
import {
Stack,
Text,
VStack,
Checkbox,
HStack,
- Pressable,
+ Pressable, ScrollView, IconButton, Skeleton, View,
} from 'native-base';
import {
VictoryAxis,
@@ -15,6 +15,9 @@ import {
} from 'victory-native';
import { maxBy, minBy } from 'lodash';
import { Line, Circle } from 'react-native-svg';
+import { AntDesign } from '@expo/vector-icons';
+import * as Haptics from 'expo-haptics';
+import * as Linking from 'expo-linking';
import colors from '../../constants/colors';
const CursorPointer = ({
@@ -32,14 +35,50 @@ const Cursor = ({
x, y, minY, maxY, activePoints,
}) => (
<>
+
+
+ {activePoints.map(({
+ y: yPoint, childName, style,
+ }) => {
+ const {
+ data: {
+ stroke,
+ },
+ } = style;
+
+ return (
+
+ {` ${childName} ${(yPoint).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,') || ''}`}
+
+ );
+ })}
+
+
+
+ {`${activePoints.length !== 0 ? new Date(activePoints[0]?.x).toLocaleString('default', {
+ month: 'short',
+ day: 'numeric',
+ year: 'numeric',
+ }) : ' '}`}
+
+
+
{activePoints.map(({
y: yPoint, childName, style,
@@ -49,10 +88,10 @@ const Cursor = ({
stroke,
},
} = style;
- const yMinDisplay = maxY <= 0 ? 0 : 2;
- const yMaxDisplay = minY !== 0 ? 218 : 220;
+ const yMinDisplay = maxY <= 0 ? 10 : 12;
+ const yMaxDisplay = minY !== 0 ? 294 : 296;
const zeroPos = (-((minY / (maxY - minY)) - 1) * (yMaxDisplay - yMinDisplay)) + yMinDisplay;
- const yCursorPoint = (-((yPoint / (maxY - minY)) - 1) * (yMaxDisplay - yMinDisplay)) + yMinDisplay - (zeroPos - yMaxDisplay);
+ const yCursorPoint = ((-((yPoint / (maxY - minY)) - 1) * (yMaxDisplay - yMinDisplay)) + yMinDisplay - (zeroPos - yMaxDisplay)) || 0;
return (
@@ -62,15 +101,14 @@ const Cursor = ({
);
const AssetsHistoryChart = ({
+ loading,
+ fetchData,
start,
end,
accounts,
filterData,
- disableScroll,
- enableScroll,
+ backendURL,
}) => {
- const [points, setPoints] = useState([]);
-
const getTickValues = () => {
const dateArray = [];
const currentDate = new Date(start);
@@ -87,11 +125,13 @@ const AssetsHistoryChart = ({
return (
-
-
- {accounts.map((chart, index) => {
- let value = '';
- if (points.filter((v) => v.childName === chart.label).length) {
- value = points.filter((v) => v.childName === chart.label)[0].y;
- }
-
- return (
- filterData({ index })}
- isDisabled={!chart.skip && accounts.filter((v) => !v.skip).length < 2}
- _disabled={{
- style: {
- opacity: 0.4,
- },
- }}
- >
-
- !v.skip).length < 2}
- isChecked={!chart.skip}
- value={index}
- onChange={() => filterData({ index })}
- />
-
- {` ${chart.label} ${value ? (chart.currency_symbol + value) : ''}`}
-
-
-
- );
- })}
-
- {`${points.length !== 0 ? new Date(points[0]?.x).toLocaleString('default', {
- month: 'short',
- day: 'numeric',
- year: 'numeric',
- }) : ' '}`}
-
-
-
+
+ {accounts.map((chart, index) => (
+ filterData({ index })}
+ isDisabled={!chart.skip && accounts.filter((v) => !v.skip).length < 2}
+ _disabled={{
+ style: {
+ opacity: 0.4,
+ },
+ }}
+ >
+
+ !v.skip).length < 2}
+ isChecked={!chart.skip}
+ value={index}
+ onChange={() => filterData({ index })}
+ />
+
+ {chart.label}
+
+
+
+ ))}
+
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light)}
+ />
+
+ {loading && (
+
+
+
+
+
+ )}
+ {!loading && (
disableScroll()}
- onTouchEnd={() => {
- setPoints([]);
- enableScroll();
- }}
labels={({ datum }) => datum.childName}
labelComponent={(
!v.skip), (c: { maxY: number }) => c.maxY)?.maxY}
- minY={minBy(accounts.filter((v) => !v.skip), (c: { minY: number }) => c.minY)?.minY}
+ maxY={maxBy(accounts.filter((v) => !v.skip), (c: { maxY: number }) => c.maxY)?.maxY || 0}
+ minY={minBy(accounts.filter((v) => !v.skip), (c: { minY: number }) => c.minY)?.minY || 0}
/>
)}
/>
)}
>
(`${x !== 0 ? (Math.round(x) / 1000) : '0'}k`)}
/>
- {accounts
- .filter((v) => !v.skip)
- .map((chart) => (
-
- ))}
+ {accounts.filter((v) => !v.skip).map((chart) => chart.entries.length > 0 && (
+
+ ))}
(new Date(x).toLocaleString('default', { month: 'short' }))}
style={{ tickLabels: { angle: getTickValues().length > 5 ? -60 : 0 } }}
/>
+ )}
+ {accounts.length > 4 && (
+
+
+ This chart works best with up to 4 accounts,
+ {' '}
+ Linking.openURL(`${backendURL}/preferences`)} underline>click here
+ {' '}
+ to choose your preferred accounts in the Firefly III preferences:
+ {' '}
+ Home screen
+ .
+
+
+ )}
);
};
diff --git a/src/components/Oauth.tsx b/src/components/Oauth.tsx
index 22f6e15..e93a54e 100644
--- a/src/components/Oauth.tsx
+++ b/src/components/Oauth.tsx
@@ -3,11 +3,13 @@ import {
Input,
Box,
FormControl,
- Button,
+ Button, HStack, Text, Pressable,
} from 'native-base';
import { KeyboardAvoidingView } from 'react-native';
import * as Haptics from 'expo-haptics';
+import { Ionicons } from '@expo/vector-icons';
+import * as Linking from 'expo-linking';
import { isValidHttpUrl } from '../lib/common';
const Oauth = ({
@@ -63,12 +65,23 @@ const Oauth = ({
All secrets are kept in iOS secure storage.
-
- Redirect URI must be equal to: `abacusiosapp://redirect`
-
+
+
+ 🔥 set redirect URI to:
+
+
+
+ abacusiosapp://redirect
+
+
+
+ Linking.openURL('https://github.com/victorbalssa/abacus/blob/master/.github/HELP.md')} underline>Need Help?
+
+
}
mt="2"
shadow={2}
borderRadius={15}
@@ -102,6 +115,7 @@ const Oauth = ({
{faceId && (
}
mt="2"
shadow={2}
borderRadius={15}
@@ -114,7 +128,6 @@ const Oauth = ({
},
}}
_loading={{
- bg: 'primary.50',
_text: {
color: 'white',
},
diff --git a/src/components/Transactions/Create.tsx b/src/components/Transactions/Create.tsx
index a228888..8e11fce 100644
--- a/src/components/Transactions/Create.tsx
+++ b/src/components/Transactions/Create.tsx
@@ -42,7 +42,7 @@ const Create = ({
date: new Date(),
source_name: '',
destination_name: '',
- type: 'deposit',
+ type: 'withdrawal',
}}
/>
diff --git a/src/components/Transactions/Form.tsx b/src/components/Transactions/Form.tsx
index 13f4c14..985404b 100644
--- a/src/components/Transactions/Form.tsx
+++ b/src/components/Transactions/Form.tsx
@@ -114,7 +114,7 @@ const Form = ({
- {['deposit', 'withdrawal', 'transfer'].map((type) => (
+ {['withdrawal', 'deposit', 'transfer'].map((type) => (
- {success && setSuccess(false)} description="Transaction created. Click here to go to transactions list." onPress={goToTransactions} />}
- {errors.global !== '' && }
+ {success && !loading && setSuccess(false)} description="Transaction created. Click here to go to transactions list." onPress={goToTransactions} />}
+ {errors.global !== '' && !loading && }