mirror of
https://github.com/ecency/ecency-mobile.git
synced 2025-01-02 19:06:39 +03:00
Merge branch 'master' of github.com:esteemapp/esteem-mobile into login-refactoring
This commit is contained in:
commit
e1b5d71b8b
@ -29,6 +29,9 @@ node_modules/react-native/flow-github/
|
||||
[options]
|
||||
emoji=true
|
||||
|
||||
esproposal.optional_chaining=enable
|
||||
esproposal.nullish_coalescing=enable
|
||||
|
||||
module.system=haste
|
||||
module.system.haste.use_name_reducers=true
|
||||
# get basename
|
||||
@ -64,4 +67,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
|
||||
|
||||
[version]
|
||||
^0.75.0
|
||||
^0.78.0
|
||||
|
7
.gitignore
vendored
7
.gitignore
vendored
@ -35,8 +35,6 @@ local.properties
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
config.js
|
||||
!src/screens/steem-connect/config.js
|
||||
|
||||
# BUCK
|
||||
buck-out/
|
||||
@ -56,4 +54,7 @@ buck-out/
|
||||
|
||||
# Bundle artifact
|
||||
*.jsbundle
|
||||
keystore
|
||||
|
||||
config.js
|
||||
!src/screens/steem-connect/config.js
|
||||
keystore/
|
||||
|
@ -95,7 +95,7 @@ def enableProguardInReleaseBuilds = false
|
||||
|
||||
android {
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion '28.0.2'
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.esteem"
|
||||
@ -137,10 +137,10 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile project(':react-native-linear-gradient')
|
||||
compile project(':realm')
|
||||
compile project(':react-native-vector-icons')
|
||||
compile project(':react-native-restart')
|
||||
compile project(':react-native-linear-gradient')
|
||||
compile project(':react-native-fast-image')
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||
|
@ -3,10 +3,10 @@ package com.esteem;
|
||||
import android.app.Application;
|
||||
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.BV.LinearGradient.LinearGradientPackage;
|
||||
import io.realm.react.RealmReactPackage;
|
||||
import com.oblador.vectoricons.VectorIconsPackage;
|
||||
import com.avishayil.rnrestart.ReactNativeRestartPackage;
|
||||
import com.BV.LinearGradient.LinearGradientPackage;
|
||||
import com.dylanvann.fastimage.FastImageViewPackage;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
@ -28,10 +28,10 @@ public class MainApplication extends Application implements ReactApplication {
|
||||
protected List<ReactPackage> getPackages() {
|
||||
return Arrays.<ReactPackage>asList(
|
||||
new MainReactPackage(),
|
||||
new LinearGradientPackage(),
|
||||
new RealmReactPackage(),
|
||||
new VectorIconsPackage(),
|
||||
new ReactNativeRestartPackage(),
|
||||
new LinearGradientPackage(),
|
||||
new FastImageViewPackage()
|
||||
);
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ buildscript {
|
||||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.2.0'
|
||||
classpath 'com.android.tools.build:gradle:3.1.4'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
@ -1,6 +1,5 @@
|
||||
#Wed Sep 26 23:32:58 EET 2018
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
|
||||
|
@ -1,12 +1,12 @@
|
||||
rootProject.name = 'esteem'
|
||||
include ':react-native-linear-gradient'
|
||||
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')
|
||||
include ':realm'
|
||||
project(':realm').projectDir = new File(rootProject.projectDir, '../node_modules/realm/android')
|
||||
include ':react-native-vector-icons'
|
||||
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
|
||||
include ':react-native-restart'
|
||||
project(':react-native-restart').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-restart/android')
|
||||
include ':react-native-linear-gradient'
|
||||
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')
|
||||
include ':react-native-fast-image'
|
||||
project(':react-native-fast-image').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fast-image/android')
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
||||
00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
|
||||
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
|
||||
00E356F31AD99517003FC87E /* esteemTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* esteemTests.m */; };
|
||||
00EA7CDF813A496396F37B62 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 56E30585028B4757AFB2F260 /* Octicons.ttf */; };
|
||||
11D1A2F320CAFA9E000508D9 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
|
||||
12085D907BCF4310AE841EB9 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B242092C489E46F489763E94 /* Feather.ttf */; };
|
||||
133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
|
||||
139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
|
||||
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; };
|
||||
@ -23,7 +23,8 @@
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
|
||||
146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
|
||||
1FD6AD382A1C40938E1A4F4E /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D4E71579126B447188B83123 /* Octicons.ttf */; };
|
||||
1954C43044AC4F14B97C7F24 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B3E4DB34CA2240EDA2D0E831 /* SimpleLineIcons.ttf */; };
|
||||
22E7846D4E9D48238888FCA4 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B7B24CFC3C0D490DA15DA29C /* MaterialIcons.ttf */; };
|
||||
2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
|
||||
2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||
2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
@ -37,27 +38,26 @@
|
||||
2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
|
||||
2DCD954D1E0B4F2C00145EB5 /* esteemTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* esteemTests.m */; };
|
||||
2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
|
||||
5A970712B67D4D3E880FACF7 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 60B8ECE2B75A41409C5E7345 /* SimpleLineIcons.ttf */; };
|
||||
620157480AC0446384C486A5 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C3C604F08F154AB7BB7781A8 /* Foundation.ttf */; };
|
||||
62D327BAA2D142E4A9EC55F4 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 5AC4147E86084FBA8814BCE9 /* MaterialIcons.ttf */; };
|
||||
6CE8C7F361F44C63BBBAE1E9 /* libBVLinearGradient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EDDDE364E5C4508B16ED939 /* libBVLinearGradient.a */; };
|
||||
789EA10E61C845E0BB2EC9D3 /* libFastImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C9EDC249E2B441C984F426D1 /* libFastImage.a */; };
|
||||
7C38F7E48880400891592857 /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 5FD4DA409A1C42EB89B6F3BC /* MaterialCommunityIcons.ttf */; };
|
||||
8134509F8F3548E6A46AE80F /* rubicon-icon-font.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 5D5AB59069724329806D80E2 /* rubicon-icon-font.ttf */; };
|
||||
33DE90C197C9467AAB5EB802 /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8C8AE61985C54992AC765420 /* FontAwesome.ttf */; };
|
||||
3AB14466CEC544049AD08811 /* libBVLinearGradient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 02E3F06CE07E482488458FD3 /* libBVLinearGradient.a */; };
|
||||
4EB85A02CD474B848E110697 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5CD0C4AF7747D888A213F9 /* libz.tbd */; };
|
||||
50F38870321E45BAAD4ECC10 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2F7FE3F27575464186B3A5EC /* Zocial.ttf */; };
|
||||
5E482AACE164450FAD00E13F /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = FBBEEEBB9C8048F78189B2C0 /* libc++.tbd */; };
|
||||
6406AB381029407B815B0B19 /* Roboto_medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E75C11A31EE54C5899D50416 /* Roboto_medium.ttf */; };
|
||||
64D2BA75D6054D5B89967502 /* Roboto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C308EE3EEC7A48BD919DDFF2 /* Roboto.ttf */; };
|
||||
75A37827C6324BFEA60CC6DA /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F084E460D2B1450B9827AB33 /* EvilIcons.ttf */; };
|
||||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
|
||||
89E87D4D15E3405CAAABC8DB /* Roboto_medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2CB7FEA66264445A9035FB51 /* Roboto_medium.ttf */; };
|
||||
8DDFF3D8476F4862B118D572 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F85E524A382E4A6A957E771B /* EvilIcons.ttf */; };
|
||||
9CE84579A16E4530ACB21BE3 /* libRCTRestart.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DCAC90A21B43431A84847EBC /* libRCTRestart.a */; };
|
||||
A4D99EE97F504E04ADAC2AE7 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BFB50DC91BBC4BDD95A818FD /* Entypo.ttf */; };
|
||||
A58AFEDD1A994E5D85792786 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B3581C9185843E386F8226D /* libc++.tbd */; };
|
||||
AAFABA2977754B7A8A966F38 /* Roboto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CBFA1E890EF94235B811F694 /* Roboto.ttf */; };
|
||||
85DF300A6EDC4AE98CD8B5AB /* libFastImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A668FDF5F71F4AC7B4EC6B1D /* libFastImage.a */; };
|
||||
912899FDD21841C7A2444920 /* Feather.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D81FE31209CF4D24AA4DAE1B /* Feather.ttf */; };
|
||||
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
|
||||
CC18270D8A144D8BB1B92074 /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 798FE1CBDA064EBDA4CD12C3 /* FontAwesome.ttf */; };
|
||||
D667736551DF47A7925EDFB7 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F1B7D17736AC464DA683AB3A /* Ionicons.ttf */; };
|
||||
DA84410F09C648E99513F11C /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A0E703B1D82B464482AAD10D /* libRNVectorIcons.a */; };
|
||||
E41F2366F3EA43FD9B22CEFE /* libRealmReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 218B93019DD44DA89C47CD00 /* libRealmReact.a */; };
|
||||
E4910A11500840519C89B56C /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CEE09FF1C1A4339A61091F2 /* libz.tbd */; };
|
||||
FE4AFF7DBCC14A01A1221E15 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6B1C085C089045A38BB6F760 /* Zocial.ttf */; };
|
||||
CBE87E3CB30C4B90B585E2FD /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6CC9B75BE0E640CBB2DE5316 /* Foundation.ttf */; };
|
||||
D8C2A659E24748179C4C207F /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9F13A372FBF946B5BDBE78FA /* Ionicons.ttf */; };
|
||||
D91033650FE94398A5424B19 /* libRCTRestart.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B2C904BFD14B44C68128BB7F /* libRCTRestart.a */; };
|
||||
E06D5BA91B2A40C9868071EA /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C7D81BDCD08041078EF0F511 /* MaterialCommunityIcons.ttf */; };
|
||||
ED5A78654C33412F88CC8D4F /* rubicon-icon-font.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 88197F38DF02441F9B738AFF /* rubicon-icon-font.ttf */; };
|
||||
F9220AB054914BE1BF04A4B2 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8616E7F6C6264500B0F3C0AB /* libRNVectorIcons.a */; };
|
||||
FB28DFAA729D4DC3B1668FBC /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0754D5AAEA2D4DCA9DA7283D /* Entypo.ttf */; };
|
||||
FE22D3734B2C48CB890715FF /* libRealmReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D0A4B6BC3004763A0094EF3 /* libRealmReact.a */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@ -103,6 +103,48 @@
|
||||
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
|
||||
remoteInfo = esteem;
|
||||
};
|
||||
0C518B74217202700049DBA5 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 44CA43D49E374185BA6F37AF /* BVLinearGradient.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
||||
remoteInfo = BVLinearGradient;
|
||||
};
|
||||
0C518B76217202700049DBA5 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 44CA43D49E374185BA6F37AF /* BVLinearGradient.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 64AA15081EF7F30100718508;
|
||||
remoteInfo = "BVLinearGradient-tvOS";
|
||||
};
|
||||
0C518B79217202700049DBA5 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 5B1A171CF0E94B1CB0D66C57 /* FastImage.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = A287971D1DE0C0A60081BDFA;
|
||||
remoteInfo = FastImage;
|
||||
};
|
||||
0C518B7C217202700049DBA5 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 2DBBBAA0633D41CBB01D6FEB /* RCTRestart.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3245CDED1BFEE35C00EABF68;
|
||||
remoteInfo = RCTRestart;
|
||||
};
|
||||
0C518B7F217202700049DBA5 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 0019E13B96A747699592B643 /* RealmReact.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = F60690131CA2766F0003FB26;
|
||||
remoteInfo = RealmReact;
|
||||
};
|
||||
0C518B82217202700049DBA5 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = CFB5920886014F419FC6D19A /* RNVectorIcons.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 5DBEB1501B18CEA900B34395;
|
||||
remoteInfo = RNVectorIcons;
|
||||
};
|
||||
139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */;
|
||||
@ -299,48 +341,6 @@
|
||||
remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4;
|
||||
remoteInfo = "jschelpers-tvOS";
|
||||
};
|
||||
47C7F1532167EB8A0095C133 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = A478B598576048B99C164A52 /* BVLinearGradient.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 134814201AA4EA6300B7C361;
|
||||
remoteInfo = BVLinearGradient;
|
||||
};
|
||||
47C7F1552167EB8A0095C133 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = A478B598576048B99C164A52 /* BVLinearGradient.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 64AA15081EF7F30100718508;
|
||||
remoteInfo = "BVLinearGradient-tvOS";
|
||||
};
|
||||
47C7F1582167EB8A0095C133 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 24CEB0A6D57C4A038E1DB75A /* RCTRestart.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3245CDED1BFEE35C00EABF68;
|
||||
remoteInfo = RCTRestart;
|
||||
};
|
||||
47C7F15B2167EB8A0095C133 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 2EFB1ECFDD9C4D4DBF153260 /* RealmReact.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = F60690131CA2766F0003FB26;
|
||||
remoteInfo = RealmReact;
|
||||
};
|
||||
47C7F1612167EB8A0095C133 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D8FE25B09BFD479994B879E8 /* RNVectorIcons.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 5DBEB1501B18CEA900B34395;
|
||||
remoteInfo = RNVectorIcons;
|
||||
};
|
||||
47C7F1662167EB8A0095C133 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 671E67B1E9D345C2A7483C90 /* FastImage.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = A287971D1DE0C0A60081BDFA;
|
||||
remoteInfo = FastImage;
|
||||
};
|
||||
5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */;
|
||||
@ -379,6 +379,7 @@
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0019E13B96A747699592B643 /* RealmReact.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RealmReact.xcodeproj; path = "../node_modules/realm/react-native/ios/RealmReact.xcodeproj"; sourceTree = "<group>"; };
|
||||
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
|
||||
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = "<group>"; };
|
||||
00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = "<group>"; };
|
||||
@ -388,6 +389,9 @@
|
||||
00E356EE1AD99517003FC87E /* esteemTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = esteemTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
00E356F21AD99517003FC87E /* esteemTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = esteemTests.m; sourceTree = "<group>"; };
|
||||
02E3F06CE07E482488458FD3 /* libBVLinearGradient.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBVLinearGradient.a; sourceTree = "<group>"; };
|
||||
0754D5AAEA2D4DCA9DA7283D /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/native-base/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
|
||||
0F5CD0C4AF7747D888A213F9 /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||
139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
|
||||
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
|
||||
13B07F961A680F5B00A75B9A /* esteem.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = esteem.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@ -398,39 +402,35 @@
|
||||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = esteem/Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = esteem/main.m; sourceTree = "<group>"; };
|
||||
146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
|
||||
1CEE09FF1C1A4339A61091F2 /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||
218B93019DD44DA89C47CD00 /* libRealmReact.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRealmReact.a; sourceTree = "<group>"; };
|
||||
24CEB0A6D57C4A038E1DB75A /* RCTRestart.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTRestart.xcodeproj; path = "../node_modules/react-native-restart/ios/RCTRestart.xcodeproj"; sourceTree = "<group>"; };
|
||||
2CB7FEA66264445A9035FB51 /* Roboto_medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Roboto_medium.ttf; path = "../node_modules/native-base/Fonts/Roboto_medium.ttf"; sourceTree = "<group>"; };
|
||||
2D02E47B1E0B4A5D006451C7 /* esteem-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "esteem-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2D02E4901E0B4A5D006451C7 /* esteem-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "esteem-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2EFB1ECFDD9C4D4DBF153260 /* RealmReact.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RealmReact.xcodeproj; path = "../node_modules/realm/react-native/ios/RealmReact.xcodeproj"; sourceTree = "<group>"; };
|
||||
5AC4147E86084FBA8814BCE9 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/native-base/Fonts/MaterialIcons.ttf"; sourceTree = "<group>"; };
|
||||
5D5AB59069724329806D80E2 /* rubicon-icon-font.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "rubicon-icon-font.ttf"; path = "../node_modules/native-base/Fonts/rubicon-icon-font.ttf"; sourceTree = "<group>"; };
|
||||
2DBBBAA0633D41CBB01D6FEB /* RCTRestart.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTRestart.xcodeproj; path = "../node_modules/react-native-restart/ios/RCTRestart.xcodeproj"; sourceTree = "<group>"; };
|
||||
2F7FE3F27575464186B3A5EC /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/native-base/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
|
||||
44CA43D49E374185BA6F37AF /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = BVLinearGradient.xcodeproj; path = "../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = "<group>"; };
|
||||
56E30585028B4757AFB2F260 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/native-base/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
|
||||
5B1A171CF0E94B1CB0D66C57 /* FastImage.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = FastImage.xcodeproj; path = "../node_modules/react-native-fast-image/ios/FastImage.xcodeproj"; sourceTree = "<group>"; };
|
||||
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
|
||||
5FD4DA409A1C42EB89B6F3BC /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/native-base/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; };
|
||||
60B8ECE2B75A41409C5E7345 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/native-base/Fonts/SimpleLineIcons.ttf"; sourceTree = "<group>"; };
|
||||
671E67B1E9D345C2A7483C90 /* FastImage.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = FastImage.xcodeproj; path = "../node_modules/react-native-fast-image/ios/FastImage.xcodeproj"; sourceTree = "<group>"; };
|
||||
6B1C085C089045A38BB6F760 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/native-base/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
|
||||
6B3581C9185843E386F8226D /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
||||
6EDDDE364E5C4508B16ED939 /* libBVLinearGradient.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBVLinearGradient.a; sourceTree = "<group>"; };
|
||||
6CC9B75BE0E640CBB2DE5316 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/native-base/Fonts/Foundation.ttf"; sourceTree = "<group>"; };
|
||||
6D0A4B6BC3004763A0094EF3 /* libRealmReact.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRealmReact.a; sourceTree = "<group>"; };
|
||||
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
|
||||
798FE1CBDA064EBDA4CD12C3 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/native-base/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
|
||||
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
|
||||
A0E703B1D82B464482AAD10D /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
|
||||
A478B598576048B99C164A52 /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = BVLinearGradient.xcodeproj; path = "../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = "<group>"; };
|
||||
8616E7F6C6264500B0F3C0AB /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
|
||||
88197F38DF02441F9B738AFF /* rubicon-icon-font.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "rubicon-icon-font.ttf"; path = "../node_modules/native-base/Fonts/rubicon-icon-font.ttf"; sourceTree = "<group>"; };
|
||||
8C8AE61985C54992AC765420 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/native-base/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
|
||||
9F13A372FBF946B5BDBE78FA /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/native-base/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
|
||||
A668FDF5F71F4AC7B4EC6B1D /* libFastImage.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libFastImage.a; sourceTree = "<group>"; };
|
||||
ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; };
|
||||
B242092C489E46F489763E94 /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/native-base/Fonts/Feather.ttf"; sourceTree = "<group>"; };
|
||||
BFB50DC91BBC4BDD95A818FD /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/native-base/Fonts/Entypo.ttf"; sourceTree = "<group>"; };
|
||||
C3C604F08F154AB7BB7781A8 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/native-base/Fonts/Foundation.ttf"; sourceTree = "<group>"; };
|
||||
C9EDC249E2B441C984F426D1 /* libFastImage.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libFastImage.a; sourceTree = "<group>"; };
|
||||
CBFA1E890EF94235B811F694 /* Roboto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Roboto.ttf; path = "../node_modules/native-base/Fonts/Roboto.ttf"; sourceTree = "<group>"; };
|
||||
D4E71579126B447188B83123 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/native-base/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
|
||||
D8FE25B09BFD479994B879E8 /* 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 = "<group>"; };
|
||||
DCAC90A21B43431A84847EBC /* libRCTRestart.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTRestart.a; sourceTree = "<group>"; };
|
||||
F1B7D17736AC464DA683AB3A /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/native-base/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
|
||||
F85E524A382E4A6A957E771B /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/native-base/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
|
||||
B2C904BFD14B44C68128BB7F /* libRCTRestart.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTRestart.a; sourceTree = "<group>"; };
|
||||
B3E4DB34CA2240EDA2D0E831 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/native-base/Fonts/SimpleLineIcons.ttf"; sourceTree = "<group>"; };
|
||||
B7B24CFC3C0D490DA15DA29C /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/native-base/Fonts/MaterialIcons.ttf"; sourceTree = "<group>"; };
|
||||
C308EE3EEC7A48BD919DDFF2 /* Roboto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Roboto.ttf; path = "../node_modules/native-base/Fonts/Roboto.ttf"; sourceTree = "<group>"; };
|
||||
C7D81BDCD08041078EF0F511 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/native-base/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; };
|
||||
CFB5920886014F419FC6D19A /* 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 = "<group>"; };
|
||||
D81FE31209CF4D24AA4DAE1B /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/native-base/Fonts/Feather.ttf"; sourceTree = "<group>"; };
|
||||
E75C11A31EE54C5899D50416 /* Roboto_medium.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Roboto_medium.ttf; path = "../node_modules/native-base/Fonts/Roboto_medium.ttf"; sourceTree = "<group>"; };
|
||||
F084E460D2B1450B9827AB33 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/native-base/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
|
||||
FBBEEEBB9C8048F78189B2C0 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@ -458,13 +458,13 @@
|
||||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
|
||||
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
|
||||
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
|
||||
789EA10E61C845E0BB2EC9D3 /* libFastImage.a in Frameworks */,
|
||||
9CE84579A16E4530ACB21BE3 /* libRCTRestart.a in Frameworks */,
|
||||
DA84410F09C648E99513F11C /* libRNVectorIcons.a in Frameworks */,
|
||||
E41F2366F3EA43FD9B22CEFE /* libRealmReact.a in Frameworks */,
|
||||
A58AFEDD1A994E5D85792786 /* libc++.tbd in Frameworks */,
|
||||
E4910A11500840519C89B56C /* libz.tbd in Frameworks */,
|
||||
6CE8C7F361F44C63BBBAE1E9 /* libBVLinearGradient.a in Frameworks */,
|
||||
85DF300A6EDC4AE98CD8B5AB /* libFastImage.a in Frameworks */,
|
||||
3AB14466CEC544049AD08811 /* libBVLinearGradient.a in Frameworks */,
|
||||
D91033650FE94398A5424B19 /* libRCTRestart.a in Frameworks */,
|
||||
F9220AB054914BE1BF04A4B2 /* libRNVectorIcons.a in Frameworks */,
|
||||
FE22D3734B2C48CB890715FF /* libRealmReact.a in Frameworks */,
|
||||
5E482AACE164450FAD00E13F /* libc++.tbd in Frameworks */,
|
||||
4EB85A02CD474B848E110697 /* libz.tbd in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -553,6 +553,59 @@
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
0C518B402172026A0049DBA5 /* Recovered References */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A668FDF5F71F4AC7B4EC6B1D /* libFastImage.a */,
|
||||
02E3F06CE07E482488458FD3 /* libBVLinearGradient.a */,
|
||||
B2C904BFD14B44C68128BB7F /* libRCTRestart.a */,
|
||||
8616E7F6C6264500B0F3C0AB /* libRNVectorIcons.a */,
|
||||
6D0A4B6BC3004763A0094EF3 /* libRealmReact.a */,
|
||||
);
|
||||
name = "Recovered References";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
0C518B682172026F0049DBA5 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0C518B75217202700049DBA5 /* libBVLinearGradient.a */,
|
||||
0C518B77217202700049DBA5 /* libBVLinearGradient.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
0C518B6A2172026F0049DBA5 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0C518B83217202700049DBA5 /* libRNVectorIcons.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
0C518B6C2172026F0049DBA5 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0C518B80217202700049DBA5 /* libRealmReact.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
0C518B6E2172026F0049DBA5 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0C518B7A217202700049DBA5 /* libFastImage.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
0C518B702172026F0049DBA5 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0C518B7D217202700049DBA5 /* libRCTRestart.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
139105B71AF99BAD00B5F7CC /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -610,88 +663,35 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
22089A0D075844FE8AA2DA40 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
BFB50DC91BBC4BDD95A818FD /* Entypo.ttf */,
|
||||
F85E524A382E4A6A957E771B /* EvilIcons.ttf */,
|
||||
B242092C489E46F489763E94 /* Feather.ttf */,
|
||||
798FE1CBDA064EBDA4CD12C3 /* FontAwesome.ttf */,
|
||||
C3C604F08F154AB7BB7781A8 /* Foundation.ttf */,
|
||||
F1B7D17736AC464DA683AB3A /* Ionicons.ttf */,
|
||||
5FD4DA409A1C42EB89B6F3BC /* MaterialCommunityIcons.ttf */,
|
||||
5AC4147E86084FBA8814BCE9 /* MaterialIcons.ttf */,
|
||||
D4E71579126B447188B83123 /* Octicons.ttf */,
|
||||
2CB7FEA66264445A9035FB51 /* Roboto_medium.ttf */,
|
||||
CBFA1E890EF94235B811F694 /* Roboto.ttf */,
|
||||
5D5AB59069724329806D80E2 /* rubicon-icon-font.ttf */,
|
||||
60B8ECE2B75A41409C5E7345 /* SimpleLineIcons.ttf */,
|
||||
6B1C085C089045A38BB6F760 /* Zocial.ttf */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2D16E6891FA4F8E400B85C8A /* libReact.a */,
|
||||
6B3581C9185843E386F8226D /* libc++.tbd */,
|
||||
1CEE09FF1C1A4339A61091F2 /* libz.tbd */,
|
||||
FBBEEEBB9C8048F78189B2C0 /* libc++.tbd */,
|
||||
0F5CD0C4AF7747D888A213F9 /* libz.tbd */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
47C7F1242167EB890095C133 /* Recovered References */ = {
|
||||
4C47600659AC4CB893230688 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C9EDC249E2B441C984F426D1 /* libFastImage.a */,
|
||||
DCAC90A21B43431A84847EBC /* libRCTRestart.a */,
|
||||
A0E703B1D82B464482AAD10D /* libRNVectorIcons.a */,
|
||||
218B93019DD44DA89C47CD00 /* libRealmReact.a */,
|
||||
6EDDDE364E5C4508B16ED939 /* libBVLinearGradient.a */,
|
||||
0754D5AAEA2D4DCA9DA7283D /* Entypo.ttf */,
|
||||
F084E460D2B1450B9827AB33 /* EvilIcons.ttf */,
|
||||
D81FE31209CF4D24AA4DAE1B /* Feather.ttf */,
|
||||
8C8AE61985C54992AC765420 /* FontAwesome.ttf */,
|
||||
6CC9B75BE0E640CBB2DE5316 /* Foundation.ttf */,
|
||||
9F13A372FBF946B5BDBE78FA /* Ionicons.ttf */,
|
||||
C7D81BDCD08041078EF0F511 /* MaterialCommunityIcons.ttf */,
|
||||
B7B24CFC3C0D490DA15DA29C /* MaterialIcons.ttf */,
|
||||
56E30585028B4757AFB2F260 /* Octicons.ttf */,
|
||||
E75C11A31EE54C5899D50416 /* Roboto_medium.ttf */,
|
||||
C308EE3EEC7A48BD919DDFF2 /* Roboto.ttf */,
|
||||
88197F38DF02441F9B738AFF /* rubicon-icon-font.ttf */,
|
||||
B3E4DB34CA2240EDA2D0E831 /* SimpleLineIcons.ttf */,
|
||||
2F7FE3F27575464186B3A5EC /* Zocial.ttf */,
|
||||
);
|
||||
name = "Recovered References";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
47C7F14B2167EB8A0095C133 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
47C7F1542167EB8A0095C133 /* libBVLinearGradient.a */,
|
||||
47C7F1562167EB8A0095C133 /* libBVLinearGradient.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
47C7F14D2167EB8A0095C133 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
47C7F15C2167EB8A0095C133 /* libRealmReact.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
47C7F14F2167EB8A0095C133 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
47C7F1592167EB8A0095C133 /* libRCTRestart.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
47C7F15E2167EB8A0095C133 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
47C7F1622167EB8A0095C133 /* libRNVectorIcons.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
47C7F1632167EB8A0095C133 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
47C7F1672167EB8A0095C133 /* libFastImage.a */,
|
||||
);
|
||||
name = Products;
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5E91572E1DD0AC6500FF2AA8 /* Products */ = {
|
||||
@ -727,11 +727,11 @@
|
||||
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
|
||||
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
|
||||
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
|
||||
671E67B1E9D345C2A7483C90 /* FastImage.xcodeproj */,
|
||||
24CEB0A6D57C4A038E1DB75A /* RCTRestart.xcodeproj */,
|
||||
D8FE25B09BFD479994B879E8 /* RNVectorIcons.xcodeproj */,
|
||||
2EFB1ECFDD9C4D4DBF153260 /* RealmReact.xcodeproj */,
|
||||
A478B598576048B99C164A52 /* BVLinearGradient.xcodeproj */,
|
||||
5B1A171CF0E94B1CB0D66C57 /* FastImage.xcodeproj */,
|
||||
44CA43D49E374185BA6F37AF /* BVLinearGradient.xcodeproj */,
|
||||
2DBBBAA0633D41CBB01D6FEB /* RCTRestart.xcodeproj */,
|
||||
CFB5920886014F419FC6D19A /* RNVectorIcons.xcodeproj */,
|
||||
0019E13B96A747699592B643 /* RealmReact.xcodeproj */,
|
||||
);
|
||||
name = Libraries;
|
||||
sourceTree = "<group>";
|
||||
@ -753,8 +753,8 @@
|
||||
00E356EF1AD99517003FC87E /* esteemTests */,
|
||||
83CBBA001A601CBA00E9B192 /* Products */,
|
||||
2D16E6871FA4F8E400B85C8A /* Frameworks */,
|
||||
22089A0D075844FE8AA2DA40 /* Resources */,
|
||||
47C7F1242167EB890095C133 /* Recovered References */,
|
||||
4C47600659AC4CB893230688 /* Resources */,
|
||||
0C518B402172026A0049DBA5 /* Recovered References */,
|
||||
);
|
||||
indentWidth = 2;
|
||||
sourceTree = "<group>";
|
||||
@ -880,7 +880,7 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "eSteem" */;
|
||||
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "esteem" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
@ -893,12 +893,12 @@
|
||||
projectDirPath = "";
|
||||
projectReferences = (
|
||||
{
|
||||
ProductGroup = 47C7F14B2167EB8A0095C133 /* Products */;
|
||||
ProjectRef = A478B598576048B99C164A52 /* BVLinearGradient.xcodeproj */;
|
||||
ProductGroup = 0C518B682172026F0049DBA5 /* Products */;
|
||||
ProjectRef = 44CA43D49E374185BA6F37AF /* BVLinearGradient.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 47C7F1632167EB8A0095C133 /* Products */;
|
||||
ProjectRef = 671E67B1E9D345C2A7483C90 /* FastImage.xcodeproj */;
|
||||
ProductGroup = 0C518B6E2172026F0049DBA5 /* Products */;
|
||||
ProjectRef = 5B1A171CF0E94B1CB0D66C57 /* FastImage.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */;
|
||||
@ -929,8 +929,8 @@
|
||||
ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 47C7F14F2167EB8A0095C133 /* Products */;
|
||||
ProjectRef = 24CEB0A6D57C4A038E1DB75A /* RCTRestart.xcodeproj */;
|
||||
ProductGroup = 0C518B702172026F0049DBA5 /* Products */;
|
||||
ProjectRef = 2DBBBAA0633D41CBB01D6FEB /* RCTRestart.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */;
|
||||
@ -953,12 +953,12 @@
|
||||
ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 47C7F14D2167EB8A0095C133 /* Products */;
|
||||
ProjectRef = 2EFB1ECFDD9C4D4DBF153260 /* RealmReact.xcodeproj */;
|
||||
ProductGroup = 0C518B6C2172026F0049DBA5 /* Products */;
|
||||
ProjectRef = 0019E13B96A747699592B643 /* RealmReact.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 47C7F15E2167EB8A0095C133 /* Products */;
|
||||
ProjectRef = D8FE25B09BFD479994B879E8 /* RNVectorIcons.xcodeproj */;
|
||||
ProductGroup = 0C518B6A2172026F0049DBA5 /* Products */;
|
||||
ProjectRef = CFB5920886014F419FC6D19A /* RNVectorIcons.xcodeproj */;
|
||||
},
|
||||
);
|
||||
projectRoot = "";
|
||||
@ -1007,6 +1007,48 @@
|
||||
remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
0C518B75217202700049DBA5 /* libBVLinearGradient.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libBVLinearGradient.a;
|
||||
remoteRef = 0C518B74217202700049DBA5 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
0C518B77217202700049DBA5 /* libBVLinearGradient.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libBVLinearGradient.a;
|
||||
remoteRef = 0C518B76217202700049DBA5 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
0C518B7A217202700049DBA5 /* libFastImage.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libFastImage.a;
|
||||
remoteRef = 0C518B79217202700049DBA5 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
0C518B7D217202700049DBA5 /* libRCTRestart.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRCTRestart.a;
|
||||
remoteRef = 0C518B7C217202700049DBA5 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
0C518B80217202700049DBA5 /* libRealmReact.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRealmReact.a;
|
||||
remoteRef = 0C518B7F217202700049DBA5 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
0C518B83217202700049DBA5 /* libRNVectorIcons.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRNVectorIcons.a;
|
||||
remoteRef = 0C518B82217202700049DBA5 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
@ -1196,48 +1238,6 @@
|
||||
remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
47C7F1542167EB8A0095C133 /* libBVLinearGradient.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libBVLinearGradient.a;
|
||||
remoteRef = 47C7F1532167EB8A0095C133 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
47C7F1562167EB8A0095C133 /* libBVLinearGradient.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libBVLinearGradient.a;
|
||||
remoteRef = 47C7F1552167EB8A0095C133 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
47C7F1592167EB8A0095C133 /* libRCTRestart.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRCTRestart.a;
|
||||
remoteRef = 47C7F1582167EB8A0095C133 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
47C7F15C2167EB8A0095C133 /* libRealmReact.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRealmReact.a;
|
||||
remoteRef = 47C7F15B2167EB8A0095C133 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
47C7F1622167EB8A0095C133 /* libRNVectorIcons.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRNVectorIcons.a;
|
||||
remoteRef = 47C7F1612167EB8A0095C133 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
47C7F1672167EB8A0095C133 /* libFastImage.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libFastImage.a;
|
||||
remoteRef = 47C7F1662167EB8A0095C133 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
@ -1289,20 +1289,20 @@
|
||||
files = (
|
||||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
|
||||
13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
|
||||
A4D99EE97F504E04ADAC2AE7 /* Entypo.ttf in Resources */,
|
||||
8DDFF3D8476F4862B118D572 /* EvilIcons.ttf in Resources */,
|
||||
12085D907BCF4310AE841EB9 /* Feather.ttf in Resources */,
|
||||
CC18270D8A144D8BB1B92074 /* FontAwesome.ttf in Resources */,
|
||||
620157480AC0446384C486A5 /* Foundation.ttf in Resources */,
|
||||
D667736551DF47A7925EDFB7 /* Ionicons.ttf in Resources */,
|
||||
7C38F7E48880400891592857 /* MaterialCommunityIcons.ttf in Resources */,
|
||||
62D327BAA2D142E4A9EC55F4 /* MaterialIcons.ttf in Resources */,
|
||||
1FD6AD382A1C40938E1A4F4E /* Octicons.ttf in Resources */,
|
||||
89E87D4D15E3405CAAABC8DB /* Roboto_medium.ttf in Resources */,
|
||||
AAFABA2977754B7A8A966F38 /* Roboto.ttf in Resources */,
|
||||
8134509F8F3548E6A46AE80F /* rubicon-icon-font.ttf in Resources */,
|
||||
5A970712B67D4D3E880FACF7 /* SimpleLineIcons.ttf in Resources */,
|
||||
FE4AFF7DBCC14A01A1221E15 /* Zocial.ttf in Resources */,
|
||||
FB28DFAA729D4DC3B1668FBC /* Entypo.ttf in Resources */,
|
||||
75A37827C6324BFEA60CC6DA /* EvilIcons.ttf in Resources */,
|
||||
912899FDD21841C7A2444920 /* Feather.ttf in Resources */,
|
||||
33DE90C197C9467AAB5EB802 /* FontAwesome.ttf in Resources */,
|
||||
CBE87E3CB30C4B90B585E2FD /* Foundation.ttf in Resources */,
|
||||
D8C2A659E24748179C4C207F /* Ionicons.ttf in Resources */,
|
||||
E06D5BA91B2A40C9868071EA /* MaterialCommunityIcons.ttf in Resources */,
|
||||
22E7846D4E9D48238888FCA4 /* MaterialIcons.ttf in Resources */,
|
||||
00EA7CDF813A496396F37B62 /* Octicons.ttf in Resources */,
|
||||
6406AB381029407B815B0B19 /* Roboto_medium.ttf in Resources */,
|
||||
64D2BA75D6054D5B89967502 /* Roboto.ttf in Resources */,
|
||||
ED5A78654C33412F88CC8D4F /* rubicon-icon-font.ttf in Resources */,
|
||||
1954C43044AC4F14B97C7F24 /* SimpleLineIcons.ttf in Resources */,
|
||||
50F38870321E45BAAD4ECC10 /* Zocial.ttf in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -1428,10 +1428,10 @@
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/react-native-fast-image/ios/FastImage/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
"$(SRCROOT)/../node_modules/react-native-restart/ios/RCTRestart/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
);
|
||||
INFOPLIST_FILE = esteemTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
@ -1462,10 +1462,10 @@
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/react-native-fast-image/ios/FastImage/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
"$(SRCROOT)/../node_modules/react-native-restart/ios/RCTRestart/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
);
|
||||
INFOPLIST_FILE = esteemTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
@ -1497,10 +1497,10 @@
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/react-native-fast-image/ios/FastImage/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
"$(SRCROOT)/../node_modules/react-native-restart/ios/RCTRestart/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
);
|
||||
INFOPLIST_FILE = esteem/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -1509,7 +1509,7 @@
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = app.esteem.mobile;
|
||||
PRODUCT_NAME = esteem;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
};
|
||||
@ -1523,10 +1523,10 @@
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/react-native-fast-image/ios/FastImage/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
"$(SRCROOT)/../node_modules/react-native-restart/ios/RCTRestart/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
);
|
||||
INFOPLIST_FILE = esteem/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -1535,7 +1535,7 @@
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = app.esteem.mobile;
|
||||
PRODUCT_NAME = esteem;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
};
|
||||
@ -1556,10 +1556,10 @@
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/react-native-fast-image/ios/FastImage/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
"$(SRCROOT)/../node_modules/react-native-restart/ios/RCTRestart/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
);
|
||||
INFOPLIST_FILE = "esteem-tvOS/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -1598,10 +1598,10 @@
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/react-native-fast-image/ios/FastImage/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
"$(SRCROOT)/../node_modules/react-native-restart/ios/RCTRestart/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
);
|
||||
INFOPLIST_FILE = "esteem-tvOS/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -1639,10 +1639,10 @@
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/react-native-fast-image/ios/FastImage/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
"$(SRCROOT)/../node_modules/react-native-restart/ios/RCTRestart/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
);
|
||||
INFOPLIST_FILE = "esteem-tvOSTests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
@ -1680,10 +1680,10 @@
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../node_modules/react-native-fast-image/ios/FastImage/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
"$(SRCROOT)/../node_modules/react-native-restart/ios/RCTRestart/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
|
||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
|
||||
);
|
||||
INFOPLIST_FILE = "esteem-tvOSTests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
@ -1845,7 +1845,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "eSteem" */ = {
|
||||
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "esteem" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
83CBBA201A601CBA00E9B192 /* Debug */,
|
||||
|
@ -24,22 +24,6 @@
|
||||
<string>1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
@ -53,6 +37,8 @@
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string/>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>Entypo.ttf</string>
|
||||
@ -70,5 +56,19 @@
|
||||
<string>SimpleLineIcons.ttf</string>
|
||||
<string>Zocial.ttf</string>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
466
package-lock.json
generated
466
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -22,8 +22,8 @@
|
||||
"dsteem": "^0.10.1",
|
||||
"moment": "^2.22.2",
|
||||
"native-base": "^2.8.1",
|
||||
"react": "^16.5.0",
|
||||
"react-native": "^0.57.1",
|
||||
"react": "^16.6.0-alpha.8af6728",
|
||||
"react-native": "^0.57.3",
|
||||
"react-native-extended-stylesheet": "^0.10.0",
|
||||
"react-native-fast-image": "^4.0.14",
|
||||
"react-native-html-renderer": "^1.0.0",
|
||||
@ -34,13 +34,12 @@
|
||||
"react-native-modal-dropdown": "^0.6.2",
|
||||
"react-native-modal-popover": "0.0.10",
|
||||
"react-native-restart": "0.0.6",
|
||||
"react-native-scrollable-tab-view": "git+https://github.com/happypancake/react-native-scrollable-tab-view.git",
|
||||
"react-native-slider": "^0.11.0",
|
||||
"react-native-vector-icons": "^4.6.0",
|
||||
"react-navigation": "^2.17.0",
|
||||
"react-navigation-redux-helpers": "^2.0.6",
|
||||
"react-redux": "^5.0.7",
|
||||
"realm": "^2.18.0",
|
||||
"realm": "2.16.0",
|
||||
"redux": "^4.0.0",
|
||||
"redux-promise": "^0.6.0",
|
||||
"redux-thunk": "^2.3.0",
|
||||
@ -60,7 +59,7 @@
|
||||
"metro-react-native-babel-preset": "0.47.0",
|
||||
"prettier": "^1.14.3",
|
||||
"prettier-eslint": "^8.8.2",
|
||||
"react-test-renderer": "16.5.0",
|
||||
"react-test-renderer": "16.6.0-alpha.8af6728",
|
||||
"redux-logger": "^3.0.6",
|
||||
"redux-devtools-extension": "^2.13.5",
|
||||
"lint-staged": "^7.2.0"
|
||||
|
@ -13,10 +13,10 @@ import { connect } from 'react-redux';
|
||||
import { ExampleView } from '..';
|
||||
|
||||
/*
|
||||
* Props Name Description Value
|
||||
*@props --> props name here description here Value Type Here
|
||||
*
|
||||
*/
|
||||
* Props Name Description Value
|
||||
*@props --> props name here description here Value Type Here
|
||||
*
|
||||
*/
|
||||
|
||||
class ExampleContainer extends Component {
|
||||
constructor(props) {
|
||||
|
@ -2,10 +2,10 @@ import Card from './view/cardView';
|
||||
import GrayWrapper from './view/grayWrapperView';
|
||||
import LineBreak from './view/lineBreakView';
|
||||
import NoPost from './view/noPostView';
|
||||
import PercentBar from './view/percentBarView';
|
||||
import PostPlaceHolder from './view/postPlaceHolderView';
|
||||
import TextWithIcon from './view/textWithIconView';
|
||||
import WalletLineItem from './view/walletLineItemView';
|
||||
|
||||
export {
|
||||
Card, GrayWrapper, LineBreak, NoPost, PercentBar, TextWithIcon, WalletLineItem,
|
||||
Card, GrayWrapper, LineBreak, NoPost, PostPlaceHolder, TextWithIcon, WalletLineItem,
|
||||
};
|
||||
|
@ -1,21 +1,21 @@
|
||||
import EStyleSheet from "react-native-extended-stylesheet";
|
||||
import EStyleSheet from 'react-native-extended-stylesheet';
|
||||
|
||||
export default EStyleSheet.create({
|
||||
wrapper: {
|
||||
flexDirection: "column",
|
||||
alignItems: "center",
|
||||
height: "$deviceHeight",
|
||||
backgroundColor: "$white",
|
||||
flexDirection: 'column',
|
||||
alignItems: 'center',
|
||||
height: '$deviceHeight',
|
||||
backgroundColor: '$white',
|
||||
},
|
||||
image: {
|
||||
width: "$deviceWidth - 40",
|
||||
width: '$deviceWidth - 40',
|
||||
height: 192,
|
||||
marginTop: 16,
|
||||
},
|
||||
text: {
|
||||
color: "$primaryDarkGray",
|
||||
color: '$primaryDarkGray',
|
||||
fontSize: 14,
|
||||
marginTop: 12,
|
||||
fontWeight: "bold",
|
||||
fontWeight: 'bold',
|
||||
},
|
||||
});
|
||||
|
@ -1,42 +0,0 @@
|
||||
import React from 'react';
|
||||
import { View, Dimensions, Text } from 'react-native';
|
||||
import styles from './percentBarStyles';
|
||||
|
||||
const PercentBar = ({
|
||||
percent, margin, text, barColor, barPercentColor, textColor, isTop,
|
||||
}) => (
|
||||
<View>
|
||||
{_getText(textColor, text, isTop, true)}
|
||||
<View style={[styles.container, barColor && { backgroundColor: barColor }]}>
|
||||
<View
|
||||
style={[
|
||||
styles.powerBar,
|
||||
barPercentColor && { backgroundColor: barPercentColor },
|
||||
{ width: _calculateWidth(percent, margin) },
|
||||
]}
|
||||
/>
|
||||
</View>
|
||||
{_getText(textColor, text, isTop, false)}
|
||||
</View>
|
||||
);
|
||||
|
||||
const _calculateWidth = (percent, margin = null) => {
|
||||
if (percent) {
|
||||
const per = 100 / percent;
|
||||
|
||||
return Dimensions.get('window').width / per - margin;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
const _getText = (textColor, text, isTop, isRender) => {
|
||||
if (isTop === isRender && text) {
|
||||
return (
|
||||
<View style={styles.percentTitleWrapper}>
|
||||
<Text style={[styles.percentTitle, textColor && { color: textColor }]}>{text}</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
export default PercentBar;
|
23
src/components/basicUIElements/view/postPlaceHolderStyles.js
Normal file
23
src/components/basicUIElements/view/postPlaceHolderStyles.js
Normal file
@ -0,0 +1,23 @@
|
||||
import EStyleSheet from 'react-native-extended-stylesheet';
|
||||
|
||||
export default EStyleSheet.create({
|
||||
container: {
|
||||
backgroundColor: '$white',
|
||||
padding: 20,
|
||||
borderStyle: 'solid',
|
||||
borderWidth: 1,
|
||||
borderTopWidth: 1,
|
||||
borderColor: '#e2e5e8',
|
||||
borderRadius: 5,
|
||||
marginRight: 0,
|
||||
marginLeft: 0,
|
||||
marginTop: 10,
|
||||
},
|
||||
textWrapper: {
|
||||
flexDirection: 'row',
|
||||
marginBottom: 10,
|
||||
},
|
||||
paragraphWrapper: {
|
||||
marginTop: 10,
|
||||
},
|
||||
});
|
28
src/components/basicUIElements/view/postPlaceHolderView.js
Normal file
28
src/components/basicUIElements/view/postPlaceHolderView.js
Normal file
@ -0,0 +1,28 @@
|
||||
import React from 'react';
|
||||
import { View, Fragment } from 'react-native';
|
||||
import Placeholder from 'rn-placeholder';
|
||||
|
||||
import styles from './postPlaceHolderStyles';
|
||||
|
||||
const PostPlaceHolder = () => (
|
||||
<View style={styles.container}>
|
||||
<View style={styles.textWrapper}>
|
||||
<Placeholder.Media size={25} hasRadius animate="fade" />
|
||||
<Placeholder.Line width="30%" lastLineWidth="30%" animate="fade" />
|
||||
</View>
|
||||
<Placeholder.Box animate="fade" height={200} width="100%" radius={5} />
|
||||
<View style={styles.paragraphWrapper}>
|
||||
<Placeholder.Paragraph
|
||||
lineNumber={3}
|
||||
textSize={16}
|
||||
lineSpacing={5}
|
||||
width="100%"
|
||||
lastLineWidth="70%"
|
||||
firstLineWidth="50%"
|
||||
animate="fade"
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
|
||||
export default PostPlaceHolder;
|
@ -375,7 +375,7 @@ class Comment extends React.PureComponent {
|
||||
flexDirection:
|
||||
'row',
|
||||
borderColor:
|
||||
'lightgray',
|
||||
'$primaryLightGray',
|
||||
borderWidth: 1,
|
||||
borderRadius: 10,
|
||||
}}
|
||||
|
@ -1,7 +1,5 @@
|
||||
import React, { Component } from 'react';
|
||||
import {
|
||||
View, Text, Image, TextInput,
|
||||
} from 'react-native';
|
||||
import { View, TextInput } from 'react-native';
|
||||
import Ionicons from 'react-native-vector-icons/Ionicons';
|
||||
import FastImage from 'react-native-fast-image';
|
||||
|
||||
@ -30,7 +28,7 @@ class FormInputView extends Component {
|
||||
|
||||
this.state = {
|
||||
value: '',
|
||||
inputBorderColor:"$iconColor",
|
||||
inputBorderColor: '#c1c5c7',
|
||||
isValid: true,
|
||||
};
|
||||
}
|
||||
@ -93,7 +91,7 @@ class FormInputView extends Component {
|
||||
})
|
||||
}
|
||||
onSubmitEditing={() => this.setState({
|
||||
inputBorderColor:"$iconColor",
|
||||
inputBorderColor: '$iconColor',
|
||||
})
|
||||
}
|
||||
autoCapitalize="none"
|
||||
@ -101,9 +99,7 @@ class FormInputView extends Component {
|
||||
placeholder={placeholder}
|
||||
editable={isEditable || true}
|
||||
textContentType={type}
|
||||
onChangeText={(value) => {
|
||||
this._handleOnChange(value);
|
||||
}}
|
||||
onChangeText={val => this._handleOnChange(val)}
|
||||
value={value}
|
||||
style={styles.textInput}
|
||||
/>
|
||||
|
42
src/components/header/container/headerContainer.js
Normal file
42
src/components/header/container/headerContainer.js
Normal file
@ -0,0 +1,42 @@
|
||||
import React, { Component } from 'react';
|
||||
import { withNavigation } from 'react-navigation';
|
||||
|
||||
// Services and Actions
|
||||
|
||||
// Middleware
|
||||
|
||||
// Constants
|
||||
|
||||
// Utilities
|
||||
|
||||
// Component
|
||||
import { HeaderView } from '..';
|
||||
|
||||
/*
|
||||
* Props Name Description Value
|
||||
*@props --> props name here description here Value Type Here
|
||||
*
|
||||
*/
|
||||
|
||||
class HeaderContainer extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {};
|
||||
}
|
||||
|
||||
// Component Life Cycle Functions
|
||||
|
||||
// Component Functions
|
||||
|
||||
_handleOpenDrawer = () => {
|
||||
const { navigation } = this.props;
|
||||
|
||||
navigation.openDrawer();
|
||||
};
|
||||
|
||||
render() {
|
||||
return <HeaderView handleOpenDrawer={this._handleOpenDrawer} {...this.props} />;
|
||||
}
|
||||
}
|
||||
|
||||
export default withNavigation(HeaderContainer);
|
5
src/components/header/index.js
Normal file
5
src/components/header/index.js
Normal file
@ -0,0 +1,5 @@
|
||||
import HeaderView from './view/headerView';
|
||||
import Header from './container/headerContainer';
|
||||
|
||||
export { HeaderView, Header };
|
||||
export default Header;
|
42
src/components/header/view/headerStyles.js
Normal file
42
src/components/header/view/headerStyles.js
Normal file
@ -0,0 +1,42 @@
|
||||
import EStyleSheet from 'react-native-extended-stylesheet';
|
||||
|
||||
export default EStyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
flexDirection: 'row',
|
||||
width: '$deviceWidth',
|
||||
minHeight: 40,
|
||||
maxHeight: 74,
|
||||
backgroundColor: '$white',
|
||||
},
|
||||
|
||||
avatarWrapper: {
|
||||
backgroundColor: '#357ce6',
|
||||
height: 50,
|
||||
width: 68,
|
||||
borderTopRightRadius: 68 / 2,
|
||||
borderBottomRightRadius: 68 / 2,
|
||||
justifyContent: 'center',
|
||||
},
|
||||
titleWrapper: {
|
||||
flexDirection: 'column',
|
||||
justifyContent: 'center',
|
||||
marginLeft: 8,
|
||||
},
|
||||
title: {
|
||||
fontSize: 14,
|
||||
fontWeight: 'bold',
|
||||
color: '$primaryDarkGray',
|
||||
},
|
||||
subTitle: {
|
||||
color: '$primaryDarkGray',
|
||||
fontSize: 12,
|
||||
},
|
||||
avatar: {
|
||||
width: 32,
|
||||
height: 32,
|
||||
borderRadius: 32 / 2,
|
||||
alignSelf: 'flex-end',
|
||||
marginRight: 12,
|
||||
},
|
||||
});
|
51
src/components/header/view/headerView.js
Normal file
51
src/components/header/view/headerView.js
Normal file
@ -0,0 +1,51 @@
|
||||
import React, { Component } from 'react';
|
||||
import {
|
||||
View, StatusBar, Text, SafeAreaView, TouchableOpacity,
|
||||
} from 'react-native';
|
||||
import FastImage from 'react-native-fast-image';
|
||||
// Constants
|
||||
|
||||
// Components
|
||||
|
||||
// Styles
|
||||
import styles from './headerStyles';
|
||||
|
||||
const DEFAULT_IMAGE = require('../../../assets/esteem.png');
|
||||
|
||||
class HeaderView extends Component {
|
||||
/* Props
|
||||
* ------------------------------------------------
|
||||
* @prop { boolean } hideStatusBar - Can declare status bar is hide or not.
|
||||
*
|
||||
*/
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {};
|
||||
}
|
||||
|
||||
// Component Life Cycles
|
||||
|
||||
// Component Functions
|
||||
|
||||
render() {
|
||||
const { avatar, handleOpenDrawer, hideStatusBar } = this.props;
|
||||
|
||||
return (
|
||||
<SafeAreaView style={styles.container}>
|
||||
<StatusBar hidden={hideStatusBar} translucent />
|
||||
<TouchableOpacity onPress={() => handleOpenDrawer()}>
|
||||
<View style={styles.avatarWrapper}>
|
||||
<FastImage style={styles.avatar} source={avatar} defaultSource={DEFAULT_IMAGE} />
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
<View style={styles.titleWrapper}>
|
||||
<Text style={styles.title}> eSteem Project </Text>
|
||||
<Text style={styles.subTitle}> @u-e (63)</Text>
|
||||
</View>
|
||||
</SafeAreaView>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default HeaderView;
|
4
src/components/percentBar/index.js
Normal file
4
src/components/percentBar/index.js
Normal file
@ -0,0 +1,4 @@
|
||||
import PercentBar from './view/percentBarView';
|
||||
|
||||
export { PercentBar };
|
||||
export default PercentBar;
|
@ -4,7 +4,7 @@ export default EStyleSheet.create({
|
||||
container: {
|
||||
backgroundColor: '$primaryLightBlue',
|
||||
height: 2,
|
||||
marginVertical: 4,
|
||||
marginVertical: 2,
|
||||
borderRadius: 50,
|
||||
},
|
||||
powerBar: {
|
||||
@ -19,6 +19,7 @@ export default EStyleSheet.create({
|
||||
percentTitle: {
|
||||
color: '$primaryBlue',
|
||||
fontSize: 11,
|
||||
marginVertical: 10,
|
||||
marginVertical: 1,
|
||||
height: 15,
|
||||
},
|
||||
});
|
79
src/components/percentBar/view/percentBarView.js
Normal file
79
src/components/percentBar/view/percentBarView.js
Normal file
@ -0,0 +1,79 @@
|
||||
import React, { Component } from 'react';
|
||||
import {
|
||||
View, Dimensions, Text, TouchableOpacity,
|
||||
} from 'react-native';
|
||||
|
||||
// Constants
|
||||
|
||||
// Components
|
||||
|
||||
// Styles
|
||||
import styles from './percentBarStyles';
|
||||
|
||||
class PercentBarView extends Component {
|
||||
/* Props
|
||||
* ------------------------------------------------
|
||||
* @prop { string } barColor - Bar color proferties
|
||||
* @prop { string } barPercentColor - Bar background color properties
|
||||
* @prop { number } margin - If you use with margin right and left you should declare that if it neccessary
|
||||
* @prop { number } percent - Percent for bar (ex: %32 just send 32)
|
||||
* @prop { string } text - Text string
|
||||
* @prop { string } textColor - Text color
|
||||
*
|
||||
*/
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {};
|
||||
}
|
||||
|
||||
// Component Life Cycles
|
||||
|
||||
// Component Functions
|
||||
_calculateWidth = (percent, margin = null) => {
|
||||
if (percent) {
|
||||
const per = 100 / percent;
|
||||
|
||||
return Dimensions.get('window').width / per - margin;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
_getText = (textColor, text, isTop, isRender) => {
|
||||
const { isShowText } = this.props;
|
||||
|
||||
if (isTop === isRender && text) {
|
||||
return (
|
||||
<View style={styles.percentTitleWrapper}>
|
||||
<Text style={[styles.percentTitle, textColor && { color: textColor }]}>
|
||||
{isShowText && text}
|
||||
</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
render() {
|
||||
const {
|
||||
percent, margin, text, barColor, barPercentColor, textColor, isTop,
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
<View>
|
||||
{this._getText(textColor, text, isTop, true)}
|
||||
<View style={[styles.container, barColor && { backgroundColor: barColor }]}>
|
||||
<View
|
||||
style={[
|
||||
styles.powerBar,
|
||||
barPercentColor && { backgroundColor: barPercentColor },
|
||||
{ width: this._calculateWidth(percent, margin) },
|
||||
]}
|
||||
/>
|
||||
</View>
|
||||
{this._getText(textColor, text, isTop, false)}
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default PercentBarView;
|
35
src/components/posts/container/postsContainer.js
Normal file
35
src/components/posts/container/postsContainer.js
Normal file
@ -0,0 +1,35 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
// Services and Actions
|
||||
|
||||
// Middleware
|
||||
|
||||
// Constants
|
||||
|
||||
// Utilities
|
||||
|
||||
// Component
|
||||
import { PostsView } from '..';
|
||||
|
||||
/*
|
||||
* Props Name Description Value
|
||||
*@props --> props name here description here Value Type Here
|
||||
*
|
||||
*/
|
||||
|
||||
class PostsContainer extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {};
|
||||
}
|
||||
|
||||
// Component Life Cycle Functions
|
||||
|
||||
// Component Functions
|
||||
|
||||
render() {
|
||||
return <PostsView {...this.props} />;
|
||||
}
|
||||
}
|
||||
|
||||
export default PostsContainer;
|
5
src/components/posts/index.js
Normal file
5
src/components/posts/index.js
Normal file
@ -0,0 +1,5 @@
|
||||
import PostsView from './view/postsView';
|
||||
import Posts from './container/postsContainer';
|
||||
|
||||
export { PostsView, Posts };
|
||||
export default Posts;
|
@ -1,12 +1,9 @@
|
||||
import EStyleSheet from 'react-native-extended-stylesheet';
|
||||
|
||||
export default EStyleSheet.create({
|
||||
container: {
|
||||
backgroundColor: '#F9F9F9',
|
||||
flex: 1,
|
||||
},
|
||||
container: {},
|
||||
placeholder: {
|
||||
backgroundColor: 'white',
|
||||
backgroundColor: '$white',
|
||||
padding: 20,
|
||||
borderStyle: 'solid',
|
||||
borderWidth: 1,
|
||||
@ -27,6 +24,6 @@ export default EStyleSheet.create({
|
||||
alignItems: 'center',
|
||||
marginTop: 10,
|
||||
marginBottom: 40,
|
||||
borderColor: '#CED0CE',
|
||||
borderColor: '$borderColor',
|
||||
},
|
||||
});
|
169
src/components/posts/view/postsView.js
Normal file
169
src/components/posts/view/postsView.js
Normal file
@ -0,0 +1,169 @@
|
||||
import React, { Component, Fragment } from 'react';
|
||||
import {
|
||||
FlatList, View, ActivityIndicator, AppState,
|
||||
} from 'react-native';
|
||||
|
||||
// import Placeholder from 'rn-placeholder';
|
||||
|
||||
// STEEM
|
||||
import { getPosts } from '../../../providers/steem/dsteem';
|
||||
|
||||
// COMPONENTS
|
||||
import { PostCard } from '../../postCard';
|
||||
import { FilterBar } from '../../filterBar';
|
||||
import { PostPlaceHolder } from '../../basicUIElements';
|
||||
// Styles
|
||||
import styles from './postsStyles';
|
||||
|
||||
class FeedView extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
isReady: false,
|
||||
posts: [],
|
||||
startAuthor: '',
|
||||
startPermlink: '',
|
||||
refreshing: false,
|
||||
isLoading: false,
|
||||
appState: AppState.currentState,
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this._loadPosts();
|
||||
AppState.addEventListener('change', this._handleAppStateChange);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
AppState.removeEventListener('change', this._handleAppStateChange);
|
||||
}
|
||||
|
||||
_handleAppStateChange = (nextAppState) => {
|
||||
if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
|
||||
alert('App has come to the foreground!');
|
||||
}
|
||||
this.setState({ appState: nextAppState });
|
||||
};
|
||||
|
||||
_loadPosts = () => {
|
||||
const { user, getFor, tag } = this.props;
|
||||
|
||||
getPosts(getFor, { tag, limit: 10 }, user.name)
|
||||
.then((result) => {
|
||||
if (result) {
|
||||
this.setState({
|
||||
isReady: true,
|
||||
posts: result,
|
||||
startAuthor: result[result.length - 1].author,
|
||||
startPermlink: result[result.length - 1].permlink,
|
||||
refreshing: false,
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
alert(err);
|
||||
});
|
||||
};
|
||||
|
||||
_loadMore = () => {
|
||||
const { posts, startAuthor, startPermlink } = this.state;
|
||||
const { user, getFor, tag } = this.props;
|
||||
|
||||
this.setState({ isLoading: true });
|
||||
|
||||
getPosts(
|
||||
getFor,
|
||||
{
|
||||
tag,
|
||||
limit: 10,
|
||||
start_author: startAuthor,
|
||||
start_permlink: startPermlink,
|
||||
},
|
||||
user.name,
|
||||
).then((result) => {
|
||||
const _posts = result;
|
||||
_posts.shift();
|
||||
this.setState({
|
||||
posts: [...posts, ..._posts],
|
||||
startAuthor: result[result.length - 1].author,
|
||||
startPermlink: result[result.length - 1].permlink,
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
_handleOnRefreshPosts = () => {
|
||||
this.setState(
|
||||
{
|
||||
refreshing: true,
|
||||
},
|
||||
() => {
|
||||
this._loadPosts();
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
renderFooter = () => {
|
||||
const { isLoading } = this.state;
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
<View style={styles.flatlistFooter}>
|
||||
<ActivityIndicator animating size="large" />
|
||||
</View>
|
||||
);
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
_getRenderItem = () => {
|
||||
const { isReady, refreshing, posts } = this.state;
|
||||
const { componentId, user } = this.props;
|
||||
|
||||
if (isReady) {
|
||||
return (
|
||||
<Fragment>
|
||||
<FilterBar
|
||||
dropdownIconName="md-arrow-dropdown"
|
||||
options={[
|
||||
'ALL NOTIFICATION',
|
||||
'LATEST NOTF',
|
||||
'ESTEEMAPP',
|
||||
'UGUR ERDAL',
|
||||
'ONLY YESTERDAY',
|
||||
]}
|
||||
defaultText="NEW POST"
|
||||
rightIconName="md-apps"
|
||||
/>
|
||||
<FlatList
|
||||
data={posts}
|
||||
showsVerticalScrollIndicator={false}
|
||||
renderItem={({ item }) => (
|
||||
<PostCard componentId={componentId} content={item} user={user} isLoggedIn />
|
||||
)}
|
||||
keyExtractor={(post, index) => index.toString()}
|
||||
onEndReached={this._loadMore}
|
||||
removeClippedSubviews
|
||||
refreshing={refreshing}
|
||||
onRefresh={() => this._handleOnRefreshPosts()}
|
||||
onEndThreshold={0}
|
||||
initialNumToRender={10}
|
||||
ListFooterComponent={this.renderFooter}
|
||||
/>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Fragment>
|
||||
<PostPlaceHolder />
|
||||
<PostPlaceHolder />
|
||||
</Fragment>
|
||||
);
|
||||
};
|
||||
|
||||
render() {
|
||||
return <View>{this._getRenderItem()}</View>;
|
||||
}
|
||||
}
|
||||
|
||||
export default FeedView;
|
@ -1,5 +1,7 @@
|
||||
import React, { Component } from 'react';
|
||||
import { View, Image, Text } from 'react-native';
|
||||
import React, { Component, Fragment } from 'react';
|
||||
import {
|
||||
View, Image, Text, TouchableOpacity,
|
||||
} from 'react-native';
|
||||
import { DropdownButton } from '../../dropdownButton';
|
||||
|
||||
// Constants
|
||||
@ -7,7 +9,7 @@ import DEFAULT_IMAGE from '../../../assets/default_cover_image.png';
|
||||
|
||||
// Components
|
||||
import { TextWithIcon } from '../../basicUIElements';
|
||||
import { PercentBar } from '../../basicUIElements';
|
||||
import { PercentBar } from '../../percentBar';
|
||||
import { IconButton } from '../../iconButton';
|
||||
// Styles
|
||||
// eslint-disable-next-line
|
||||
@ -21,26 +23,22 @@ class ProfileSummaryView extends Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {};
|
||||
this.state = {
|
||||
isShowPercentText: false,
|
||||
};
|
||||
}
|
||||
|
||||
// Component Life Cycles
|
||||
|
||||
// Component Functions
|
||||
_getFollowerCount = () => {
|
||||
const { followerCount } = this.props;
|
||||
return 32;
|
||||
};
|
||||
|
||||
_getFollowingCount = () => {
|
||||
const { followingCoung } = this.props;
|
||||
return 32;
|
||||
};
|
||||
|
||||
render() {
|
||||
const { isShowPercentText } = this.state;
|
||||
const {
|
||||
percent,
|
||||
hours,
|
||||
percentRC,
|
||||
percentVP,
|
||||
hoursVP,
|
||||
hoursRC,
|
||||
location,
|
||||
link,
|
||||
date,
|
||||
@ -48,11 +46,11 @@ class ProfileSummaryView extends Component {
|
||||
followerCount,
|
||||
coverImage,
|
||||
} = this.props;
|
||||
const votingPowerText = `Voting power:${{ percent }}% • Full in ${{ hours }}hours`;
|
||||
const rcsPowerText = 'RCs: 20% • Full in 36 hours';
|
||||
const votingPowerText = `Voting power: ${percentVP}% • Full in ${hoursVP} hours`;
|
||||
const rcsPowerText = `RCs: ${percentRC}% • Full in ${hoursRC} hours`;
|
||||
|
||||
return (
|
||||
<View>
|
||||
<Fragment>
|
||||
<View style={styles.textWithIconWrapper}>
|
||||
<TextWithIcon text={location} iconName="md-navigate" />
|
||||
<TextWithIcon isClickable text={link} iconName="md-globe" />
|
||||
@ -64,17 +62,25 @@ class ProfileSummaryView extends Component {
|
||||
source={{ uri: coverImage }}
|
||||
defaultSource={DEFAULT_IMAGE}
|
||||
/>
|
||||
|
||||
<PercentBar percent={percent} margin={24} isTop text={votingPowerText} />
|
||||
<PercentBar
|
||||
percent={percent}
|
||||
margin={24}
|
||||
barColor="#eafcef"
|
||||
barPercentColor="#11c28b"
|
||||
textColor="#11c28b"
|
||||
isTop={false}
|
||||
text={rcsPowerText}
|
||||
/>
|
||||
<TouchableOpacity onPress={() => this.setState({ isShowPercentText: !isShowPercentText })}>
|
||||
<PercentBar
|
||||
isShowText={isShowPercentText}
|
||||
percent={percentVP}
|
||||
margin={24}
|
||||
isTop
|
||||
text={votingPowerText}
|
||||
/>
|
||||
<PercentBar
|
||||
isShowText={isShowPercentText}
|
||||
percent={percentRC}
|
||||
margin={24}
|
||||
barColor="#eafcef"
|
||||
barPercentColor="#11c28b"
|
||||
textColor="#11c28b"
|
||||
isTop={false}
|
||||
text={rcsPowerText}
|
||||
/>
|
||||
</TouchableOpacity>
|
||||
|
||||
<View style={styles.footer}>
|
||||
<View style={styles.leftIcons}>
|
||||
@ -111,7 +117,7 @@ class ProfileSummaryView extends Component {
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ import { CollapsibleCard } from '../../collapsibleCard';
|
||||
import { WalletDetails } from '../../walletDetails';
|
||||
import { Transaction } from '../../transaction';
|
||||
|
||||
|
||||
// Styles
|
||||
import styles from './walletStyles';
|
||||
|
||||
@ -30,7 +29,7 @@ class WalletView extends Component {
|
||||
// Component Functions
|
||||
|
||||
render() {
|
||||
// const {} = this.props;
|
||||
const { user } = this.props;
|
||||
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
@ -53,7 +52,7 @@ class WalletView extends Component {
|
||||
</CollapsibleCard>
|
||||
|
||||
<CollapsibleCard titleColor="#788187" title="Wallet Details" expanded>
|
||||
<WalletDetails />
|
||||
<WalletDetails balance={user.balance} />
|
||||
</CollapsibleCard>
|
||||
|
||||
<Transaction />
|
||||
|
@ -25,13 +25,14 @@ class WalletDetailsView extends Component {
|
||||
// Component Functions
|
||||
|
||||
render() {
|
||||
const { balance } = this.props;
|
||||
return (
|
||||
<View>
|
||||
<WalletLineItem
|
||||
text="Steem"
|
||||
textColor="#3c4449"
|
||||
iconName="ios-information-circle-outline"
|
||||
rightText="27.178 STEEM"
|
||||
rightText={balance}
|
||||
isBoldText
|
||||
/>
|
||||
<GrayWrapper>
|
||||
|
@ -21,7 +21,7 @@ EStyleSheet.build({
|
||||
$primaryBlack: '#3c4449',
|
||||
|
||||
// General Colors
|
||||
$borderColor: '#ffff',
|
||||
$borderColor: '#CED0CE',
|
||||
$bubblesBlue: '#5CCDFF',
|
||||
$iconColor: '#c1c5c7',
|
||||
$dangerColor: '#fff',
|
||||
|
@ -1,10 +1,7 @@
|
||||
import React from 'react';
|
||||
import { createBottomTabNavigator } from 'react-navigation';
|
||||
import Icon from 'react-native-vector-icons/FontAwesome';
|
||||
import Home from '../screens/home/home';
|
||||
import { Notification } from '../screens/notification';
|
||||
import AuthorProfile from '../screens/authorProfile';
|
||||
import { Profile } from '../screens/profile';
|
||||
import { Home, Notification, Profile } from '../screens';
|
||||
|
||||
import { PostButton } from '../components/postButton';
|
||||
|
||||
@ -29,7 +26,7 @@ const BaseNavigator = createBottomTabNavigator(
|
||||
}),
|
||||
},
|
||||
AuthorProfile: {
|
||||
screen: AuthorProfile,
|
||||
screen: Profile,
|
||||
navigationOptions: () => ({
|
||||
tabBarIcon: ({ tintColor }) => <Icon name="envelope-o" color={tintColor} size={18} />,
|
||||
}),
|
||||
|
@ -23,7 +23,7 @@ export default EStyleSheet.create({
|
||||
alignSelf: 'center',
|
||||
},
|
||||
about: {
|
||||
borderColor: 'lightgray',
|
||||
borderColor: '$primaryLightGray',
|
||||
borderTopWidth: 1,
|
||||
borderBottomWidth: 1,
|
||||
flexDirection: 'row',
|
||||
|
35
src/screens/home/container/homeContainer.js
Normal file
35
src/screens/home/container/homeContainer.js
Normal file
@ -0,0 +1,35 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
// Services and Actions
|
||||
|
||||
// Middleware
|
||||
|
||||
// Constants
|
||||
|
||||
// Utilities
|
||||
|
||||
// Component
|
||||
import { HomeScreen } from '..';
|
||||
|
||||
/*
|
||||
* Props Name Description Value
|
||||
*@props --> props name here description here Value Type Here
|
||||
*
|
||||
*/
|
||||
|
||||
class HomeContainer extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {};
|
||||
}
|
||||
|
||||
// Component Life Cycle Functions
|
||||
|
||||
// Component Functions
|
||||
|
||||
render() {
|
||||
return <HomeScreen {...this.props} />;
|
||||
}
|
||||
}
|
||||
|
||||
export default HomeContainer;
|
@ -1,192 +0,0 @@
|
||||
import React, { Component } from 'react';
|
||||
import {
|
||||
FlatList, View, ActivityIndicator, AppState,
|
||||
} from 'react-native';
|
||||
import Placeholder from 'rn-placeholder';
|
||||
import styles from '../../styles/feed.styles';
|
||||
// STEEM
|
||||
import { getPosts } from '../../providers/steem/dsteem';
|
||||
|
||||
// LIBRARIES
|
||||
|
||||
// COMPONENTS
|
||||
import { PostCard } from '../../components/postCard';
|
||||
import { FilterBar } from '../../components/filterBar';
|
||||
|
||||
/* eslint-enable no-unused-vars */
|
||||
|
||||
class FeedPage extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.getFeed = this.getFeed.bind(this);
|
||||
this.getMore = this.getMore.bind(this);
|
||||
this.refreshPosts = this.refreshPosts.bind(this);
|
||||
this.state = {
|
||||
isReady: false,
|
||||
posts: [],
|
||||
start_author: '',
|
||||
start_permlink: '',
|
||||
refreshing: false,
|
||||
loading: false,
|
||||
appState: AppState.currentState,
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
AppState.addEventListener('change', this._handleAppStateChange);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
AppState.removeEventListener('change', this._handleAppStateChange);
|
||||
}
|
||||
|
||||
_handleAppStateChange = (nextAppState) => {
|
||||
if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
|
||||
alert('App has come to the foreground!');
|
||||
}
|
||||
this.setState({ appState: nextAppState });
|
||||
};
|
||||
|
||||
componentWillMount() {
|
||||
this.getFeed();
|
||||
}
|
||||
|
||||
getFeed = () => {
|
||||
getPosts('feed', { tag: this.props.user.name, limit: 10 }, this.props.user.name)
|
||||
.then((result) => {
|
||||
// TODO: We should put null check for result
|
||||
this.setState({
|
||||
isReady: true,
|
||||
posts: result,
|
||||
start_author: result[result.length - 1].author,
|
||||
start_permlink: result[result.length - 1].permlink,
|
||||
refreshing: false,
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
alert(err);
|
||||
});
|
||||
};
|
||||
|
||||
getMore = () => {
|
||||
this.setState({ loading: true });
|
||||
getPosts(
|
||||
'feed',
|
||||
{
|
||||
tag: this.props.user.name,
|
||||
limit: 10,
|
||||
start_author: this.state.start_author,
|
||||
start_permlink: this.state.start_permlink,
|
||||
},
|
||||
this.props.user.name,
|
||||
).then((result) => {
|
||||
const posts = result;
|
||||
posts.shift();
|
||||
this.setState({
|
||||
posts: [...this.state.posts, ...posts],
|
||||
start_author: result[result.length - 1].author,
|
||||
start_permlink: result[result.length - 1].permlink,
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
refreshPosts = () => {
|
||||
this.setState(
|
||||
{
|
||||
refreshing: true,
|
||||
},
|
||||
() => {
|
||||
this.getFeed();
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
renderFooter = () => {
|
||||
if (!this.state.loading) return null;
|
||||
|
||||
return (
|
||||
<View style={styles.flatlistFooter}>
|
||||
<ActivityIndicator animating size="large" />
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<View style={{ flex: 1 }}>
|
||||
{this.state.isReady && (
|
||||
<FilterBar
|
||||
dropdownIconName="md-arrow-dropdown"
|
||||
options={[
|
||||
'ALL NOTIFICATION',
|
||||
'LATEST NOTF',
|
||||
'ESTEEMAPP',
|
||||
'UGUR ERDAL',
|
||||
'ONLY YESTERDAY',
|
||||
]}
|
||||
defaultText="NEW POST"
|
||||
rightIconName="md-apps"
|
||||
/>
|
||||
)}
|
||||
{this.state.isReady ? (
|
||||
<FlatList
|
||||
data={this.state.posts}
|
||||
showsVerticalScrollIndicator={false}
|
||||
renderItem={({ item }) => (
|
||||
<PostCard
|
||||
componentId={this.props.componentId}
|
||||
content={item}
|
||||
user={this.props.user}
|
||||
isLoggedIn
|
||||
/>
|
||||
)}
|
||||
keyExtractor={(post, index) => index.toString()}
|
||||
onEndReached={this.getMore}
|
||||
removeClippedSubviews
|
||||
refreshing={this.state.refreshing}
|
||||
onRefresh={() => this.refreshPosts()}
|
||||
onEndThreshold={0}
|
||||
initialNumToRender={10}
|
||||
ListFooterComponent={this.renderFooter}
|
||||
/>
|
||||
) : (
|
||||
<View>
|
||||
<View style={styles.placeholder}>
|
||||
<Placeholder.ImageContent
|
||||
size={60}
|
||||
animate="fade"
|
||||
lineNumber={4}
|
||||
lineSpacing={5}
|
||||
lastLineWidth="30%"
|
||||
onReady={this.state.isReady}
|
||||
/>
|
||||
</View>
|
||||
<View style={styles.placeholder}>
|
||||
<Placeholder.ImageContent
|
||||
size={60}
|
||||
animate="fade"
|
||||
lineNumber={4}
|
||||
lineSpacing={5}
|
||||
lastLineWidth="30%"
|
||||
onReady={this.state.isReady}
|
||||
/>
|
||||
</View>
|
||||
<View style={styles.placeholder}>
|
||||
<Placeholder.ImageContent
|
||||
size={60}
|
||||
animate="fade"
|
||||
lineNumber={4}
|
||||
lineSpacing={5}
|
||||
lastLineWidth="30%"
|
||||
onReady={this.state.isReady}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
)}
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default FeedPage;
|
@ -1,227 +0,0 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import {
|
||||
Text, View, Dimensions, TouchableOpacity,
|
||||
} from 'react-native';
|
||||
|
||||
import ScrollableTabView from '@esteemapp/react-native-scrollable-tab-view';
|
||||
|
||||
import Ionicons from 'react-native-vector-icons/Ionicons';
|
||||
|
||||
import FastImage from 'react-native-fast-image';
|
||||
|
||||
import Placeholder from 'rn-placeholder';
|
||||
|
||||
// REDUX
|
||||
import { connect } from 'react-redux';
|
||||
import TabBar from '../../components/tabBar';
|
||||
import { fetchAccount } from '../../redux/actions/userActions';
|
||||
import store from '../../redux/store/store';
|
||||
|
||||
// STEEM
|
||||
import { getUserData, getAuthStatus } from '../../realm/realm';
|
||||
import { getUser } from '../../providers/steem/dsteem';
|
||||
|
||||
// SCREENS
|
||||
import HotPage from './hot';
|
||||
import FeedPage from './feed';
|
||||
import TrendingPage from './trending';
|
||||
|
||||
export default class Home extends PureComponent {
|
||||
static navigationOptions = {
|
||||
title: 'Home',
|
||||
};
|
||||
// static get options() {
|
||||
// return {
|
||||
// _statusBar: {
|
||||
// visible: true,
|
||||
// drawBehind: false,
|
||||
// },
|
||||
// topBar: {
|
||||
// animate: true,
|
||||
// hideOnScroll: true,
|
||||
// drawBehind: false,
|
||||
// noBorder: true,
|
||||
// elevation: 0,
|
||||
// },
|
||||
// layout: {
|
||||
// backgroundColor: '#f5fcff',
|
||||
// },
|
||||
// bottomTabs: {
|
||||
// visible: true,
|
||||
// drawBehind: true,
|
||||
// },
|
||||
// };
|
||||
// }
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
// Navigation.events().bindComponent(this); // <== Will be automatically unregistered when unmounted
|
||||
this.state = {
|
||||
user: {
|
||||
name: 'null',
|
||||
},
|
||||
isLoggedIn: false,
|
||||
isLoading: true,
|
||||
category: 'HOT',
|
||||
options: ['HOT', 'TRENDING', 'CLOSE'],
|
||||
};
|
||||
}
|
||||
|
||||
navigationButtonPressed({ buttonId }) {
|
||||
if (buttonId === 'search') {
|
||||
// Navigation.showOverlay({
|
||||
// component: {
|
||||
// name: 'navigation.eSteem.Search',
|
||||
// },
|
||||
// options: {
|
||||
// overlay: {
|
||||
// interceptTouchOutside: true,
|
||||
// },
|
||||
// },
|
||||
// });
|
||||
}
|
||||
}
|
||||
|
||||
showActionSheet = () => {
|
||||
this.ActionSheet.show();
|
||||
};
|
||||
|
||||
async componentDidMount() {
|
||||
let user;
|
||||
let userData;
|
||||
let isLoggedIn;
|
||||
|
||||
await getAuthStatus().then((res) => {
|
||||
isLoggedIn = res;
|
||||
});
|
||||
|
||||
if (isLoggedIn) {
|
||||
await getUserData().then((res) => {
|
||||
user = Array.from(res);
|
||||
});
|
||||
userData = await getUser(user[0].username);
|
||||
|
||||
this.setState({
|
||||
user: userData,
|
||||
isLoggedIn,
|
||||
isLoading: false,
|
||||
});
|
||||
} else {
|
||||
await this.setState({
|
||||
isLoading: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<View style={styles.root} key="overlay">
|
||||
<ScrollableTabView
|
||||
style={styles.tabView}
|
||||
renderTabBar={() => (
|
||||
<TabBar
|
||||
style={styles.tabbar}
|
||||
tabUnderlineDefaultWidth={80} // default containerWidth / (numberOfTabs * 4)
|
||||
tabUnderlineScaleX={2} // default 3
|
||||
activeColor="#357ce6"
|
||||
inactiveColor="#222"
|
||||
tabBarPosition="overlayTop"
|
||||
/>
|
||||
)}
|
||||
>
|
||||
<View tabLabel="Feed" style={styles.tabbarItem}>
|
||||
{this.state.isLoggedIn ? (
|
||||
<FeedPage
|
||||
user={this.state.user}
|
||||
isLoggedIn={this.state.isLoggedIn}
|
||||
componentId={this.props.componentId}
|
||||
/>
|
||||
) : (
|
||||
<Text>Login to see your Feed</Text>
|
||||
)}
|
||||
</View>
|
||||
<View tabLabel="Hot" style={styles.tabbarItem}>
|
||||
<HotPage
|
||||
user={this.state.user}
|
||||
isLoggedIn={this.state.isLoggedIn}
|
||||
componentId={this.props.componentId}
|
||||
/>
|
||||
</View>
|
||||
<View tabLabel="Trending" style={styles.tabbarItem}>
|
||||
<TrendingPage
|
||||
user={this.state.user}
|
||||
isLoggedIn={this.state.isLoggedIn}
|
||||
componentId={this.props.componentId}
|
||||
/>
|
||||
</View>
|
||||
</ScrollableTabView>
|
||||
<View style={styles.buttonContainer} />
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const styles = {
|
||||
root: {
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
flex: 1,
|
||||
},
|
||||
buttonContainer: {
|
||||
width: '50%',
|
||||
alignItems: 'center',
|
||||
},
|
||||
tabView: {
|
||||
alignSelf: 'center',
|
||||
backgroundColor: 'transparent',
|
||||
},
|
||||
tabbar: {
|
||||
alignSelf: 'center',
|
||||
height: 40,
|
||||
backgroundColor: 'white',
|
||||
},
|
||||
tabbarItem: {
|
||||
flex: 1,
|
||||
backgroundColor: '#f9f9f9',
|
||||
minWidth: Dimensions.get('window').width,
|
||||
},
|
||||
container: {
|
||||
backgroundColor: '#F9F9F9',
|
||||
flex: 1,
|
||||
},
|
||||
tabs: {
|
||||
flex: 1,
|
||||
},
|
||||
placeholder: {
|
||||
backgroundColor: 'white',
|
||||
padding: 20,
|
||||
borderStyle: 'solid',
|
||||
borderWidth: 1,
|
||||
borderTopWidth: 1,
|
||||
borderColor: '#e2e5e8',
|
||||
borderRadius: 5,
|
||||
marginRight: 0,
|
||||
marginLeft: 0,
|
||||
marginTop: 10,
|
||||
},
|
||||
header: {
|
||||
backgroundColor: '#284b78',
|
||||
borderBottomWidth: 0,
|
||||
borderColor: '#284b78',
|
||||
},
|
||||
avatar: {
|
||||
width: 30,
|
||||
height: 30,
|
||||
borderRadius: 15,
|
||||
borderWidth: 1,
|
||||
borderColor: 'white',
|
||||
},
|
||||
searchButton: {
|
||||
color: 'white',
|
||||
fontWeight: 'bold',
|
||||
},
|
||||
loginButton: {
|
||||
alignSelf: 'center',
|
||||
marginTop: 100,
|
||||
},
|
||||
};
|
@ -1,179 +0,0 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
import React, { Component } from 'react';
|
||||
import { FlatList, View, ActivityIndicator } from 'react-native';
|
||||
|
||||
import Placeholder from 'rn-placeholder';
|
||||
import styles from '../../styles/hot.styles';
|
||||
|
||||
// STEEM
|
||||
import { getPosts } from '../../providers/steem/dsteem';
|
||||
|
||||
// LIBRARIES
|
||||
|
||||
// COMPONENTS
|
||||
import { PostCard } from '../../components/postCard';
|
||||
import { FilterBar } from '../../components/filterBar';
|
||||
|
||||
// SCREENS
|
||||
/* eslint-enable no-unused-vars */
|
||||
|
||||
class HotPage extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.getHotPosts = this.getHotPosts.bind(this);
|
||||
this.getMoreHot = this.getMoreHot.bind(this);
|
||||
this.refreshHotPosts = this.refreshHotPosts.bind(this);
|
||||
this.state = {
|
||||
isReady: false,
|
||||
posts: [],
|
||||
start_author: '',
|
||||
start_permlink: '',
|
||||
refreshing: false,
|
||||
loading: false,
|
||||
isLoggedIn: this.props.isLoggedIn,
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
console.log(this.props);
|
||||
this.getHotPosts();
|
||||
}
|
||||
|
||||
getHotPosts = () => {
|
||||
getPosts('hot', { tag: '', limit: 10 }, this.props.user.name)
|
||||
.then((result) => {
|
||||
this.setState({
|
||||
isReady: true,
|
||||
posts: result,
|
||||
start_author: result[result.length - 1].author,
|
||||
start_permlink: result[result.length - 1].permlink,
|
||||
refreshing: false,
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
alert(err);
|
||||
});
|
||||
};
|
||||
|
||||
getMoreHot = () => {
|
||||
this.setState({ loading: true });
|
||||
getPosts(
|
||||
'hot',
|
||||
{
|
||||
tag: '',
|
||||
limit: 10,
|
||||
start_author: this.state.start_author,
|
||||
start_permlink: this.state.start_permlink,
|
||||
},
|
||||
this.props.user.name,
|
||||
).then((result) => {
|
||||
const posts = result;
|
||||
posts.shift();
|
||||
this.setState({
|
||||
posts: [...this.state.posts, ...posts],
|
||||
start_author: result[result.length - 1].author,
|
||||
start_permlink: result[result.length - 1].permlink,
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
refreshHotPosts = () => {
|
||||
this.setState(
|
||||
{
|
||||
refreshing: true,
|
||||
},
|
||||
() => {
|
||||
this.getHotPosts();
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
renderFooter = () => {
|
||||
if (!this.state.loading) return null;
|
||||
|
||||
return (
|
||||
<View style={styles.flatlistFooter}>
|
||||
<ActivityIndicator animating size="large" />
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<View style={{ flex: 1 }}>
|
||||
{this.state.isReady && (
|
||||
<FilterBar
|
||||
dropdownIconName="md-arrow-dropdown"
|
||||
options={[
|
||||
'ALL NOTIFICATION',
|
||||
'LATEST NOTF',
|
||||
'ESTEEMAPP',
|
||||
'UGUR ERDAL',
|
||||
'ONLY YESTERDAY',
|
||||
]}
|
||||
defaultText="NEW POST"
|
||||
rightIconName="md-apps"
|
||||
/>
|
||||
)}
|
||||
{this.state.isReady ? (
|
||||
<FlatList
|
||||
data={this.state.posts}
|
||||
showsVerticalScrollIndicator={false}
|
||||
renderItem={({ item }) => (
|
||||
<PostCard
|
||||
componentId={this.props.componentId}
|
||||
content={item}
|
||||
user={this.props.user}
|
||||
isLoggedIn={this.state.isLoggedIn}
|
||||
/>
|
||||
)}
|
||||
keyExtractor={(post, index) => index.toString()}
|
||||
onEndReached={this.getMore}
|
||||
removeClippedSubviews
|
||||
refreshing={this.state.refreshing}
|
||||
onRefresh={() => this.refreshHotPosts()}
|
||||
onEndThreshold={0}
|
||||
initialNumToRender={10}
|
||||
ListFooterComponent={this.renderFooter}
|
||||
/>
|
||||
) : (
|
||||
<View>
|
||||
<View style={styles.placeholder}>
|
||||
<Placeholder.ImageContent
|
||||
size={60}
|
||||
animate="fade"
|
||||
lineNumber={4}
|
||||
lineSpacing={5}
|
||||
lastLineWidth="30%"
|
||||
onReady={this.state.isReady}
|
||||
/>
|
||||
</View>
|
||||
<View style={styles.placeholder}>
|
||||
<Placeholder.ImageContent
|
||||
size={60}
|
||||
animate="fade"
|
||||
lineNumber={4}
|
||||
lineSpacing={5}
|
||||
lastLineWidth="30%"
|
||||
onReady={this.state.isReady}
|
||||
/>
|
||||
</View>
|
||||
<View style={styles.placeholder}>
|
||||
<Placeholder.ImageContent
|
||||
size={60}
|
||||
animate="fade"
|
||||
lineNumber={4}
|
||||
lineSpacing={5}
|
||||
lastLineWidth="30%"
|
||||
onReady={this.state.isReady}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
)}
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default HotPage;
|
5
src/screens/home/index.js
Normal file
5
src/screens/home/index.js
Normal file
@ -0,0 +1,5 @@
|
||||
import HomeScreen from './screen/homeScreen';
|
||||
import Home from './container/homeContainer';
|
||||
|
||||
export { HomeScreen, Home };
|
||||
export default Home;
|
127
src/screens/home/screen/homeScreen.js
Normal file
127
src/screens/home/screen/homeScreen.js
Normal file
@ -0,0 +1,127 @@
|
||||
import React, { PureComponent, Fragment } from 'react';
|
||||
import { Text, View } from 'react-native';
|
||||
import ScrollableTabView from '@esteemapp/react-native-scrollable-tab-view';
|
||||
|
||||
// STEEM
|
||||
import { getUserData, getAuthStatus } from '../../../realm/realm';
|
||||
import { getUser } from '../../../providers/steem/dsteem';
|
||||
|
||||
// Components
|
||||
import { TabBar } from '../../../components/tabBar';
|
||||
import { Posts } from '../../../components/posts';
|
||||
import { Header } from '../../../components/header';
|
||||
// Styles
|
||||
import styles from './homeStyles';
|
||||
|
||||
export default class HomeScreen extends PureComponent {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
user: {
|
||||
name: 'null',
|
||||
},
|
||||
isLoggedIn: false,
|
||||
isLoading: true,
|
||||
category: 'HOT',
|
||||
options: ['HOT', 'TRENDING', 'CLOSE'],
|
||||
};
|
||||
}
|
||||
|
||||
navigationButtonPressed({ buttonId }) {
|
||||
if (buttonId === 'search') {
|
||||
// Navigation.showOverlay({
|
||||
// component: {
|
||||
// name: 'navigation.eSteem.Search',
|
||||
// },
|
||||
// options: {
|
||||
// overlay: {
|
||||
// interceptTouchOutside: true,
|
||||
// },
|
||||
// },
|
||||
// });
|
||||
}
|
||||
}
|
||||
|
||||
showActionSheet = () => {
|
||||
this.ActionSheet.show();
|
||||
};
|
||||
|
||||
async componentDidMount() {
|
||||
let user;
|
||||
let userData;
|
||||
let isLoggedIn;
|
||||
|
||||
await getAuthStatus().then((res) => {
|
||||
isLoggedIn = res;
|
||||
});
|
||||
|
||||
if (isLoggedIn) {
|
||||
await getUserData().then((res) => {
|
||||
user = Array.from(res);
|
||||
});
|
||||
userData = await getUser(user[0].username);
|
||||
|
||||
this.setState({
|
||||
user: userData,
|
||||
isLoggedIn,
|
||||
isLoading: false,
|
||||
});
|
||||
} else {
|
||||
await this.setState({
|
||||
isLoading: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const { user, isLoggedIn } = this.state;
|
||||
const { componentId } = this.props;
|
||||
return (
|
||||
<Fragment>
|
||||
<Header />
|
||||
<View style={styles.root} key="overlay">
|
||||
<ScrollableTabView
|
||||
style={styles.tabView}
|
||||
renderTabBar={() => (
|
||||
<TabBar
|
||||
style={styles.tabbar}
|
||||
tabUnderlineDefaultWidth={80} // default containerWidth / (numberOfTabs * 4)
|
||||
tabUnderlineScaleX={2} // default 3
|
||||
activeColor="#357ce6"
|
||||
inactiveColor="#222"
|
||||
tabBarPosition="overlayTop"
|
||||
/>
|
||||
)}
|
||||
>
|
||||
<View tabLabel="Feed" style={styles.tabbarItem}>
|
||||
{isLoggedIn ? (
|
||||
<Posts
|
||||
isLoginMust
|
||||
getFor="feed"
|
||||
tag={user.name}
|
||||
user={user}
|
||||
isLoggedIn={isLoggedIn}
|
||||
componentId={componentId}
|
||||
/>
|
||||
) : (
|
||||
<Text>Login to see your Feed</Text>
|
||||
)}
|
||||
</View>
|
||||
<View tabLabel="Hot" style={styles.tabbarItem}>
|
||||
<Posts getFor="hot" user={user} isLoggedIn={isLoggedIn} componentId={componentId} />
|
||||
</View>
|
||||
<View tabLabel="Popular" style={styles.tabbarItem}>
|
||||
<Posts
|
||||
getFor="trending"
|
||||
user={user}
|
||||
isLoggedIn={isLoggedIn}
|
||||
componentId={componentId}
|
||||
/>
|
||||
</View>
|
||||
</ScrollableTabView>
|
||||
<View style={styles.buttonContainer} />
|
||||
</View>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
}
|
@ -1,6 +1,29 @@
|
||||
import EStyleSheet from 'react-native-extended-stylesheet';
|
||||
|
||||
export default EStyleSheet.create({
|
||||
root: {
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
flex: 1,
|
||||
},
|
||||
buttonContainer: {
|
||||
width: '50%',
|
||||
alignItems: 'center',
|
||||
},
|
||||
tabView: {
|
||||
alignSelf: 'center',
|
||||
backgroundColor: 'transparent',
|
||||
},
|
||||
tabbar: {
|
||||
alignSelf: 'center',
|
||||
height: 40,
|
||||
backgroundColor: 'white',
|
||||
},
|
||||
tabbarItem: {
|
||||
flex: 1,
|
||||
backgroundColor: '#f9f9f9',
|
||||
minWidth: '$deviceWidth',
|
||||
},
|
||||
container: {
|
||||
backgroundColor: '#F9F9F9',
|
||||
flex: 1,
|
||||
@ -36,21 +59,6 @@ export default EStyleSheet.create({
|
||||
color: 'white',
|
||||
fontWeight: 'bold',
|
||||
},
|
||||
tabView: {
|
||||
alignSelf: 'center',
|
||||
backgroundColor: 'transparent',
|
||||
},
|
||||
tabbar: {
|
||||
alignSelf: 'center',
|
||||
height: 40,
|
||||
backgroundColor: '#284b78',
|
||||
},
|
||||
tabbarItem: {
|
||||
flex: 1,
|
||||
paddingHorizontal: 7,
|
||||
backgroundColor: '#f9f9f9',
|
||||
minWidth: '$deviceWidth',
|
||||
},
|
||||
loginButton: {
|
||||
alignSelf: 'center',
|
||||
marginTop: 100,
|
@ -1,164 +0,0 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
import React, { Component } from 'react';
|
||||
import {
|
||||
StyleSheet, FlatList, View, ActivityIndicator,
|
||||
} from 'react-native';
|
||||
import Placeholder from 'rn-placeholder';
|
||||
import styles from '../../styles/trending.styles';
|
||||
// STEEM
|
||||
import { getPosts } from '../../providers/steem/dsteem';
|
||||
|
||||
// LIBRARIES
|
||||
|
||||
// COMPONENTS
|
||||
import { PostCard } from '../../components/postCard';
|
||||
|
||||
// SCREENS
|
||||
/* eslint-enable no-unused-vars */
|
||||
|
||||
class TrendingPage extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.getTrending = this.getTrending.bind(this);
|
||||
this.getMore = this.getMore.bind(this);
|
||||
this.refreshData = this.refreshData.bind(this);
|
||||
this.state = {
|
||||
isReady: false,
|
||||
posts: [],
|
||||
user: [],
|
||||
start_author: '',
|
||||
start_permlink: '',
|
||||
refreshing: false,
|
||||
loading: false,
|
||||
isLoggedIn: this.props.isLoggedIn,
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.getTrending();
|
||||
}
|
||||
|
||||
getTrending = () => {
|
||||
getPosts('trending', { tag: '', limit: 10 }, this.props.user.name)
|
||||
.then((result) => {
|
||||
this.setState({
|
||||
isReady: true,
|
||||
posts: result,
|
||||
start_author: result[result.length - 1].author,
|
||||
start_permlink: result[result.length - 1].permlink,
|
||||
refreshing: false,
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
alert(err);
|
||||
});
|
||||
};
|
||||
|
||||
getMore = () => {
|
||||
this.setState({ loading: true });
|
||||
getPosts(
|
||||
'trending',
|
||||
{
|
||||
tag: '',
|
||||
limit: 10,
|
||||
start_author: this.state.start_author,
|
||||
start_permlink: this.state.start_permlink,
|
||||
},
|
||||
this.props.user.name,
|
||||
).then((result) => {
|
||||
const posts = result;
|
||||
posts.shift();
|
||||
this.setState({
|
||||
posts: [...this.state.posts, ...posts],
|
||||
start_author: result[result.length - 1].author,
|
||||
start_permlink: result[result.length - 1].permlink,
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
refreshData = () => {
|
||||
this.setState(
|
||||
{
|
||||
refreshing: true,
|
||||
},
|
||||
() => {
|
||||
this.getTrending();
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
renderFooter = () => {
|
||||
if (!this.state.loading) return null;
|
||||
|
||||
return (
|
||||
<View style={styles.flatlistFooter}>
|
||||
<ActivityIndicator animating size="large" />
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<View style={{ flex: 1 }}>
|
||||
{this.state.isReady ? (
|
||||
<FlatList
|
||||
data={this.state.posts}
|
||||
showsVerticalScrollIndicator={false}
|
||||
renderItem={({ item }) => (
|
||||
<PostCard
|
||||
componentId={this.props.componentId}
|
||||
content={item}
|
||||
user={this.props.user}
|
||||
isLoggedIn={this.state.isLoggedIn}
|
||||
/>
|
||||
)}
|
||||
keyExtractor={(post, index) => index.toString()}
|
||||
onEndReached={this.getMore}
|
||||
removeClippedSubviews
|
||||
refreshing={this.state.refreshing}
|
||||
onRefresh={() => this.refreshData()}
|
||||
onEndThreshold={0}
|
||||
initialNumToRender={10}
|
||||
ListFooterComponent={this.renderFooter}
|
||||
/>
|
||||
) : (
|
||||
<View>
|
||||
<View style={styles.placeholder}>
|
||||
<Placeholder.ImageContent
|
||||
size={60}
|
||||
animate="fade"
|
||||
lineNumber={4}
|
||||
lineSpacing={5}
|
||||
lastLineWidth="30%"
|
||||
onReady={this.state.isReady}
|
||||
/>
|
||||
</View>
|
||||
<View style={styles.placeholder}>
|
||||
<Placeholder.ImageContent
|
||||
size={60}
|
||||
animate="fade"
|
||||
lineNumber={4}
|
||||
lineSpacing={5}
|
||||
lastLineWidth="30%"
|
||||
onReady={this.state.isReady}
|
||||
/>
|
||||
</View>
|
||||
<View style={styles.placeholder}>
|
||||
<Placeholder.ImageContent
|
||||
size={60}
|
||||
animate="fade"
|
||||
lineNumber={4}
|
||||
lineSpacing={5}
|
||||
lastLineWidth="30%"
|
||||
onReady={this.state.isReady}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
)}
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default TrendingPage;
|
@ -1,7 +1,10 @@
|
||||
import Splash from './splash';
|
||||
import Login from './login';
|
||||
import PinCode from './pinCode';
|
||||
import Home from './home/home';
|
||||
import Splash from './splash';
|
||||
import { Home } from './home';
|
||||
import { Login } from './login';
|
||||
import { Profile } from './profile';
|
||||
import { Notification } from './notification';
|
||||
|
||||
// import Author from './authorProfile';
|
||||
// import SideMenu from './sideMenuScreen';
|
||||
// import Hot from './home/hot';
|
||||
@ -15,10 +18,12 @@ import Home from './home/home';
|
||||
// import { Notification } from './notification';
|
||||
|
||||
export {
|
||||
Splash,
|
||||
Home,
|
||||
Login,
|
||||
PinCode,
|
||||
Home,
|
||||
Splash,
|
||||
Profile,
|
||||
Notification,
|
||||
// Author,
|
||||
// SideMenu,
|
||||
// Hot,
|
||||
|
@ -1,5 +1,5 @@
|
||||
import LoginScreen from './screen/loginScreen';
|
||||
import LoginContainer from './container/loginContainer';
|
||||
import Login from './container/loginContainer';
|
||||
|
||||
export { LoginScreen, LoginContainer };
|
||||
export default LoginContainer;
|
||||
export { LoginScreen, Login };
|
||||
export default Login;
|
||||
|
@ -9,12 +9,12 @@ import { login as loginAction, logout as logoutAction } from '../../../redux/act
|
||||
|
||||
// Internal Components
|
||||
import { FormInput } from '../../../components/formInput';
|
||||
import { TextButton } from '../../../components/buttons';
|
||||
import { InformationArea } from '../../../components/informationArea';
|
||||
import { Login } from '../../../providers/steem/auth';
|
||||
import { LoginHeader } from '../../../components/loginHeader';
|
||||
import { MainButton } from '../../../components/mainButton';
|
||||
import { TabBar } from '../../../components/tabBar';
|
||||
import { TextButton } from '../../../components/buttons';
|
||||
import { lookupAccounts } from '../../../providers/steem/dsteem';
|
||||
import STEEM_CONNECT_LOGO from '../../../assets/steem_connect.png';
|
||||
|
||||
@ -104,74 +104,79 @@ class LoginScreen extends Component {
|
||||
description="To get all the benefits using eSteem"
|
||||
onPress={() => this._handleSignUp()}
|
||||
/>
|
||||
<ScrollableTabView
|
||||
locked={isLoading}
|
||||
style={styles.tabView}
|
||||
renderTabBar={() => (
|
||||
<TabBar
|
||||
style={styles.tabbar}
|
||||
tabUnderlineDefaultWidth={100} // default containerWidth / (numberOfTabs * 4)
|
||||
tabUnderlineScaleX={2} // default 3
|
||||
activeColor="#357ce6"
|
||||
inactiveColor="#222"
|
||||
/>
|
||||
)}
|
||||
<KeyboardAwareScrollView
|
||||
onKeyboardWillShow={() => this.setState({ keyboardIsOpen: true })}
|
||||
onKeyboardWillHide={() => this.setState({ keyboardIsOpen: false })}
|
||||
>
|
||||
<View tabLabel="Sign in" style={styles.tabbarItem}>
|
||||
<FormInput
|
||||
rightIconName="md-at"
|
||||
leftIconName="md-close-circle"
|
||||
isValid={isUsernameValid}
|
||||
onChange={value => this._handleUsernameChange(value)}
|
||||
placeholder="Username"
|
||||
isEditable
|
||||
type="username"
|
||||
isFirstImage
|
||||
value={username}
|
||||
/>
|
||||
<FormInput
|
||||
rightIconName="md-lock"
|
||||
leftIconName="md-close-circle"
|
||||
isValid={isUsernameValid}
|
||||
onChange={value => this._handleOnPasswordChange(value)}
|
||||
placeholder="Password or WIF"
|
||||
isEditable
|
||||
secureTextEntry
|
||||
type="password"
|
||||
/>
|
||||
<InformationArea
|
||||
description="User credentials are kept locally on the device. Credentials are
|
||||
removed upon logout!"
|
||||
iconName="ios-information-circle-outline"
|
||||
/>
|
||||
<View style={styles.footerButtons}>
|
||||
<TextButton onPress={() => navigation.navigate(ROUTES.DRAWER.MAIN)} text="cancel" />
|
||||
<ScrollableTabView
|
||||
locked={isLoading}
|
||||
style={styles.tabView}
|
||||
renderTabBar={() => (
|
||||
<TabBar
|
||||
style={styles.tabbar}
|
||||
tabUnderlineDefaultWidth={100} // default containerWidth / (numberOfTabs * 4)
|
||||
tabUnderlineScaleX={2} // default 3
|
||||
activeColor="#357ce6"
|
||||
inactiveColor="#222"
|
||||
/>
|
||||
)}
|
||||
>
|
||||
<View tabLabel="Sign in" style={styles.tabbarItem}>
|
||||
<FormInput
|
||||
rightIconName="md-at"
|
||||
leftIconName="md-close-circle"
|
||||
isValid={isUsernameValid}
|
||||
onChange={value => this._handleUsernameChange(value)}
|
||||
placeholder="Username"
|
||||
isEditable
|
||||
type="username"
|
||||
isFirstImage
|
||||
value={username}
|
||||
/>
|
||||
<FormInput
|
||||
rightIconName="md-lock"
|
||||
leftIconName="md-close-circle"
|
||||
isValid={isUsernameValid}
|
||||
onChange={value => this._handleOnPasswordChange(value)}
|
||||
placeholder="Password or WIF"
|
||||
isEditable
|
||||
secureTextEntry
|
||||
type="password"
|
||||
/>
|
||||
<InformationArea
|
||||
description="User credentials are kept locally on the device. Credentials are
|
||||
removed upon logout!"
|
||||
iconName="ios-information-circle-outline"
|
||||
/>
|
||||
<View style={styles.footerButtons}>
|
||||
<TextButton onPress={() => navigation.navigate(ROUTES.DRAWER.MAIN)} text="cancel" />
|
||||
</View>
|
||||
<MainButton
|
||||
wrapperStyle={styles.mainButtonWrapper}
|
||||
onPress={this._handleOnPressLogin}
|
||||
iconName="md-person"
|
||||
iconColor="white"
|
||||
text="LOGIN"
|
||||
isDisable={!isUsernameValid || password.length < 2 || username.length < 2}
|
||||
isLoading={isLoading}
|
||||
/>
|
||||
</View>
|
||||
<MainButton
|
||||
wrapperStyle={styles.mainButtonWrapper}
|
||||
onPress={this._handleOnPressLogin}
|
||||
iconName="md-person"
|
||||
iconColor="white"
|
||||
text="LOGIN"
|
||||
isDisable={!isUsernameValid || password.length < 2 || username.length < 2}
|
||||
isLoading={isLoading}
|
||||
/>
|
||||
</View>
|
||||
<View tabLabel="SteemConnect" style={styles.steemConnectTab}>
|
||||
<InformationArea
|
||||
description="If you don't want to keep your password encrypted and saved on your device, you can use Steemconnect."
|
||||
iconName="ios-information-circle-outline"
|
||||
/>
|
||||
<MainButton
|
||||
wrapperStyle={styles.mainButtonWrapper}
|
||||
onPress={() => this._loginwithSc2()}
|
||||
iconName="md-person"
|
||||
source={STEEM_CONNECT_LOGO}
|
||||
text="steem"
|
||||
secondText="connect"
|
||||
/>
|
||||
</View>
|
||||
</ScrollableTabView>
|
||||
<View tabLabel="SteemConnect" style={styles.steemConnectTab}>
|
||||
<InformationArea
|
||||
description="If you don't want to keep your password encrypted and saved on your device, you can use Steemconnect."
|
||||
iconName="ios-information-circle-outline"
|
||||
/>
|
||||
<MainButton
|
||||
wrapperStyle={styles.mainButtonWrapper}
|
||||
onPress={() => this._loginwithSc2()}
|
||||
iconName="md-person"
|
||||
source={STEEM_CONNECT_LOGO}
|
||||
text="steem"
|
||||
secondText="connect"
|
||||
/>
|
||||
</View>
|
||||
</ScrollableTabView>
|
||||
</KeyboardAwareScrollView>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
@ -1,15 +1,22 @@
|
||||
import React, { Fragment } from 'react';
|
||||
import { Text, View, SafeAreaView } from 'react-native';
|
||||
import React, { Fragment, PureComponent } from 'react';
|
||||
import { Text, View } from 'react-native';
|
||||
import ScrollableTabView from '@esteemapp/react-native-scrollable-tab-view';
|
||||
import { TabBar } from '../../../components/tabBar';
|
||||
import { Notification } from '../../../components/notification';
|
||||
import { Header } from '../../../components/header';
|
||||
// Styles
|
||||
import styles from './notificationStyles';
|
||||
|
||||
class NotificationScreen extends React.Component {
|
||||
class NotificationScreen extends PureComponent {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {};
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<SafeAreaView style={{ flex: 1, backgroundColor: '#fff' }}>
|
||||
<Fragment>
|
||||
<Header />
|
||||
<ScrollableTabView
|
||||
style={styles.tabView}
|
||||
renderTabBar={() => (
|
||||
@ -29,7 +36,7 @@ class NotificationScreen extends React.Component {
|
||||
<Text>Leaderboard</Text>
|
||||
</View>
|
||||
</ScrollableTabView>
|
||||
</SafeAreaView>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,6 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
import React, { Component } from 'react';
|
||||
import {
|
||||
FlatList, ActivityIndicator, View, Text,
|
||||
} from 'react-native';
|
||||
import React, { Component, Fragment } from 'react';
|
||||
import { FlatList, ActivityIndicator, View } from 'react-native';
|
||||
|
||||
import FastImage from 'react-native-fast-image';
|
||||
// Components
|
||||
@ -15,6 +13,7 @@ import { PostCard } from '../../../components/postCard';
|
||||
import { ProfileSummary } from '../../../components/profileSummary';
|
||||
import { TabBar } from '../../../components/tabBar';
|
||||
import { Wallet } from '../../../components/wallet';
|
||||
import { Header } from '../../../components/header';
|
||||
|
||||
// Utilitites
|
||||
import {
|
||||
@ -156,8 +155,17 @@ class ProfileScreen extends Component {
|
||||
let coverImage;
|
||||
let location;
|
||||
let website;
|
||||
const votingPower = user && user.voting_power && user.voting_power / 100;
|
||||
const fullInHour = Math.ceil((100 - votingPower) * 0.833333);
|
||||
let votingPower;
|
||||
let resourceCredits;
|
||||
let fullInHourVP;
|
||||
let fullInHourRC;
|
||||
|
||||
if (user) {
|
||||
votingPower = user.voting_power && user.voting_power / 100;
|
||||
resourceCredits = user.resource_credits && user.resource_credits / 100;
|
||||
fullInHourVP = Math.ceil((100 - votingPower) * 0.833333);
|
||||
fullInHourRC = Math.ceil((100 - resourceCredits) * 0.833333);
|
||||
}
|
||||
|
||||
if (about) {
|
||||
_about = about.about;
|
||||
@ -166,98 +174,103 @@ class ProfileScreen extends Component {
|
||||
website = about.website;
|
||||
}
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<CollapsibleCard
|
||||
title={_about}
|
||||
defaultTitle="Profile details"
|
||||
expanded={true}
|
||||
// locked={!isLoggedIn}
|
||||
>
|
||||
<ProfileSummary
|
||||
percent={votingPower}
|
||||
hours={fullInHour}
|
||||
location={location}
|
||||
link={website}
|
||||
date={getFormatedCreatedDate(user && user.created)}
|
||||
followerCount={follows.follower_count}
|
||||
followingCount={follows.following_count}
|
||||
coverImage={coverImage}
|
||||
/>
|
||||
</CollapsibleCard>
|
||||
<Fragment>
|
||||
<Header />
|
||||
<View style={styles.container}>
|
||||
<CollapsibleCard
|
||||
title={_about}
|
||||
defaultTitle="Profile details"
|
||||
expanded={!isLoggedIn}
|
||||
locked={!isLoggedIn}
|
||||
>
|
||||
<ProfileSummary
|
||||
percentVP={votingPower}
|
||||
percentRC={resourceCredits}
|
||||
hoursVP={fullInHourVP}
|
||||
hoursRC={fullInHourRC}
|
||||
location={location}
|
||||
link={website}
|
||||
date={getFormatedCreatedDate(user && user.created)}
|
||||
followerCount={follows.follower_count}
|
||||
followingCount={follows.following_count}
|
||||
coverImage={coverImage}
|
||||
/>
|
||||
</CollapsibleCard>
|
||||
|
||||
<ScrollableTabView
|
||||
style={styles.tabView}
|
||||
renderTabBar={() => (
|
||||
<TabBar
|
||||
style={styles.tabbar}
|
||||
tabUnderlineDefaultWidth={80}
|
||||
tabUnderlineScaleX={2}
|
||||
activeColor="#357ce6"
|
||||
inactiveColor="#788187"
|
||||
/>
|
||||
)}
|
||||
>
|
||||
<View tabLabel="Post" style={styles.postTabBar}>
|
||||
<FilterBar
|
||||
isHide={!isLoggedIn}
|
||||
dropdownIconName="md-arrow-dropdown"
|
||||
options={['NEW POSTS', 'VOTES', 'REPLIES', 'MENTIONS', 'FOLLOWS', 'REBLOGS']}
|
||||
defaultText="ALL NOTIFICATION"
|
||||
onDropdownSelect={this._handleOnDropdownSelect}
|
||||
rightIconName="md-apps"
|
||||
/>
|
||||
{posts && posts.length > 0 ? (
|
||||
<FlatList
|
||||
data={posts}
|
||||
showsVerticalScrollIndicator={false}
|
||||
renderItem={({ item }) => (
|
||||
<PostCard
|
||||
style={{
|
||||
shadowColor: '#f6f6f6',
|
||||
}}
|
||||
content={item}
|
||||
user={user}
|
||||
isLoggedIn
|
||||
/>
|
||||
)}
|
||||
keyExtractor={(post, index) => index.toString()}
|
||||
onEndReached={(info) => {
|
||||
!isLoading && this._getMore();
|
||||
}}
|
||||
onEndThreshold={0}
|
||||
bounces={false}
|
||||
/>
|
||||
) : (
|
||||
<NoPost
|
||||
name={user.name}
|
||||
text={"haven't posted anything yet"}
|
||||
defaultText="Login to see!"
|
||||
<ScrollableTabView
|
||||
style={styles.tabView}
|
||||
renderTabBar={() => (
|
||||
<TabBar
|
||||
style={styles.tabbar}
|
||||
tabUnderlineDefaultWidth={80}
|
||||
tabUnderlineScaleX={2}
|
||||
activeColor="#357ce6"
|
||||
inactiveColor="#788187"
|
||||
/>
|
||||
)}
|
||||
</View>
|
||||
<View tabLabel="Comments" style={styles.commentsTabBar}>
|
||||
{commments && commments.length > 0 ? (
|
||||
<FlatList
|
||||
data={commments}
|
||||
showsVerticalScrollIndicator={false}
|
||||
renderItem={({ item }) => <Comment comment={item} isLoggedIn user={user} />}
|
||||
keyExtractor={(post, index) => index.toString()}
|
||||
onEndThreshold={0}
|
||||
bounces={false}
|
||||
>
|
||||
<View tabLabel="Post" style={styles.postTabBar}>
|
||||
<FilterBar
|
||||
isHide={!isLoggedIn}
|
||||
dropdownIconName="md-arrow-dropdown"
|
||||
options={['NEW POSTS', 'VOTES', 'REPLIES', 'MENTIONS', 'FOLLOWS', 'REBLOGS']}
|
||||
defaultText="ALL NOTIFICATION"
|
||||
onDropdownSelect={this._handleOnDropdownSelect}
|
||||
rightIconName="md-apps"
|
||||
/>
|
||||
) : (
|
||||
<NoPost
|
||||
name={user.name}
|
||||
text="haven't commented anything yet"
|
||||
defaultText="Login to see!"
|
||||
/>
|
||||
)}
|
||||
</View>
|
||||
<View tabLabel={user.balance ? `$${user.balance}` : 'Wallet'}>
|
||||
<Wallet />
|
||||
</View>
|
||||
</ScrollableTabView>
|
||||
</View>
|
||||
{posts && posts.length > 0 ? (
|
||||
<FlatList
|
||||
data={posts}
|
||||
showsVerticalScrollIndicator={false}
|
||||
renderItem={({ item }) => (
|
||||
<PostCard
|
||||
style={{
|
||||
shadowColor: '#f6f6f6',
|
||||
}}
|
||||
content={item}
|
||||
user={user}
|
||||
isLoggedIn
|
||||
/>
|
||||
)}
|
||||
keyExtractor={(post, index) => index.toString()}
|
||||
onEndReached={(info) => {
|
||||
!isLoading && this._getMore();
|
||||
}}
|
||||
onEndThreshold={0}
|
||||
bounces={false}
|
||||
/>
|
||||
) : (
|
||||
<NoPost
|
||||
name={user.name}
|
||||
text={"haven't posted anything yet"}
|
||||
defaultText="Login to see!"
|
||||
/>
|
||||
)}
|
||||
</View>
|
||||
<View tabLabel="Comments" style={styles.commentsTabBar}>
|
||||
{commments && commments.length > 0 ? (
|
||||
<FlatList
|
||||
data={commments}
|
||||
showsVerticalScrollIndicator={false}
|
||||
renderItem={({ item }) => <Comment comment={item} isLoggedIn user={user} />}
|
||||
keyExtractor={(post, index) => index.toString()}
|
||||
onEndThreshold={0}
|
||||
bounces={false}
|
||||
/>
|
||||
) : (
|
||||
<NoPost
|
||||
name={user.name}
|
||||
text="haven't commented anything yet"
|
||||
defaultText="Login to see!"
|
||||
/>
|
||||
)}
|
||||
</View>
|
||||
<View tabLabel={user.balance ? `$${user.balance}` : 'Wallet'}>
|
||||
<Wallet user={user} />
|
||||
</View>
|
||||
</ScrollableTabView>
|
||||
</View>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -5,10 +5,10 @@ export default EStyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
top: StatusBar.currentHeight,
|
||||
backgroundColor: '#f6f6f6',
|
||||
backgroundColor: '$primaryGray',
|
||||
},
|
||||
content: {
|
||||
backgroundColor: '#f9f9f9',
|
||||
backgroundColor: '$primaryGray',
|
||||
},
|
||||
cover: {
|
||||
width: '$deviceWidth',
|
||||
@ -20,11 +20,11 @@ export default EStyleSheet.create({
|
||||
borderRadius: 50,
|
||||
top: -50,
|
||||
borderWidth: 1,
|
||||
borderColor: 'white',
|
||||
borderColor: '$white',
|
||||
alignSelf: 'center',
|
||||
},
|
||||
about: {
|
||||
borderColor: 'lightgray',
|
||||
borderColor: '$primaryLightGray',
|
||||
borderTopWidth: 1,
|
||||
borderBottomWidth: 1,
|
||||
flexDirection: 'row',
|
||||
@ -39,8 +39,9 @@ export default EStyleSheet.create({
|
||||
},
|
||||
tabbar: {
|
||||
alignSelf: 'center',
|
||||
height: 40,
|
||||
backgroundColor: '#fff',
|
||||
height: 55,
|
||||
backgroundColor: '$white',
|
||||
borderBottomColor: '#f1f1f1',
|
||||
},
|
||||
tabbarItem: {
|
||||
flex: 1,
|
||||
@ -48,18 +49,15 @@ export default EStyleSheet.create({
|
||||
backgroundColor: '#f9f9f9',
|
||||
minWidth: '$deviceWidth',
|
||||
},
|
||||
|
||||
tabbar: {
|
||||
alignSelf: 'center',
|
||||
height: 55,
|
||||
backgroundColor: 'white',
|
||||
borderBottomColor: '#f1f1f1',
|
||||
},
|
||||
tabView: {
|
||||
alignSelf: 'center',
|
||||
backgroundColor: 'transparent',
|
||||
},
|
||||
postTabBar: {},
|
||||
commentsTabBar: {},
|
||||
postTabBar: {
|
||||
backgroundColor: '$white',
|
||||
},
|
||||
commentsTabBar: {
|
||||
backgroundColor: '$white',
|
||||
},
|
||||
tabBarTitle: {},
|
||||
});
|
||||
|
@ -8,21 +8,23 @@ import { default as ROUTES } from '../../../constants/routeNames';
|
||||
import SplashScreen from '../screen/splashScreen';
|
||||
|
||||
class SplashContainer extends Component {
|
||||
componentWillMount() {
|
||||
componentDidMount = () => {
|
||||
this._getUserData();
|
||||
};
|
||||
|
||||
_getUserData = () => {
|
||||
const { navigation } = this.props;
|
||||
// getUserData().then((res) => {
|
||||
// if (res) {
|
||||
// alert(...res);
|
||||
// }
|
||||
// });
|
||||
|
||||
getAuthStatus().then((res) => {
|
||||
if (res) {
|
||||
navigation.navigate(ROUTES.DRAWER.MAIN);
|
||||
} else {
|
||||
navigation.navigate(ROUTES.SCREENS.LOGIN);
|
||||
}
|
||||
getUserData().then((response) => {
|
||||
if (response) {
|
||||
navigation.navigate(ROUTES.DRAWER.MAIN);
|
||||
} else {
|
||||
navigation.navigate(ROUTES.SCREENS.LOGIN);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
render() {
|
||||
return <SplashScreen />;
|
||||
|
@ -1,34 +0,0 @@
|
||||
import EStyleSheet from 'react-native-extended-stylesheet';
|
||||
import { StatusBar } from 'react-native';
|
||||
|
||||
export default EStyleSheet.create({
|
||||
container: {
|
||||
backgroundColor: '#F9F9F9',
|
||||
flex: 1,
|
||||
top: StatusBar.currentHeight,
|
||||
},
|
||||
placeholder: {
|
||||
backgroundColor: 'white',
|
||||
padding: 20,
|
||||
borderStyle: 'solid',
|
||||
borderWidth: 1,
|
||||
borderTopWidth: 1,
|
||||
borderColor: '#e2e5e8',
|
||||
borderRadius: 5,
|
||||
marginRight: 0,
|
||||
marginLeft: 0,
|
||||
marginTop: 10,
|
||||
},
|
||||
tabs: {
|
||||
position: 'absolute',
|
||||
top: '$deviceWidth / 30',
|
||||
alignItems: 'center',
|
||||
},
|
||||
flatlistFooter: {
|
||||
alignContent: 'center',
|
||||
alignItems: 'center',
|
||||
marginTop: 10,
|
||||
marginBottom: 40,
|
||||
borderColor: '#CED0CE',
|
||||
},
|
||||
});
|
@ -1,34 +0,0 @@
|
||||
import EStyleSheet from 'react-native-extended-stylesheet';
|
||||
import { StatusBar } from 'react-native';
|
||||
|
||||
export default EStyleSheet.create({
|
||||
container: {
|
||||
backgroundColor: '#F9F9F9',
|
||||
flex: 1,
|
||||
top: StatusBar.currentHeight,
|
||||
},
|
||||
placeholder: {
|
||||
backgroundColor: 'white',
|
||||
padding: 20,
|
||||
borderStyle: 'solid',
|
||||
borderWidth: 1,
|
||||
borderTopWidth: 1,
|
||||
borderColor: '#e2e5e8',
|
||||
borderRadius: 5,
|
||||
marginRight: 0,
|
||||
marginLeft: 0,
|
||||
marginTop: 10,
|
||||
},
|
||||
tabs: {
|
||||
position: 'absolute',
|
||||
top: '$deviceWidth / 30',
|
||||
alignItems: 'center',
|
||||
},
|
||||
flatlistFooter: {
|
||||
alignContent: 'center',
|
||||
alignItems: 'center',
|
||||
marginTop: 10,
|
||||
marginBottom: 40,
|
||||
borderColor: '#CED0CE',
|
||||
},
|
||||
});
|
@ -1,21 +1,15 @@
|
||||
import { getUserData, getAuthStatus } from "../realm/realm";
|
||||
import { getUserData, getAuthStatus } from '../realm/realm';
|
||||
|
||||
export const getUserIsLoggedIn = () => {
|
||||
getAuthStatus()
|
||||
.then(res => {
|
||||
return res;
|
||||
})
|
||||
.catch(() => {
|
||||
return null;
|
||||
});
|
||||
.then(res => res)
|
||||
.catch(() => null);
|
||||
};
|
||||
|
||||
export const getUserDataFromRealm = () => {
|
||||
getUserData()
|
||||
.then(res => {
|
||||
.then((res) => {
|
||||
userData = Array.from(res);
|
||||
})
|
||||
.catch(() => {
|
||||
return null;
|
||||
});
|
||||
.catch(() => null);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user