Merge pull request #234 from status-im/feature/ios-registration-#232
iOS registration (#232), other iOS fixes
This commit is contained in:
commit
6e8f60b777
23
.flowconfig
23
.flowconfig
|
@ -9,6 +9,21 @@
|
|||
# Ignore malformed json
|
||||
.*/node_modules/y18n/test/.*\.json
|
||||
|
||||
# Ignore the website subdir
|
||||
<PROJECT_ROOT>/website/.*
|
||||
|
||||
# Ignore BUCK generated dirs
|
||||
<PROJECT_ROOT>/\.buckd/
|
||||
|
||||
# Ignore unexpected extra @providesModule
|
||||
.*/node_modules/commoner/test/source/widget/share.js
|
||||
|
||||
# Ignore duplicate module providers
|
||||
# For RN Apps installed via npm, "Libraries" folder is inside node_modules/react-native but in the source repo it is in the root
|
||||
.*/Libraries/react-native/React.js
|
||||
.*/Libraries/react-native/ReactNative.js
|
||||
.*/node_modules/jest-runtime/build/__tests__/.*
|
||||
|
||||
[include]
|
||||
|
||||
[libs]
|
||||
|
@ -33,9 +48,11 @@ suppress_type=$FlowIssue
|
|||
suppress_type=$FlowFixMe
|
||||
suppress_type=$FixMe
|
||||
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-7]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-7]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(30\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(30\\|1[0-9]\\|[1-2][0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
||||
|
||||
unsafe.enable_getters_and_setters=true
|
||||
|
||||
[version]
|
||||
^0.27.0
|
||||
^0.30.0
|
||||
|
|
|
@ -26,7 +26,8 @@
|
|||
"react-native-dialogs",
|
||||
"react-native-image-resizer",
|
||||
"react-native-image-crop-picker",
|
||||
"react-native-webview-bridge"
|
||||
"react-native-webview-bridge",
|
||||
"react-native-drawer-layout"
|
||||
],
|
||||
"imageDirs": [
|
||||
"images"
|
||||
|
|
|
@ -20,7 +20,7 @@ import com.github.yamill.orientation.OrientationPackage;
|
|||
import com.rnfs.RNFSPackage;
|
||||
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
|
||||
import fr.bamlab.rnimageresizer.ImageResizerPackage;
|
||||
import com.reactnative.picker.PickerPackage;
|
||||
import com.reactnative.ivpusic.imagepicker.PickerPackage;
|
||||
import com.github.alinz.reactnativewebviewbridge.WebViewBridgePackage;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -53,7 +53,6 @@ public class MainApplication extends Application implements ReactApplication {
|
|||
new ImageResizerPackage(),
|
||||
new PickerPackage(),
|
||||
new WebViewBridgePackage()
|
||||
|
||||
);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -26,7 +26,12 @@
|
|||
2028DFFA1D4275B600227DCD /* SF-UI-Display-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2028DFF61D4275B600227DCD /* SF-UI-Display-Regular.otf */; };
|
||||
2028DFFB1D4275B600227DCD /* SF-UI-Display-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2028DFF71D4275B600227DCD /* SF-UI-Display-Semibold.otf */; };
|
||||
2028DFFC1D4275B600227DCD /* SF-UI-Display-Thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2028DFF81D4275B600227DCD /* SF-UI-Display-Thin.otf */; };
|
||||
20A5C9711D9283A2002C4965 /* libimageCropPicker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 20A5C9531D927137002C4965 /* libimageCropPicker.a */; };
|
||||
20AB9EC61D47CC0300E7FD9C /* libRCTStatus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 201067C41D4789F700FA83B6 /* libRCTStatus.a */; };
|
||||
20B6B6841D92C42600CC5C6A /* RSKImageCropper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20B6B6831D92C42600CC5C6A /* RSKImageCropper.framework */; };
|
||||
20B6B6851D92C42600CC5C6A /* RSKImageCropper.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 20B6B6831D92C42600CC5C6A /* RSKImageCropper.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
20B6B6871D92C42600CC5C6A /* QBImagePicker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20B6B6861D92C42600CC5C6A /* QBImagePicker.framework */; };
|
||||
20B6B6881D92C42600CC5C6A /* QBImagePicker.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 20B6B6861D92C42600CC5C6A /* QBImagePicker.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
213311F38CA74CE280FD09AD /* libRNI18n.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 52F6ED6465184513A082652B /* libRNI18n.a */; };
|
||||
22118DE1207A419FBFE7B62D /* libRealmReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CD48A32459B64E96843BB238 /* libRealmReact.a */; };
|
||||
25DC9C9DC25846BD8D084888 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */; };
|
||||
|
@ -138,6 +143,13 @@
|
|||
remoteGlobalIDString = 206C9F3A1D474E910063E3E6;
|
||||
remoteInfo = RCTStatus;
|
||||
};
|
||||
20A5C9521D927137002C4965 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 20A5C94B1D927137002C4965 /* imageCropPicker.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3400A8081CEB54A6008A0BC7;
|
||||
remoteInfo = imageCropPicker;
|
||||
};
|
||||
20B7D0FD1D3F74CC00B70F14 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 45FB5F523DE04BDE9877869C /* RNRandomBytes.xcodeproj */;
|
||||
|
@ -238,6 +250,21 @@
|
|||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
20B6B6891D92C42700CC5C6A /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
20B6B6851D92C42600CC5C6A /* RSKImageCropper.framework in Embed Frameworks */,
|
||||
20B6B6881D92C42600CC5C6A /* QBImagePicker.framework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
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>"; };
|
||||
|
@ -265,6 +292,11 @@
|
|||
2028DFF61D4275B600227DCD /* SF-UI-Display-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Regular.otf"; sourceTree = "<group>"; };
|
||||
2028DFF71D4275B600227DCD /* SF-UI-Display-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Semibold.otf"; sourceTree = "<group>"; };
|
||||
2028DFF81D4275B600227DCD /* SF-UI-Display-Thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Thin.otf"; sourceTree = "<group>"; };
|
||||
20A5C94B1D927137002C4965 /* imageCropPicker.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = imageCropPicker.xcodeproj; path = "../node_modules/react-native-image-crop-picker/ios/imageCropPicker.xcodeproj"; sourceTree = "<group>"; };
|
||||
20A5C96C1D92715E002C4965 /* RSKImageCropper.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RSKImageCropper.framework; path = "../node_modules/react-native-image-crop-picker/ios/RSKImageCropper/build/Debug-iphoneos/RSKImageCropper.framework"; sourceTree = "<group>"; };
|
||||
20A5C96E1D92716C002C4965 /* QBImagePicker.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QBImagePicker.framework; path = "../node_modules/react-native-image-crop-picker/ios/QBImagePicker/build/Debug-iphoneos/QBImagePicker.framework"; sourceTree = "<group>"; };
|
||||
20B6B6831D92C42600CC5C6A /* RSKImageCropper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RSKImageCropper.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
20B6B6861D92C42600CC5C6A /* QBImagePicker.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = QBImagePicker.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2756305FAFF144C4A6B0A039 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
|
||||
2BEE3436791D42248F853999 /* libRCTImageResizer.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTImageResizer.a; sourceTree = "<group>"; };
|
||||
2F0276A9E90843E996A0E762 /* UdpSockets.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = UdpSockets.xcodeproj; path = "../node_modules/react-native-udp/ios/UdpSockets.xcodeproj"; sourceTree = "<group>"; };
|
||||
|
@ -315,9 +347,12 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
20A5C9711D9283A2002C4965 /* libimageCropPicker.a in Frameworks */,
|
||||
9E3AB6D01D87DB2B008846B4 /* libReact-Native-Webview-Bridge.a in Frameworks */,
|
||||
20B6B6841D92C42600CC5C6A /* RSKImageCropper.framework in Frameworks */,
|
||||
CE4E31B31D8695250033ED64 /* Statusgo.framework in Frameworks */,
|
||||
20AB9EC61D47CC0300E7FD9C /* libRCTStatus.a in Frameworks */,
|
||||
20B6B6871D92C42600CC5C6A /* QBImagePicker.framework in Frameworks */,
|
||||
146834051AC3E58100842450 /* libReact.a in Frameworks */,
|
||||
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
|
||||
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */,
|
||||
|
@ -494,6 +529,14 @@
|
|||
name = SF;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
20A5C94C1D927137002C4965 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
20A5C9531D927137002C4965 /* libimageCropPicker.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
20B7D0F01D3F74CC00B70F14 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -578,6 +621,7 @@
|
|||
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
20A5C94B1D927137002C4965 /* imageCropPicker.xcodeproj */,
|
||||
9E3AB6B21D87DA2A008846B4 /* React-Native-Webview-Bridge.xcodeproj */,
|
||||
146833FF1AC3E56700842450 /* React.xcodeproj */,
|
||||
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
|
||||
|
@ -617,6 +661,8 @@
|
|||
83CBB9F61A601CBA00E9B192 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
20B6B6861D92C42600CC5C6A /* QBImagePicker.framework */,
|
||||
20B6B6831D92C42600CC5C6A /* RSKImageCropper.framework */,
|
||||
13B07FAE1A68108700A75B9A /* StatusIm */,
|
||||
832341AE1AAA6A7D00B99B32 /* Libraries */,
|
||||
00E356EF1AD99517003FC87E /* StatusImTests */,
|
||||
|
@ -648,6 +694,8 @@
|
|||
A97BA941B2FB44B4B66EE6D3 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
20A5C96E1D92716C002C4965 /* QBImagePicker.framework */,
|
||||
20A5C96C1D92715E002C4965 /* RSKImageCropper.framework */,
|
||||
CE4E31B21D8695250033ED64 /* Statusgo.framework */,
|
||||
8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */,
|
||||
4E586E1B0E544F64AA9F5BD1 /* libz.tbd */,
|
||||
|
@ -692,6 +740,7 @@
|
|||
13B07F8C1A680F5B00A75B9A /* Frameworks */,
|
||||
13B07F8E1A680F5B00A75B9A /* Resources */,
|
||||
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
|
||||
20B6B6891D92C42700CC5C6A /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
@ -715,6 +764,10 @@
|
|||
CreatedOnToolsVersion = 6.2;
|
||||
TestTargetID = 13B07F861A680F5B00A75B9A;
|
||||
};
|
||||
13B07F861A680F5B00A75B9A = {
|
||||
DevelopmentTeam = 259TWTDE52;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "StatusIm" */;
|
||||
|
@ -733,6 +786,10 @@
|
|||
ProductGroup = 20B7D11B1D3F74CD00B70F14 /* Products */;
|
||||
ProjectRef = 807594C429CA44128AB5666B /* BVLinearGradient.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 20A5C94C1D927137002C4965 /* Products */;
|
||||
ProjectRef = 20A5C94B1D927137002C4965 /* imageCropPicker.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */;
|
||||
ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
|
||||
|
@ -912,6 +969,13 @@
|
|||
remoteRef = 201067C31D4789F700FA83B6 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
20A5C9531D927137002C4965 /* libimageCropPicker.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libimageCropPicker.a;
|
||||
remoteRef = 20A5C9521D927137002C4965 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
20B7D0FE1D3F74CC00B70F14 /* libRNRandomBytes.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
|
@ -1180,7 +1244,9 @@
|
|||
x86_64,
|
||||
);
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = 259TWTDE52;
|
||||
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../modules/react-native-status/ios/RCTStatus";
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
@ -1201,10 +1267,12 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
||||
);
|
||||
INFOPLIST_FILE = StatusIm/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"$(inherited)",
|
||||
"-lc++",
|
||||
"-ObjC",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.statusim;
|
||||
PRODUCT_NAME = StatusIm;
|
||||
|
@ -1220,7 +1288,9 @@
|
|||
x86_64,
|
||||
);
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = 259TWTDE52;
|
||||
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../modules/react-native-status/ios/RCTStatus";
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
@ -1241,10 +1311,12 @@
|
|||
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
||||
);
|
||||
INFOPLIST_FILE = StatusIm/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"$(inherited)",
|
||||
"-lc++",
|
||||
"-ObjC",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.statusim;
|
||||
PRODUCT_NAME = StatusIm;
|
||||
|
|
|
@ -37,10 +37,10 @@
|
|||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
|
@ -62,15 +62,18 @@
|
|||
ReferencedContainer = "container:StatusIm.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
|
@ -86,10 +89,10 @@
|
|||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
|
|
|
@ -1,5 +1,15 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
|
|
|
@ -1,62 +1,79 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string/>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>SF-UI-Display-Medium.otf</string>
|
||||
<string>SF-UI-Display-Regular.otf</string>
|
||||
<string>SF-UI-Display-Semibold.otf</string>
|
||||
<string>SF-UI-Display-Thin.otf</string>
|
||||
<string>Entypo.ttf</string>
|
||||
<string>EvilIcons.ttf</string>
|
||||
<string>FontAwesome.ttf</string>
|
||||
<string>Foundation.ttf</string>
|
||||
<string>Ionicons.ttf</string>
|
||||
<string>MaterialIcons.ttf</string>
|
||||
<string>Octicons.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>
|
||||
<dict>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>We need to access your camera</string>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>We need to access your photo storage to give you an ability to select photos</string>
|
||||
<key>NSContactsUsageDescription</key>
|
||||
<string>We need to access your contacts</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<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>NSLocationWhenInUseUsageDescription</key>
|
||||
<string></string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSExceptionDomains</key>
|
||||
<dict>
|
||||
<key>api.status.im</key>
|
||||
<dict>
|
||||
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>localhost</key>
|
||||
<dict>
|
||||
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>SF-UI-Display-Medium.otf</string>
|
||||
<string>SF-UI-Display-Regular.otf</string>
|
||||
<string>SF-UI-Display-Semibold.otf</string>
|
||||
<string>SF-UI-Display-Thin.otf</string>
|
||||
<string>Entypo.ttf</string>
|
||||
<string>EvilIcons.ttf</string>
|
||||
<string>FontAwesome.ttf</string>
|
||||
<string>Foundation.ttf</string>
|
||||
<string>Ionicons.ttf</string>
|
||||
<string>MaterialIcons.ttf</string>
|
||||
<string>Octicons.ttf</string>
|
||||
<string>Zocial.ttf</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
#import <Statusgo/Statusgo.h>
|
||||
|
||||
static bool isStatusInitialized;
|
||||
|
||||
@implementation Status{
|
||||
bool isStatusInitialized;
|
||||
}
|
||||
|
||||
|
||||
|
@ -47,8 +48,7 @@ RCT_EXPORT_METHOD(callJail:(NSString *)chatId
|
|||
////////////////////////////////////////////////////////////////////
|
||||
#pragma mark - startNode
|
||||
//////////////////////////////////////////////////////////////////// startNode
|
||||
RCT_EXPORT_METHOD(startNode:(RCTResponseSenderBlock)onResultCallback
|
||||
callback:(RCTResponseSenderBlock)onAlreadyRunningCallback) {
|
||||
RCT_EXPORT_METHOD(startNode:(RCTResponseSenderBlock)onResultCallback) {
|
||||
#if DEBUG
|
||||
NSLog(@"startNode() method called");
|
||||
#endif
|
||||
|
@ -82,7 +82,6 @@ RCT_EXPORT_METHOD(startNode:(RCTResponseSenderBlock)onResultCallback
|
|||
onResultCallback(@[[NSNull null]]);
|
||||
return;
|
||||
}
|
||||
onAlreadyRunningCallback(@[[NSNull null]]);
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(stopNode:(RCTResponseSenderBlock)callback) {
|
||||
|
|
25
package.json
25
package.json
|
@ -26,19 +26,20 @@
|
|||
"punycode": "^1.4.1",
|
||||
"querystring-es3": "^0.2.1",
|
||||
"re-natal": "0.2.38",
|
||||
"react": "^15.2.0",
|
||||
"react-native": "^0.30.0",
|
||||
"react": "^15.3.1",
|
||||
"react-native": "^0.33.0",
|
||||
"react-native-action-button": "^1.1.11",
|
||||
"react-native-android-sms-listener": "github:alwx/react-native-android-sms-listener#listener-bugfix",
|
||||
"react-native-camera": "github:codyhazelwood/react-native-camera",
|
||||
"react-native-camera": "git+https://github.com/lwansbrough/react-native-camera.git",
|
||||
"react-native-circle-checkbox": "github:paramoshkinandrew/ReactNativeCircleCheckbox",
|
||||
"react-native-contacts": "^0.2.4",
|
||||
"react-native-crypto": "^2.0.1",
|
||||
"react-native-dialogs": "0.0.16",
|
||||
"react-native-drawer-layout": "^1.1.0",
|
||||
"react-native-fs": "^1.5.1",
|
||||
"react-native-http": "github:tradle/react-native-http#834492d",
|
||||
"react-native-i18n": "0.0.8",
|
||||
"react-native-image-crop-picker": "^0.5.4",
|
||||
"react-native-image-crop-picker": "^0.9.4",
|
||||
"react-native-image-resizer": "github:danieldunderfelt/react-native-image-resizer",
|
||||
"react-native-invertible-scroll-view": "^1.0.0",
|
||||
"react-native-level-fs": "^2.0.1",
|
||||
|
@ -46,12 +47,12 @@
|
|||
"react-native-orientation": "github:youennPennarun/react-native-orientation",
|
||||
"react-native-qrcode": "^0.2.2",
|
||||
"react-native-randombytes": "^2.1.0",
|
||||
"react-native-tcp": "^1.0.1",
|
||||
"react-native-udp": "^1.2.5",
|
||||
"react-native-tcp": "^2.0.4",
|
||||
"react-native-udp": "^1.2.6",
|
||||
"react-native-vector-icons": "^2.0.3",
|
||||
"react-native-webview-bridge": "github:rasom/react-native-webview-bridge#master",
|
||||
"react-native-webview-bridge": "^0.33.0",
|
||||
"readable-stream": "^1.0.33",
|
||||
"realm": "^0.14.0",
|
||||
"realm": "^0.14.3",
|
||||
"stream-browserify": "^1.0.0",
|
||||
"timers-browserify": "^1.4.2",
|
||||
"tty-browserify": "0.0.0",
|
||||
|
@ -70,7 +71,6 @@
|
|||
"console": "console-browserify",
|
||||
"constants": "constants-browserify",
|
||||
"dns": "dns.js",
|
||||
"net": "react-native-tcp",
|
||||
"domain": "domain-browser",
|
||||
"http": "react-native-http",
|
||||
"https": "https-browserify",
|
||||
|
@ -81,7 +81,8 @@
|
|||
"dgram": "react-native-udp",
|
||||
"timers": "timers-browserify",
|
||||
"tty": "tty-browserify",
|
||||
"vm": "vm-browserify"
|
||||
"vm": "vm-browserify",
|
||||
"net": "react-native-tcp"
|
||||
},
|
||||
"react-native": {
|
||||
"crypto": "react-native-crypto",
|
||||
|
@ -95,7 +96,6 @@
|
|||
"console": "console-browserify",
|
||||
"constants": "constants-browserify",
|
||||
"dns": "dns.js",
|
||||
"net": "react-native-tcp",
|
||||
"domain": "domain-browser",
|
||||
"http": "react-native-http",
|
||||
"https": "https-browserify",
|
||||
|
@ -106,6 +106,7 @@
|
|||
"dgram": "react-native-udp",
|
||||
"timers": "timers-browserify",
|
||||
"tty": "tty-browserify",
|
||||
"vm": "vm-browserify"
|
||||
"vm": "vm-browserify",
|
||||
"net": "react-native-tcp"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
# rn-nodeify
|
||||
# temporary hack due to https://github.com/facebook/react-native/issues/4968
|
||||
./node_modules/.bin/rn-nodeify --install --hack;
|
||||
npm install --save react-native-tcp@2.0.4;
|
||||
|
||||
# symlink for re-natal
|
||||
if ! [ -f re-natal ]; then
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
text-input
|
||||
image
|
||||
linear-gradient
|
||||
touchable-highlight]]
|
||||
touchable-highlight
|
||||
get-dimensions]]
|
||||
[status-im.components.status-bar :refer [status-bar]]
|
||||
[status-im.components.toolbar :refer [toolbar]]
|
||||
[status-im.components.text-field.view :refer [text-field]]
|
||||
|
@ -34,33 +35,35 @@
|
|||
(defview address-input [address]
|
||||
[view
|
||||
[text-field
|
||||
{:value address
|
||||
:editable false
|
||||
:label (label :t/address)
|
||||
:labelColor "#ffffff80"
|
||||
:lineColor :white
|
||||
:inputStyle st/input-style
|
||||
:wrapperStyle (merge button-input st/address-input-wrapper)
|
||||
:onChangeText #(dispatch [:set-in [:login :address] %])}]])
|
||||
{:value address
|
||||
:editable false
|
||||
:label (label :t/address)
|
||||
:label-color "#ffffff80"
|
||||
:line-color :white
|
||||
:input-style st/input-style
|
||||
:wrapper-style (merge button-input st/address-input-wrapper)
|
||||
:on-change-text #(dispatch [:set-in [:login :address] %])}]])
|
||||
|
||||
(defview password-input [error]
|
||||
[view
|
||||
[text-field
|
||||
{:value ""
|
||||
:error (when (pos? (count error)) (label :t/wrong-password))
|
||||
:errorColor :white
|
||||
:label (label :t/password)
|
||||
:labelColor "#ffffff80"
|
||||
:lineColor :white
|
||||
:inputStyle st/input-style
|
||||
:onChangeText #(do
|
||||
(dispatch [:set-in [:login :password] %])
|
||||
(dispatch [:set-in [:login :error] ""]))}]])
|
||||
{:editable true
|
||||
:error (when (pos? (count error)) (label :t/wrong-password))
|
||||
:error-color :white
|
||||
:label (label :t/password)
|
||||
:secure-text-entry true
|
||||
:label-color "#ffffff80"
|
||||
:line-color :white
|
||||
:input-style st/input-style
|
||||
:on-change-text #(do
|
||||
(dispatch [:set-in [:login :password] %])
|
||||
(dispatch [:set-in [:login :error] ""]))}]])
|
||||
|
||||
(defview login []
|
||||
[{:keys [address password error]} [:get :login]
|
||||
keyboard-height [:get :keyboard-height]]
|
||||
[view st/screen-container
|
||||
[view (st/screen-container (- (:height (get-dimensions "window"))
|
||||
keyboard-height))
|
||||
[linear-gradient {:colors ["rgba(182, 116, 241, 1)" "rgba(107, 147, 231, 1)" "rgba(43, 171, 238, 1)"]
|
||||
:start [0, 0]
|
||||
:end [0.5, 1]
|
||||
|
@ -80,8 +83,7 @@
|
|||
[password-input error]]]
|
||||
[view st/bottom-actions-container
|
||||
[view st/connect-button-container
|
||||
[touchable-highlight
|
||||
{:on-press #(dispatch [:login-account address password])}
|
||||
[touchable-highlight {:on-press #(dispatch [:login-account address password])}
|
||||
[view st/connect-button
|
||||
[text {:style st/connect-button-text}
|
||||
(label :t/connect)]]]]]])
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
(ns status-im.accounts.login.styles
|
||||
(:require [status-im.components.styles :refer [title-font
|
||||
text1-color
|
||||
(:require [status-im.components.styles :refer [text1-color
|
||||
color-white
|
||||
toolbar-background2
|
||||
online-color]]))
|
||||
|
||||
|
||||
(def screen-container
|
||||
{:flex 1
|
||||
:color :white})
|
||||
(defn screen-container [height]
|
||||
{:height height})
|
||||
|
||||
(def gradient-background
|
||||
{:position :absolute
|
||||
|
|
|
@ -40,15 +40,15 @@
|
|||
(label :t/enter-valid-passphrase))]
|
||||
[view
|
||||
[text-field
|
||||
{:value passphrase
|
||||
:error error
|
||||
:errorColor "#7099e6"
|
||||
:label (label :t/passphrase)
|
||||
:labelColor "#838c93de"
|
||||
:lineColor "#0000001f"
|
||||
:inputStyle st/input-style
|
||||
:wrapperStyle (merge button-input st/address-input-wrapper)
|
||||
:onChangeText #(dispatch [:set-in [:recover :passphrase] %])}]]))
|
||||
{:value passphrase
|
||||
:error error
|
||||
:error-color "#7099e6"
|
||||
:label (label :t/passphrase)
|
||||
:label-color "#838c93de"
|
||||
:line-color "#0000001f"
|
||||
:input-style st/input-style
|
||||
:wrapper-style (merge button-input st/address-input-wrapper)
|
||||
:on-change-text #(dispatch [:set-in [:recover :passphrase] %])}]]))
|
||||
|
||||
(defview password-input [password]
|
||||
[error [:get-in [:recover :password-error]]]
|
||||
|
@ -58,14 +58,14 @@
|
|||
(label :t/enter-valid-password))]
|
||||
[view
|
||||
[text-field
|
||||
{:value password
|
||||
:error error
|
||||
:errorColor "#7099e6"
|
||||
:label (label :t/password)
|
||||
:labelColor "#838c93de"
|
||||
:lineColor "#0000001f"
|
||||
:inputStyle st/input-style
|
||||
:onChangeText #(dispatch [:set-in [:recover :password] %])}]]))
|
||||
{:value password
|
||||
:error error
|
||||
:error-color "#7099e6"
|
||||
:label (label :t/password)
|
||||
:label-color "#838c93de"
|
||||
:line-color "#0000001f"
|
||||
:input-style st/input-style
|
||||
:on-change-text #(dispatch [:set-in [:recover :password] %])}]]))
|
||||
|
||||
(defview recover []
|
||||
[{:keys [passphrase password passphrase-error password-error]} [:get :recover]]
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
(ns status-im.accounts.recover.styles
|
||||
(:require [status-im.components.styles :refer [title-font
|
||||
text1-color
|
||||
(:require [status-im.components.styles :refer [text1-color
|
||||
color-white
|
||||
toolbar-background2
|
||||
online-color]]))
|
||||
|
|
|
@ -89,5 +89,4 @@
|
|||
:style st/icon-plus}]
|
||||
[text {:style st/add-account-text
|
||||
:font :default}
|
||||
(label :t/add-account)]]]]
|
||||
]]]))
|
||||
(label :t/add-account)]]]]]]]))
|
||||
|
|
|
@ -25,8 +25,7 @@
|
|||
{:flex 1})))
|
||||
|
||||
(def account-list
|
||||
{:margin-top 20
|
||||
:height 100})
|
||||
{:margin-bottom 20})
|
||||
|
||||
(def row-separator
|
||||
{:borderBottomWidth 1
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
[status-im.group-settings.screen :refer [group-settings]]
|
||||
[status-im.profile.screen :refer [profile my-profile]]
|
||||
[status-im.profile.photo-capture.screen :refer [profile-photo-capture]]
|
||||
[status-im.utils.utils :refer [toast]]
|
||||
status-im.persistence.realm.core
|
||||
[taoensso.timbre :as log]
|
||||
[status-im.components.status :as status]))
|
||||
|
|
|
@ -3,13 +3,17 @@
|
|||
[status-im.utils.utils :as u]))
|
||||
|
||||
(def component-styles
|
||||
{:status-bar {:default {:height 0
|
||||
:bar-style "default"
|
||||
:color styles/color-gray}
|
||||
:transparent {:height 20
|
||||
:bar-style "default"
|
||||
:translucent? true
|
||||
:color styles/color-transparent}}})
|
||||
{:status-bar {:default {:height 0
|
||||
:bar-style "default"
|
||||
:color styles/color-gray}
|
||||
:main {:height 0
|
||||
:bar-style "default"
|
||||
:color styles/color-gray}
|
||||
:transparent {:height 20
|
||||
:bar-style "default"
|
||||
:translucent? true
|
||||
:color styles/color-transparent}}
|
||||
:bottom-gradient {:height 3}})
|
||||
|
||||
(def fonts
|
||||
{:default {:font-family "sans-serif"}
|
||||
|
|
|
@ -208,7 +208,9 @@
|
|||
|
||||
(register-handler :stop-listening-confirmation-code-sms
|
||||
(fn [db [_]]
|
||||
(sign-up-service/stop-listening-confirmation-code-sms db)))
|
||||
(if (:confirmation-code-sms-listener db)
|
||||
(sign-up-service/stop-listening-confirmation-code-sms db)
|
||||
db)))
|
||||
|
||||
(register-handler :sign-up-confirm
|
||||
(u/side-effect!
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
(ns status-im.chat.sign-up
|
||||
(:require [re-frame.core :refer [subscribe dispatch dispatch-sync]]
|
||||
[status-im.components.styles :refer [default-chat-color]]
|
||||
[status-im.utils.utils :refer [on-error http-post toast]]
|
||||
[status-im.utils.utils :refer [http-post]]
|
||||
[status-im.utils.random :as random]
|
||||
[status-im.utils.sms-listener :refer [add-sms-listener
|
||||
remove-sms-listener]]
|
||||
|
|
|
@ -9,9 +9,8 @@
|
|||
:padding-top 12})
|
||||
|
||||
(def title
|
||||
{:color :white
|
||||
:font-size 14
|
||||
:font-family st/font})
|
||||
{:color :white
|
||||
:font-size 14})
|
||||
|
||||
(def description
|
||||
(assoc title :opacity 0.9
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
(ns status-im.chat.styles.content-suggestions
|
||||
(:require [status-im.components.styles :refer [font
|
||||
color-light-blue-transparent
|
||||
(:require [status-im.components.styles :refer [color-light-blue-transparent
|
||||
color-white
|
||||
color-black
|
||||
color-blue
|
||||
|
@ -26,13 +25,11 @@
|
|||
(def value-text
|
||||
{:marginTop 9
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color text1-color})
|
||||
|
||||
(def description-text
|
||||
{:marginTop 1.5
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color text2-color})
|
||||
|
||||
(defn suggestions-container [suggestions-count]
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
(ns status-im.chat.styles.input
|
||||
(:require [status-im.components.styles :refer [font
|
||||
color-white
|
||||
color-blue
|
||||
text1-color
|
||||
text2-color
|
||||
chat-background
|
||||
color-black]]))
|
||||
(:require [status-im.components.styles :refer [color-white
|
||||
color-blue
|
||||
text1-color
|
||||
text2-color
|
||||
chat-background
|
||||
color-black]]))
|
||||
|
||||
(def command-input-and-suggestions-container
|
||||
{:flexDirection :column})
|
||||
|
@ -36,7 +35,6 @@
|
|||
{:marginTop 3
|
||||
:marginHorizontal 12
|
||||
:fontSize 12
|
||||
:fontFamily font
|
||||
:color color-white})
|
||||
|
||||
(def command-input
|
||||
|
@ -45,7 +43,6 @@
|
|||
:marginTop -2
|
||||
:padding 0
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color text1-color})
|
||||
|
||||
(def send-container
|
||||
|
@ -101,7 +98,6 @@
|
|||
|
||||
(def staged-command-text
|
||||
{:fontSize 12
|
||||
:fontFamily font
|
||||
:color color-white})
|
||||
|
||||
(def staged-command-cancel
|
||||
|
@ -117,5 +113,4 @@
|
|||
{:marginTop 5
|
||||
:marginHorizontal 0
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color color-black})
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
(ns status-im.chat.styles.plain-message
|
||||
(:require [status-im.components.styles :refer [font
|
||||
text2-color]]))
|
||||
(:require [status-im.components.styles :refer [text2-color]]))
|
||||
|
||||
(defn message-input-button-touchable [w]
|
||||
{:width w
|
||||
|
@ -37,7 +36,6 @@
|
|||
:marginTop -2
|
||||
:padding 0
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color text2-color})
|
||||
|
||||
(def smile-icon
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
(ns status-im.chat.styles.response
|
||||
(:require [status-im.components.styles :refer [font
|
||||
color-white
|
||||
(:require [status-im.components.styles :refer [color-white
|
||||
color-blue
|
||||
text1-color
|
||||
text2-color
|
||||
chat-background
|
||||
color-black]]
|
||||
[status-im.chat.constants :refer [input-height request-info-height
|
||||
[status-im.chat.constants :refer [input-height
|
||||
request-info-height
|
||||
response-height-normal]]))
|
||||
|
||||
(def drag-container
|
||||
|
@ -39,22 +39,20 @@
|
|||
(def command-name
|
||||
{:marginTop 0
|
||||
:fontSize 12
|
||||
:fontFamily font
|
||||
:color color-white})
|
||||
|
||||
(def message-info
|
||||
{:marginTop 1
|
||||
:fontSize 12
|
||||
:fontFamily font
|
||||
:opacity 0.69
|
||||
:color color-white})
|
||||
|
||||
(defn response-view [height]
|
||||
(defn response-view [keyboard-height height]
|
||||
{:flexDirection :column
|
||||
:position :absolute
|
||||
:left 0
|
||||
:right 0
|
||||
:bottom 0
|
||||
:bottom keyboard-height
|
||||
:height height
|
||||
:backgroundColor color-white
|
||||
:elevation 2})
|
||||
|
@ -90,5 +88,4 @@
|
|||
:marginTop -2
|
||||
:padding 0
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color (if disbale? color-white text1-color)})
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
(ns status-im.chat.styles.screen
|
||||
(:require [status-im.components.styles :refer [font
|
||||
title-font
|
||||
color-white
|
||||
(:require [status-im.components.styles :refer [color-white
|
||||
color-black
|
||||
chat-background
|
||||
online-color
|
||||
|
@ -50,8 +48,7 @@
|
|||
(def chat-name-text
|
||||
{:marginTop -2.5
|
||||
:color text1-color
|
||||
:fontSize 16
|
||||
:fontFamily font})
|
||||
:fontSize 16})
|
||||
|
||||
(def group-icon
|
||||
{:marginTop 4
|
||||
|
@ -65,15 +62,13 @@
|
|||
(def members
|
||||
{:marginTop -0.5
|
||||
:marginLeft 4
|
||||
:fontFamily font
|
||||
:fontSize 12
|
||||
:color text2-color})
|
||||
|
||||
(def last-activity
|
||||
{:marginTop 1
|
||||
:color text2-color
|
||||
:fontSize 12
|
||||
:fontFamily font})
|
||||
:fontSize 12})
|
||||
|
||||
(defn actions-wrapper [status-bar-height]
|
||||
{:backgroundColor toolbar-background1
|
||||
|
@ -142,7 +137,6 @@
|
|||
(def typing-text
|
||||
{:marginTop -2
|
||||
:fontSize 12
|
||||
:fontFamily font
|
||||
:color text2-color})
|
||||
|
||||
(def overlay-highlight
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
(ns status-im.chat.styles.suggestions
|
||||
(:require [status-im.components.styles :refer [font
|
||||
color-light-blue-transparent
|
||||
(:require [status-im.components.styles :refer [color-light-blue-transparent
|
||||
color-white
|
||||
color-black
|
||||
color-gray
|
||||
|
@ -47,7 +46,6 @@
|
|||
{:marginTop 2.5
|
||||
:marginHorizontal 12
|
||||
:fontSize 12
|
||||
:fontFamily font
|
||||
:color color-white})
|
||||
|
||||
(def title-container
|
||||
|
@ -61,21 +59,19 @@
|
|||
(def value-text
|
||||
{:marginTop 6
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color text1-color})
|
||||
|
||||
(def description-text
|
||||
{:marginTop 2
|
||||
:fontSize 12
|
||||
:fontFamily font
|
||||
:color text2-color})
|
||||
|
||||
(defn container [height]
|
||||
(defn container [keyboard-height height]
|
||||
{:flexDirection :column
|
||||
:position :absolute
|
||||
:left 0
|
||||
:right 0
|
||||
:bottom 0
|
||||
:bottom keyboard-height
|
||||
:height height
|
||||
:backgroundColor color-white
|
||||
:elevation 2})
|
||||
|
@ -117,6 +113,6 @@
|
|||
|
||||
(def header-icon
|
||||
{:background-color :#838c93
|
||||
:width 14
|
||||
:border-radius 1
|
||||
:height 3})
|
||||
:width 14
|
||||
:border-radius 1
|
||||
:height 3})
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
[status-im.models.commands :refer [get-commands
|
||||
get-chat-command-request
|
||||
get-chat-command-to-message-id]]
|
||||
[status-im.utils.utils :refer [log on-error http-get]]
|
||||
[status-im.utils.utils :refer [log http-get]]
|
||||
[clojure.string :as s]))
|
||||
|
||||
(defn suggestion? [text]
|
||||
|
|
|
@ -114,7 +114,8 @@
|
|||
[view st/action-view
|
||||
[text {:style st/action-title
|
||||
:number-of-lines 1
|
||||
:font :medium} title]
|
||||
:font :medium}
|
||||
title]
|
||||
(when-let [subtitle subtitle]
|
||||
[text {:style st/action-subtitle
|
||||
:number-of-lines 1
|
||||
|
|
|
@ -23,10 +23,10 @@
|
|||
[view st/message-input-container input])
|
||||
|
||||
(defn plain-input-options [disable?]
|
||||
{:style st-message/message-input
|
||||
:onChangeText (when-not disable? plain-message/set-input-message)
|
||||
:editable (not disable?)
|
||||
:onSubmitEditing plain-message/send})
|
||||
{:style st-message/message-input
|
||||
:on-change-text (when-not disable? plain-message/set-input-message)
|
||||
:editable (not disable?)
|
||||
:on-submit-editing plain-message/send})
|
||||
|
||||
(defn on-press-commands-handler
|
||||
[{:keys [suggestions-trigger]}]
|
||||
|
@ -35,9 +35,9 @@
|
|||
command/send-command))
|
||||
|
||||
(defn command-input-options [command icon-width disable?]
|
||||
{:style (st-response/command-input icon-width disable?)
|
||||
:onChangeText (when-not disable? command/set-input-message)
|
||||
:onSubmitEditing (on-press-commands-handler command)})
|
||||
{:style (st-response/command-input icon-width disable?)
|
||||
:on-change-text (when-not disable? command/set-input-message)
|
||||
:on-submit-editing (on-press-commands-handler command)})
|
||||
|
||||
(defview message-input [input-options command]
|
||||
[command? [:command?]
|
||||
|
@ -49,12 +49,13 @@
|
|||
(if command?
|
||||
(command-input-options command icon-width disable?)
|
||||
(plain-input-options disable?))
|
||||
{:autoFocus false
|
||||
:blurOnSubmit false
|
||||
{:auto-focus false
|
||||
:blur-on-submit false
|
||||
:editable true
|
||||
:accessibility-label :input
|
||||
:on-focus #(dispatch [:set :focused true])
|
||||
:on-blur #(dispatch [:set :focused false])
|
||||
:default-value (if command? input-command input-message)}
|
||||
:default-value (if command? (or input-command "") input-message)}
|
||||
input-options)])
|
||||
|
||||
(defview plain-message-input-view [{:keys [input-options]}]
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
|
||||
(defn get-options [{:keys [type placeholder]} command-type]
|
||||
(let [options (case (keyword type)
|
||||
:phone {:input-options {:keyboardType :phone-pad}}
|
||||
:password {:input-options {:secureTextEntry true}}
|
||||
:number {:input-options {:keyboardType :numeric}}
|
||||
:phone {:input-options {:keyboard-type "phone-pad"}}
|
||||
:password {:input-options {:secure-text-entry true}}
|
||||
:number {:input-options {:keyboard-type "numeric"}}
|
||||
;; todo maybe nil is fine for now :)
|
||||
nil #_(throw (js/Error. "Uknown command type")))]
|
||||
(if (= :response command-type)
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
:component-will-unmount
|
||||
#(reset! loop? false)
|
||||
:reagent-render
|
||||
(fn [message-id command]
|
||||
(fn [message-id {command-icon :icon :as command}]
|
||||
(if command
|
||||
[touchable-highlight
|
||||
{:on-press (when-not @answered?
|
||||
|
@ -64,8 +64,9 @@
|
|||
:style st/command-request-image-touchable
|
||||
:accessibility-label (label command)}
|
||||
[animated-view {:style (st/command-request-image-view command scale-anim-val)}
|
||||
[image {:source {:uri (:icon command)}
|
||||
:style st/command-request-image}]]]))})))
|
||||
(if command-icon
|
||||
[image {:source {:uri command-icon}
|
||||
:style st/command-request-image}])]]))})))
|
||||
|
||||
(defn message-content-command-request
|
||||
[{:keys [message-id content from incoming-group]}]
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
[status-im.components.react :refer [view
|
||||
animated-view
|
||||
icon
|
||||
image
|
||||
text
|
||||
text-input
|
||||
touchable-highlight
|
||||
|
@ -20,6 +19,7 @@
|
|||
[status-im.chat.suggestions-responder :as resp]
|
||||
[status-im.chat.constants :as c]
|
||||
[status-im.chat.views.command-validation :as cv]
|
||||
[status-im.utils.platform :refer [ios?]]
|
||||
[status-im.components.webview-bridge :refer [webview-bridge]]))
|
||||
|
||||
(defn drag-icon []
|
||||
|
@ -71,12 +71,13 @@
|
|||
(let [;; todo to-response-height, cur-response-height must be specific
|
||||
;; for each chat
|
||||
to-response-height (subscribe [:response-height])
|
||||
changed (subscribe [:animations :response-height-changed])
|
||||
animate? (subscribe [:animate?])
|
||||
context {:to-value to-response-height
|
||||
:val response-height
|
||||
:animate? animate?}
|
||||
on-update #(container-animation-logic context)]
|
||||
changed (subscribe [:animations :response-height-changed])
|
||||
animate? (subscribe [:animate?])
|
||||
keyboard-height (subscribe [:get :keyboard-height])
|
||||
context {:to-value to-response-height
|
||||
:val response-height
|
||||
:animate? animate?}
|
||||
on-update #(container-animation-logic context)]
|
||||
(r/create-class
|
||||
{:component-did-mount
|
||||
on-update
|
||||
|
@ -85,7 +86,9 @@
|
|||
:reagent-render
|
||||
(fn [response-height & children]
|
||||
@to-response-height @changed
|
||||
(into [animated-view {:style (st/response-view response-height)}]
|
||||
(into [animated-view {:style (st/response-view
|
||||
(if ios? @keyboard-height 0)
|
||||
response-height)}]
|
||||
children))})))
|
||||
|
||||
(defn on-navigation-change
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
[reagent.core :as r]
|
||||
[status-im.components.animation :as anim]
|
||||
[status-im.components.drag-drop :as drag]
|
||||
[status-im.utils.platform :refer [ios?]]
|
||||
[status-im.chat.suggestions-responder :as resp]
|
||||
[status-im.chat.constants :as c]))
|
||||
|
||||
|
@ -108,6 +109,7 @@
|
|||
(let [;; todo to-response-height, cur-response-height must be specific
|
||||
;; for each chat
|
||||
to-response-height (subscribe [:command-suggestions-height])
|
||||
keyboard-height (subscribe [:get :keyboard-height])
|
||||
changed (subscribe [:animations :commands-height-changed])
|
||||
animate? (subscribe [:animate?])
|
||||
context {:to-value to-response-height
|
||||
|
@ -122,7 +124,7 @@
|
|||
:reagent-render
|
||||
(fn [h & elements]
|
||||
@to-response-height @changed
|
||||
(into [animated-view {:style (st/container h)}] elements))})))
|
||||
(into [animated-view {:style (st/container (if ios? @keyboard-height 0) h)}] elements))})))
|
||||
|
||||
(defn suggestion-container []
|
||||
(let [h (anim/create-value c/input-height)]
|
||||
|
|
|
@ -27,19 +27,17 @@
|
|||
|
||||
(defview chats-list-toolbar []
|
||||
[chats-scrolled? [:get :chats-scrolled?]]
|
||||
[view
|
||||
[status-bar]
|
||||
[toolbar {:nav-action {:image {:source {:uri :icon_hamburger}
|
||||
:style st/hamburger-icon}
|
||||
:handler open-drawer}
|
||||
:title (label :t/chats)
|
||||
:background-color (if chats-scrolled?
|
||||
toolbar-background1
|
||||
toolbar-background2)
|
||||
;; TODO implement search
|
||||
:action {:image {:source {:uri :icon_search}
|
||||
:style st/search-icon}
|
||||
:handler (fn [])}}]])
|
||||
[toolbar {:nav-action {:image {:source {:uri :icon_hamburger}
|
||||
:style st/hamburger-icon}
|
||||
:handler open-drawer}
|
||||
:title (label :t/chats)
|
||||
:background-color (if chats-scrolled?
|
||||
toolbar-background1
|
||||
toolbar-background2)
|
||||
;; TODO implement search
|
||||
:action {:image {:source {:uri :icon_search}
|
||||
:style st/search-icon}
|
||||
:handler (fn [])}}])
|
||||
|
||||
(defview chats-list []
|
||||
[chats [:get :chats]]
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
(ns status-im.chats-list.styles
|
||||
(:require [status-im.components.styles :refer [font
|
||||
title-font
|
||||
color-white
|
||||
(:require [status-im.components.styles :refer [color-white
|
||||
color-blue
|
||||
online-color
|
||||
text1-color
|
||||
|
@ -32,8 +30,7 @@
|
|||
(def name-text
|
||||
{:marginTop -2.5
|
||||
:color text1-color
|
||||
:fontSize 14
|
||||
:fontFamily title-font})
|
||||
:fontSize 14})
|
||||
|
||||
(def group-icon
|
||||
{:marginTop 4
|
||||
|
@ -44,7 +41,6 @@
|
|||
(def memebers-text
|
||||
{:marginTop -0.5
|
||||
:marginLeft 4
|
||||
:fontFamily font
|
||||
:fontSize 12
|
||||
:color text2-color})
|
||||
|
||||
|
@ -52,7 +48,6 @@
|
|||
{:marginTop 7
|
||||
:marginRight 40
|
||||
:color text1-color
|
||||
:fontFamily font
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -68,8 +63,7 @@
|
|||
:height 7})
|
||||
|
||||
(def datetime-text
|
||||
{:fontFamily font
|
||||
:fontSize 12
|
||||
{:fontSize 12
|
||||
:color text2-color
|
||||
:marginLeft 5})
|
||||
|
||||
|
@ -85,7 +79,6 @@
|
|||
(def new-messages-text
|
||||
{:top 4
|
||||
:left 0
|
||||
:fontFamily title-font
|
||||
:fontSize 10
|
||||
:color color-blue
|
||||
:textAlign :center})
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
text
|
||||
image
|
||||
touchable-highlight]]
|
||||
[status-im.components.styles :refer [font]]
|
||||
[status-im.chats-list.views.inner-item :refer [chat-list-item-inner-view]]))
|
||||
|
||||
(defn chat-list-item [[chat-id chat]]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
(ns status-im.commands.handlers.jail
|
||||
(:require [re-frame.core :refer [after dispatch subscribe trim-v debug]]
|
||||
[status-im.utils.handlers :as u]
|
||||
[status-im.utils.utils :refer [http-get toast]]
|
||||
[status-im.utils.utils :refer [http-get show-popup]]
|
||||
[status-im.components.status :as status]
|
||||
[status-im.utils.types :refer [json->clj]]
|
||||
[status-im.commands.utils :refer [generate-hiccup reg-handler]]
|
||||
|
@ -76,7 +76,7 @@
|
|||
(defn print-error-message! [message]
|
||||
(fn [_ params]
|
||||
(when (:error (last params))
|
||||
(toast (s/join "\n" [message params]))
|
||||
(show-popup "Error" (s/join "\n" [message params]))
|
||||
(println message params))))
|
||||
|
||||
(reg-handler :init-render-command! init-render-command!)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
(:require-macros [status-im.utils.slurp :refer [slurp]])
|
||||
(:require [re-frame.core :refer [path after dispatch subscribe trim-v debug]]
|
||||
[status-im.utils.handlers :as u]
|
||||
[status-im.utils.utils :refer [http-get toast]]
|
||||
[status-im.utils.utils :refer [http-get show-popup]]
|
||||
[clojure.string :as s]
|
||||
[status-im.persistence.realm.core :as realm]
|
||||
[status-im.components.status :as status]
|
||||
|
@ -94,7 +94,7 @@
|
|||
id
|
||||
(name reason)
|
||||
details])]
|
||||
(toast m)
|
||||
(show-popup "Error" m)
|
||||
(println m))))
|
||||
|
||||
(reg-handler :load-commands! (u/side-effect! load-commands!))
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
(ns status-im.components.carousel.styles
|
||||
(:require [status-im.components.styles :refer [font
|
||||
title-font
|
||||
color-white
|
||||
chat-background
|
||||
online-color
|
||||
selected-message-color
|
||||
separator-color
|
||||
text1-color
|
||||
text2-color
|
||||
toolbar-background1]]))
|
||||
(:require [status-im.components.styles :refer [color-white
|
||||
chat-background
|
||||
online-color
|
||||
selected-message-color
|
||||
separator-color
|
||||
text1-color
|
||||
text2-color
|
||||
toolbar-background1]]))
|
||||
|
||||
(def scroll-view-container
|
||||
{:flex 1})
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
(ns status-im.components.chat-icon.styles
|
||||
(:require [status-im.components.styles :refer [font
|
||||
title-font
|
||||
color-white
|
||||
(:require [status-im.components.styles :refer [color-white
|
||||
chat-background
|
||||
online-color
|
||||
selected-message-color
|
||||
|
@ -37,7 +35,6 @@
|
|||
(def default-chat-icon-text
|
||||
{:marginTop -2
|
||||
:color color-white
|
||||
:fontFamily font
|
||||
:fontSize 16
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -97,7 +94,8 @@
|
|||
(def online-dot-right (merge online-dot {:left 9}))
|
||||
|
||||
(def photo-pencil
|
||||
{:margin-left 6
|
||||
{:margin-left 5
|
||||
:margin-right 5
|
||||
:margin-top 3
|
||||
:font-size 12
|
||||
:color :white})
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
(ns status-im.components.drawer.styles
|
||||
(:require [status-im.components.styles :refer [font
|
||||
color-light-blue-transparent
|
||||
(:require [status-im.components.styles :refer [color-light-blue-transparent
|
||||
color-white
|
||||
color-black
|
||||
color-blue
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
view
|
||||
text
|
||||
image
|
||||
drawer-layout-android
|
||||
drawer-layout
|
||||
touchable-opacity]]
|
||||
[status-im.resources :as res]
|
||||
[status-im.components.drawer.styles :as st]
|
||||
|
@ -76,9 +76,8 @@
|
|||
(label :t/switch-users)]]]])
|
||||
|
||||
(defn drawer-view [items]
|
||||
[drawer-layout-android {:drawerWidth 260
|
||||
:drawerPosition js/ReactNative.DrawerLayoutAndroid.positions.Left
|
||||
:render-navigation-view #(r/as-element [drawer-menu])
|
||||
:ref (fn [drawer]
|
||||
(reset! drawer-atom drawer))}
|
||||
[drawer-layout {:drawerWidth 260
|
||||
:render-navigation-view #(r/as-element [drawer-menu])
|
||||
:ref (fn [drawer]
|
||||
(reset! drawer-atom drawer))}
|
||||
items])
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
[view-id [:get :view-id]
|
||||
tab-animation? [:get :prev-tab-view-id]]
|
||||
[view common-st/flex
|
||||
[status-bar]
|
||||
[status-bar {:type :main}]
|
||||
[view common-st/flex
|
||||
[drawer-view
|
||||
[view {:style common-st/flex
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
(def linear-gradient-module (u/require "react-native-linear-gradient"))
|
||||
(def dismiss-keyboard! (u/require "dismissKeyboard"))
|
||||
(def orientation (u/require "react-native-orientation"))
|
||||
(def drawer (u/require "react-native-drawer-layout"))
|
||||
|
||||
;; Getters
|
||||
|
||||
|
@ -34,7 +35,7 @@
|
|||
(def linear-gradient-class (adapt-class linear-gradient-module))
|
||||
|
||||
(def status-bar (get-class "StatusBar"))
|
||||
(def drawer-layout-android (get-class "DrawerLayoutAndroid"))
|
||||
(def drawer-layout (adapt-class drawer))
|
||||
|
||||
(def list-view-class (get-class "ListView"))
|
||||
(def scroll-view (get-class "ScrollView"))
|
||||
|
@ -76,11 +77,11 @@
|
|||
|
||||
(defn text-input [props text]
|
||||
[text-input-class (merge
|
||||
{:underlineColorAndroid :transparent
|
||||
:placeholderTextColor st/text2-color
|
||||
:placeholder "Type"}
|
||||
props)
|
||||
text])
|
||||
{:underline-color-android :transparent
|
||||
:placeholder-text-color st/text2-color
|
||||
:placeholder "Type"
|
||||
:value text}
|
||||
props)])
|
||||
|
||||
(defn icon
|
||||
([n] (icon n {}))
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
(ns status-im.components.styles)
|
||||
|
||||
(def font "HelveticaNeue")
|
||||
;; (def font "Avenir-Roman")
|
||||
(def font-medium "sans-serif-medium")
|
||||
(def title-font font-medium)
|
||||
|
||||
(def color-transparent "transparent")
|
||||
(def color-blue "#7099e6")
|
||||
(def color-blue-transparent "#7099e632")
|
||||
|
@ -82,13 +77,11 @@
|
|||
(def form-text-input
|
||||
{:marginLeft -4
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color text1-color})
|
||||
|
||||
(def white-form-text-input
|
||||
{:marginLeft -4
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color color-white})
|
||||
|
||||
(def toolbar-title-container
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
(ns status-im.components.tabs.bottom-gradient
|
||||
(:require [status-im.components.tabs.styles :as st]
|
||||
[status-im.components.react :refer [linear-gradient]]))
|
||||
[status-im.components.react :refer [linear-gradient]]
|
||||
[status-im.utils.platform :refer [platform-specific]]))
|
||||
|
||||
(defn bottom-gradient []
|
||||
[linear-gradient {:locations [0 0.8 1]
|
||||
:colors ["rgba(24, 52, 76, 0)" "rgba(24, 52, 76, 0.085)" "rgba(24, 52, 76, 0.165)"]
|
||||
:style st/bottom-gradient}])
|
||||
:style (merge
|
||||
st/bottom-gradient
|
||||
(get-in platform-specific [:component-styles :bottom-gradient]))}])
|
|
@ -1,7 +1,5 @@
|
|||
(ns status-im.components.tabs.styles
|
||||
(:require [status-im.components.styles :refer [font
|
||||
title-font
|
||||
color-white
|
||||
(:require [status-im.components.styles :refer [color-white
|
||||
chat-background
|
||||
online-color
|
||||
selected-message-color
|
||||
|
@ -28,8 +26,7 @@
|
|||
{:position :absolute
|
||||
:bottom 0
|
||||
:left 0
|
||||
:right 0
|
||||
:height 4})
|
||||
:right 0})
|
||||
|
||||
(def tabs-inner-container
|
||||
{:flexDirection :row
|
||||
|
@ -46,8 +43,7 @@
|
|||
:alignItems :center})
|
||||
|
||||
(def tab-title
|
||||
{:fontFamily "sans-serif"
|
||||
:fontSize 14
|
||||
{:fontSize 14
|
||||
:color "#6e93d8"})
|
||||
|
||||
(def tab-icon
|
||||
|
|
|
@ -2,39 +2,40 @@
|
|||
|
||||
|
||||
(def text-field-container
|
||||
{:position :relative
|
||||
:height 72
|
||||
:paddingTop 30
|
||||
:paddingBottom 7})
|
||||
{:position :relative
|
||||
:height 72
|
||||
:padding-top 30
|
||||
:padding-bottom 7})
|
||||
|
||||
(def text-input
|
||||
{:fontSize 16
|
||||
:height 34
|
||||
:lineHeight 34
|
||||
:paddingBottom 5
|
||||
:textAlignVertical :top})
|
||||
{:font-size 16
|
||||
:height 34
|
||||
:line-height 34
|
||||
:padding-bottom 5
|
||||
:text-align-vertical :top})
|
||||
|
||||
(defn label [top font-size color]
|
||||
{:position :absolute
|
||||
:top top
|
||||
:left 0
|
||||
:color color
|
||||
:fontSize font-size
|
||||
:backgroundColor :transparent})
|
||||
{:position :absolute
|
||||
:top top
|
||||
:left 0
|
||||
:color color
|
||||
:font-size font-size
|
||||
:background-color :transparent})
|
||||
|
||||
(def label-float
|
||||
{})
|
||||
|
||||
(defn underline-container [backgroundColor]
|
||||
{:backgroundColor backgroundColor
|
||||
:height 1
|
||||
:alignItems :center})
|
||||
(defn underline-container [background-color]
|
||||
{:background-color background-color
|
||||
:height 1
|
||||
:align-items :center})
|
||||
|
||||
(defn underline [backgroundColor width]
|
||||
{:backgroundColor backgroundColor
|
||||
:height 1
|
||||
:width width})
|
||||
(defn underline [background-color width]
|
||||
{:background-color background-color
|
||||
:height 1
|
||||
:width width})
|
||||
|
||||
(defn error-text [color]
|
||||
{:color color
|
||||
:fontSize 12})
|
||||
{:color color
|
||||
:background-color :transparent
|
||||
:font-size 12})
|
||||
|
|
|
@ -21,19 +21,19 @@
|
|||
:label-font-small 13
|
||||
:label-animation-duration 200})
|
||||
|
||||
(def default-props {:wrapperStyle {}
|
||||
:inputStyle {}
|
||||
:lineStyle {}
|
||||
:editable true
|
||||
:labelColor "#838c93"
|
||||
:lineColor "#0000001f"
|
||||
:focusLineColor "#0000001f"
|
||||
:errorColor "#d50000"
|
||||
:secureTextEntry false
|
||||
:onFocus #()
|
||||
:onBlur #()
|
||||
:onChangeText #()
|
||||
:onChange #()})
|
||||
(def default-props {:wrapper-style {}
|
||||
:input-style {}
|
||||
:line-style {}
|
||||
:editable true
|
||||
:label-color "#838c93"
|
||||
:line-color "#0000001f"
|
||||
:focus-line-color "#0000001f"
|
||||
:error-color "#d50000"
|
||||
:secure-text-entry false
|
||||
:on-focus #()
|
||||
:on-blur #()
|
||||
:on-change-text #()
|
||||
:on-change #()})
|
||||
|
||||
(defn field-animation [{:keys [top to-top font-size to-font-size
|
||||
line-width to-line-width]}]
|
||||
|
@ -117,18 +117,18 @@
|
|||
;(log/debug "component-did-update: " prev-props prev-state)
|
||||
)
|
||||
|
||||
(defn on-focus [{:keys [component animation onFocus]}]
|
||||
(defn on-input-focus [{:keys [component animation onFocus]}]
|
||||
(do
|
||||
(log/debug "input focused")
|
||||
(r/set-state component {:has-focus true
|
||||
(r/set-state component {:has-focus true
|
||||
:float-label? true})
|
||||
(field-animation animation)
|
||||
(when onFocus (onFocus))))
|
||||
|
||||
(defn on-blur [{:keys [component value animation onBlur]}]
|
||||
(defn on-input-blur [{:keys [component value animation onBlur]}]
|
||||
(do
|
||||
(log/debug "Input blurred")
|
||||
(r/set-state component {:has-focus false
|
||||
(r/set-state component {:has-focus false
|
||||
:float-label? (if (s/blank? value) false true)})
|
||||
(when (s/blank? value)
|
||||
(field-animation animation))
|
||||
|
@ -145,42 +145,42 @@
|
|||
label-font-size
|
||||
line-width
|
||||
max-line-width] :as state} (r/state component)
|
||||
{:keys [wrapperStyle inputStyle lineColor focusLineColor secureTextEntry
|
||||
labelColor errorColor error label value onFocus onBlur
|
||||
onChangeText onChange editable] :as props} (merge default-props (r/props component))
|
||||
lineColor (if error errorColor lineColor)
|
||||
focusLineColor (if error errorColor focusLineColor)
|
||||
labelColor (if (and error (not float-label?)) errorColor labelColor)
|
||||
{:keys [wrapper-style input-style line-color focus-line-color secure-text-entry
|
||||
label-color error-color error label value on-focus on-blur
|
||||
on-change-text on-change editable] :as props} (merge default-props (r/props component))
|
||||
line-color (if error error-color line-color)
|
||||
focus-line-color (if error error-color focus-line-color)
|
||||
label-color (if (and error (not float-label?)) error-color label-color)
|
||||
label (if error (str label " *") label)]
|
||||
[view (merge st/text-field-container wrapperStyle)
|
||||
[animated-text {:style (st/label label-top label-font-size labelColor)} label]
|
||||
[text-input {:style (merge st/text-input inputStyle)
|
||||
:placeholder ""
|
||||
:editable editable
|
||||
:secureTextEntry secureTextEntry
|
||||
:onFocus #(on-focus {:component component
|
||||
:animation {:top label-top
|
||||
:to-top (:label-top config)
|
||||
:font-size label-font-size
|
||||
:to-font-size (:label-font-small config)
|
||||
:line-width line-width
|
||||
:to-line-width max-line-width}
|
||||
:onFocus onFocus})
|
||||
:onBlur #(on-blur {:component component
|
||||
:value value
|
||||
:animation {:top label-top
|
||||
:to-top (:label-bottom config)
|
||||
:font-size label-font-size
|
||||
:to-font-size (:label-font-large config)
|
||||
:line-width line-width
|
||||
:to-line-width 0}
|
||||
:onBlur onBlur})
|
||||
:onChangeText #(onChangeText %)
|
||||
:onChange #(onChange %)} value]
|
||||
[view {:style (st/underline-container lineColor)
|
||||
[view (merge st/text-field-container wrapper-style)
|
||||
[animated-text {:style (st/label label-top label-font-size label-color)} label]
|
||||
[text-input {:style (merge st/text-input input-style)
|
||||
:placeholder ""
|
||||
:editable editable
|
||||
:secure-text-entry secure-text-entry
|
||||
:on-focus #(on-input-focus {:component component
|
||||
:animation {:top label-top
|
||||
:to-top (:label-top config)
|
||||
:font-size label-font-size
|
||||
:to-font-size (:label-font-small config)
|
||||
:line-width line-width
|
||||
:to-line-width max-line-width}
|
||||
:onFocus on-focus})
|
||||
:on-blur #(on-input-blur {:component component
|
||||
:value value
|
||||
:animation {:top label-top
|
||||
:to-top (:label-bottom config)
|
||||
:font-size label-font-size
|
||||
:to-font-size (:label-font-large config)
|
||||
:line-width line-width
|
||||
:to-line-width 0}
|
||||
:onBlur on-blur})
|
||||
:on-change-text #(on-change-text %)
|
||||
:on-change #(on-change %)} value]
|
||||
[view {:style (st/underline-container line-color)
|
||||
:onLayout #(r/set-state component {:max-line-width (get-width %)})}
|
||||
[animated-view {:style (st/underline focusLineColor line-width)}]]
|
||||
[text {:style (st/error-text errorColor)} error]]))
|
||||
[animated-view {:style (st/underline focus-line-color line-width)}]]
|
||||
[text {:style (st/error-text error-color)} error]]))
|
||||
|
||||
(defn text-field [data children]
|
||||
(let [component-data {:get-initial-state get-initial-state
|
||||
|
|
|
@ -28,17 +28,15 @@
|
|||
[status-im.components.styles :as cst]))
|
||||
|
||||
(defn contact-list-toolbar []
|
||||
[view
|
||||
[status-bar]
|
||||
[toolbar {:nav-action {:image {:source {:uri :icon_hamburger}
|
||||
:style hamburger-icon}
|
||||
:handler open-drawer}
|
||||
:title (label :t/contacts)
|
||||
:background-color toolbar-background2
|
||||
:style {:elevation 0}
|
||||
:action {:image {:source {:uri :icon_search}
|
||||
:style icon-search}
|
||||
:handler (fn [])}}]])
|
||||
[toolbar {:nav-action {:image {:source {:uri :icon_hamburger}
|
||||
:style hamburger-icon}
|
||||
:handler open-drawer}
|
||||
:title (label :t/contacts)
|
||||
:background-color toolbar-background2
|
||||
:style {:elevation 0}
|
||||
:action {:image {:source {:uri :icon_search}
|
||||
:style icon-search}
|
||||
:handler (fn [])}}])
|
||||
|
||||
(def contacts-limit 10)
|
||||
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
(ns status-im.contacts.styles
|
||||
(:require [status-im.components.styles :refer [font
|
||||
font-medium
|
||||
title-font
|
||||
text1-color
|
||||
(:require [status-im.components.styles :refer [text1-color
|
||||
text2-color
|
||||
text3-color
|
||||
text5-color
|
||||
|
@ -57,13 +54,11 @@
|
|||
{:flex 1
|
||||
:marginLeft 16
|
||||
:fontSize 14
|
||||
:fontFamily font-medium
|
||||
:color text5-color})
|
||||
|
||||
(def contact-group-size-text
|
||||
{:marginRight 14
|
||||
:fontSize 12
|
||||
:fontFamily font
|
||||
:color text2-color})
|
||||
|
||||
(def contact-group-header-gradient-top
|
||||
|
@ -97,7 +92,6 @@
|
|||
(def show-all-text
|
||||
{:marginLeft 72
|
||||
:fontSize 14
|
||||
:fontFamily font-medium
|
||||
:color text3-color
|
||||
;; ios only:
|
||||
:letterSpacing 0.5})
|
||||
|
@ -113,7 +107,6 @@
|
|||
|
||||
(def letter-text
|
||||
{:fontSize 24
|
||||
:fontFamily font
|
||||
:color text3-color})
|
||||
|
||||
(def contact-photo-container
|
||||
|
@ -134,13 +127,11 @@
|
|||
|
||||
(def name-text
|
||||
{:fontSize 16
|
||||
:fontFamily font
|
||||
:color text1-color})
|
||||
|
||||
(def info-text
|
||||
{:marginTop 1
|
||||
:fontSize 12
|
||||
:fontFamily font
|
||||
:color text2-color})
|
||||
|
||||
(def more-btn
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
[status-im.utils.identicon :refer [identicon]]
|
||||
[status-im.components.status-bar :refer [status-bar]]
|
||||
[status-im.components.toolbar :refer [toolbar]]
|
||||
[status-im.utils.utils :refer [log on-error http-post toast]]
|
||||
[status-im.utils.utils :refer [log http-post]]
|
||||
[status-im.components.styles :refer [color-purple
|
||||
color-white
|
||||
icon-search
|
||||
|
@ -72,14 +72,14 @@
|
|||
(label :t/enter-valid-address))]
|
||||
[view button-input-container
|
||||
[text-field
|
||||
{:error error
|
||||
:errorColor "#7099e6"
|
||||
:value whisper-identity
|
||||
:wrapperStyle (merge button-input)
|
||||
:label (label :t/address)
|
||||
:onChangeText #(do
|
||||
(dispatch [:set-in [:new-contact-identity] %])
|
||||
(dispatch [:set :new-contact-address-error nil]))}]
|
||||
{:error error
|
||||
:error-color "#7099e6"
|
||||
:value whisper-identity
|
||||
:wrapper-style (merge button-input)
|
||||
:label (label :t/address)
|
||||
:on-change-text #(do
|
||||
(dispatch [:set-in [:new-contact-identity] %])
|
||||
(dispatch [:set :new-contact-address-error nil]))}]
|
||||
[scan-button {:showLabel (zero? (count whisper-identity))
|
||||
:handler #(dispatch [:scan-qr-code {:toolbar-title (label :t/new-contact)} :set-contact-identity-from-qr])}]]))
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
scroll-view
|
||||
text
|
||||
text-input]]
|
||||
[status-im.components.status-bar :refer [status-bar]]
|
||||
[status-im.components.toolbar :refer [toolbar]]
|
||||
[status-im.components.drawer.view :refer [open-drawer]]
|
||||
[status-im.discovery.views.popular :refer [discovery-popular]]
|
||||
|
@ -40,17 +39,15 @@
|
|||
(dispatch [:set ::show-search? (not current-value)]))
|
||||
|
||||
(defn discovery-toolbar [show-search?]
|
||||
[view
|
||||
[status-bar]
|
||||
[toolbar
|
||||
{:style st/discovery-toolbar
|
||||
:nav-action {:image {:source {:uri :icon_hamburger}
|
||||
:style st/hamburger-icon}
|
||||
:handler open-drawer}
|
||||
:custom-content [title-content show-search?]
|
||||
:action {:image {:source {:uri :icon_search}
|
||||
:style st/search-icon}
|
||||
:handler #(toogle-search show-search?)}}]])
|
||||
[toolbar
|
||||
{:style st/discovery-toolbar
|
||||
:nav-action {:image {:source {:uri :icon_hamburger}
|
||||
:style st/hamburger-icon}
|
||||
:handler open-drawer}
|
||||
:custom-content [title-content show-search?]
|
||||
:action {:image {:source {:uri :icon_search}
|
||||
:style st/search-icon}
|
||||
:handler #(toogle-search show-search?)}}])
|
||||
|
||||
(defview discovery []
|
||||
[show-search? [:get ::show-search?]
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
(ns status-im.group-settings.styles.group-settings
|
||||
(:require [status-im.components.styles :refer [font
|
||||
font-medium
|
||||
title-font
|
||||
color-white
|
||||
color-purple
|
||||
chat-background
|
||||
online-color
|
||||
selected-message-color
|
||||
separator-color
|
||||
text1-color
|
||||
text2-color
|
||||
toolbar-background1]]))
|
||||
(:require [status-im.components.styles :refer [color-white
|
||||
color-purple
|
||||
chat-background
|
||||
online-color
|
||||
selected-message-color
|
||||
separator-color
|
||||
text1-color
|
||||
text2-color
|
||||
toolbar-background1]]))
|
||||
|
||||
(def modal-container
|
||||
{:flex 1
|
||||
|
@ -25,14 +22,12 @@
|
|||
|
||||
(def modal-member-name
|
||||
{:color text2-color
|
||||
:fontFamily font
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
(def modal-remove-text
|
||||
{:margin 10
|
||||
:color text1-color
|
||||
:fontFamily font
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -45,7 +40,6 @@
|
|||
{:margin 10
|
||||
:alignSelf :center
|
||||
:color text1-color
|
||||
:fontFamily font
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -72,7 +66,6 @@
|
|||
:marginLeft 16
|
||||
:marginBottom 16
|
||||
:color text2-color
|
||||
:fontFamily font-medium
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -88,7 +81,6 @@
|
|||
(def chat-name-value
|
||||
{:flex 1
|
||||
:fontSize 16
|
||||
:fontFamily font
|
||||
:color text1-color})
|
||||
|
||||
(def chat-name-validation-message
|
||||
|
@ -103,7 +95,6 @@
|
|||
|
||||
(def chat-name-btn-edit-text
|
||||
{:color text2-color
|
||||
:fontFamily font
|
||||
:fontSize 16
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -112,7 +103,6 @@
|
|||
:marginLeft 16
|
||||
:marginBottom 16
|
||||
:color text2-color
|
||||
:fontFamily font-medium
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -130,7 +120,6 @@
|
|||
{:marginTop 18
|
||||
:marginLeft 32
|
||||
:color text2-color
|
||||
:fontFamily font
|
||||
:fontSize 16
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -139,7 +128,6 @@
|
|||
:marginLeft 16
|
||||
:marginBottom 16
|
||||
:color text2-color
|
||||
:fontFamily font-medium
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -165,14 +153,12 @@
|
|||
(def setting-title
|
||||
{:marginTop -2.5
|
||||
:color text1-color
|
||||
:fontSize 16
|
||||
:fontFamily font})
|
||||
:fontSize 16})
|
||||
|
||||
(def setting-subtitle
|
||||
{:marginTop 1
|
||||
:color text2-color
|
||||
:fontSize 12
|
||||
:fontFamily font})
|
||||
:fontSize 12})
|
||||
|
||||
(defn chat-color-icon [color]
|
||||
{:borderRadius 12
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
(ns status-im.handlers.server
|
||||
(:require [re-frame.core :refer [subscribe dispatch dispatch-sync]]
|
||||
[status-im.utils.utils :refer [on-error http-post]]
|
||||
[status-im.utils.utils :refer [http-post]]
|
||||
[taoensso.timbre :as log]))
|
||||
|
||||
(defn sign-up
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
[status-im.group-settings.screen :refer [group-settings]]
|
||||
[status-im.profile.screen :refer [profile my-profile]]
|
||||
[status-im.profile.photo-capture.screen :refer [profile-photo-capture]]
|
||||
[status-im.utils.utils :refer [toast]]
|
||||
status-im.persistence.realm.core
|
||||
[taoensso.timbre :as log]))
|
||||
|
||||
|
@ -46,13 +45,13 @@
|
|||
#(dispatch [:set :orientation (orientation->keyword %)]))
|
||||
(.lockToPortrait orientation)
|
||||
(.addListener keyboard
|
||||
"keyboardDidShow"
|
||||
"keyboardWillShow"
|
||||
(fn [e]
|
||||
(let [h (.. e -endCoordinates -height)]
|
||||
(when-not (= h @keyboard-height)
|
||||
(dispatch [:set :keyboard-height h])))))
|
||||
(.addListener keyboard
|
||||
"keyboardDidHide"
|
||||
"keyboardWillHide"
|
||||
(when-not (= 0 @keyboard-height)
|
||||
#(dispatch [:set :keyboard-height 0]))))
|
||||
:render
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
(ns status-im.ios.platform
|
||||
(:require [status-im.components.styles :as styles]
|
||||
[status-im.utils.utils :as u]
|
||||
[reagent.core :as r]))
|
||||
[status-im.utils.utils :as u]))
|
||||
|
||||
(def component-styles
|
||||
{:status-bar {:default {:height 20
|
||||
:bar-style "default"
|
||||
:color styles/color-white}
|
||||
:main {:height 20
|
||||
:bar-style "default"
|
||||
:color styles/toolbar-background2}
|
||||
:transparent {:height 20
|
||||
:bar-style "light-content"
|
||||
:color styles/color-transparent}}
|
||||
|
@ -15,7 +17,8 @@
|
|||
:actions-list-view {:border-bottom-color styles/color-gray3
|
||||
:border-bottom-width 0.5}
|
||||
:chat {:new-message {:border-top-color styles/color-gray3
|
||||
:border-top-width 0.5}}})
|
||||
:border-top-width 0.5}}
|
||||
:bottom-gradient {:height 1}})
|
||||
|
||||
(def fonts
|
||||
{:default {:font-family "SFUIDisplay-Regular"}
|
||||
|
@ -27,7 +30,7 @@
|
|||
(def react-native (u/require "react-native"))
|
||||
|
||||
(defn show-action-sheet [{:keys [options callback cancel-text]}]
|
||||
(.showActionSheetWithOptions (r/adapt-react-class (.-ActionSheetIOS react-native))
|
||||
(.showActionSheetWithOptions (.-ActionSheetIOS react-native)
|
||||
(clj->js {:options (conj options cancel-text)
|
||||
:cancelButtonIndex (count options)})
|
||||
callback))
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
(register-handler :show-profile show-profile)
|
||||
|
||||
(defn show-profile-photo-capture
|
||||
[db [_ image-captured-fn]]
|
||||
[db _]
|
||||
(push-view db :profile-photo-capture))
|
||||
|
||||
(register-handler :show-profile-photo-capture show-profile-photo-capture)
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
(ns status-im.new-group.styles
|
||||
(:require [status-im.components.styles :refer [font
|
||||
title-font
|
||||
color-white
|
||||
color-purple
|
||||
text1-color
|
||||
text2-color
|
||||
toolbar-background1]]))
|
||||
(:require [status-im.components.styles :refer [color-white
|
||||
color-purple
|
||||
text1-color
|
||||
text2-color
|
||||
toolbar-background1]]))
|
||||
|
||||
(defn toolbar-icon [enabled?]
|
||||
{:width 20
|
||||
|
@ -24,14 +22,12 @@
|
|||
{:marginTop 24
|
||||
:marginBottom 16
|
||||
:color text2-color
|
||||
:fontFamily font
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
(def group-name-input
|
||||
{:marginLeft -4
|
||||
:fontSize 14
|
||||
:fontFamily font
|
||||
:color text1-color})
|
||||
|
||||
(def group-name-validation-message
|
||||
|
@ -41,7 +37,6 @@
|
|||
{:marginTop 24
|
||||
:marginBottom 16
|
||||
:color text2-color
|
||||
:fontFamily font
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
|
@ -59,7 +54,6 @@
|
|||
{:marginTop 18
|
||||
:marginLeft 32
|
||||
:color text2-color
|
||||
:fontFamily font
|
||||
:fontSize 14
|
||||
:lineHeight 20})
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
[status-im.utils.image-processing :refer [img->base64]]
|
||||
[status-im.i18n :refer [label]]
|
||||
[status-im.utils.handlers :as u :refer [get-hashtags]]
|
||||
[status-im.utils.platform :refer [ios?]]
|
||||
[clojure.string :as str]))
|
||||
|
||||
(defn message-user [identity]
|
||||
|
@ -36,9 +37,8 @@
|
|||
(fn [_ _]
|
||||
(show-image-picker
|
||||
(fn [image]
|
||||
(let [path (-> (js->clj image)
|
||||
(get "path")
|
||||
(subs 7))
|
||||
(let [path (get (js->clj image) "path")
|
||||
path (if ios? path (subs path 12))
|
||||
on-success (fn [base64]
|
||||
(dispatch [:set-in [:profile-edit :photo-path] (str "data:image/jpeg;base64," base64)]))
|
||||
on-error (fn [type error]
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
(:require [re-frame.core :refer [subscribe dispatch dispatch-sync]]
|
||||
[clojure.walk :refer [keywordize-keys]]
|
||||
[status-im.components.react :refer [view
|
||||
text
|
||||
image
|
||||
touchable-highlight]]
|
||||
[status-im.components.camera :refer [camera
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
(ns status-im.profile.styles
|
||||
(:require [status-im.components.styles :refer [font
|
||||
color-light-blue-transparent
|
||||
(:require [status-im.components.styles :refer [color-light-blue-transparent
|
||||
color-white
|
||||
color-black
|
||||
color-blue
|
||||
|
@ -66,7 +65,9 @@
|
|||
(def status-block
|
||||
{:flex-direction "column"
|
||||
:align-items "center"
|
||||
:justifyContent "center"})
|
||||
:justifyContent "center"
|
||||
:margin-left 100
|
||||
:margin-right 100})
|
||||
|
||||
(def status-input
|
||||
{:align-self "stretch"
|
||||
|
@ -94,7 +95,6 @@
|
|||
(def message-btn-text
|
||||
{:margin-top -2.5
|
||||
:font-size 14
|
||||
:font-family font
|
||||
:color color-white})
|
||||
|
||||
(def more-btn
|
||||
|
@ -144,7 +144,6 @@
|
|||
|
||||
(def report-user-text
|
||||
{:font-size 14
|
||||
:font-family font
|
||||
:line-height 21
|
||||
:color text2-color
|
||||
;; IOS:
|
||||
|
|
|
@ -48,15 +48,15 @@
|
|||
[transaction-page transaction]))]]
|
||||
[view st/form-container
|
||||
[text-field
|
||||
{:inputStyle st/password-style
|
||||
:secureTextEntry true
|
||||
:error (when wrong-password? (label :t/wrong-password))
|
||||
:errorColor :#ffffff80 #_:#7099e6
|
||||
:lineColor :white
|
||||
:labelColor :#ffffff80
|
||||
:value password
|
||||
:label (label :t/password)
|
||||
:onChangeText #(dispatch [:set-in [:confirm-transactions :password] %])}]]])
|
||||
{:input-style st/password-style
|
||||
:secure-text-entry true
|
||||
:error (when wrong-password? (label :t/wrong-password))
|
||||
:error-color :#ffffff80 #_:#7099e6
|
||||
:line-color :white
|
||||
:label-color :#ffffff80
|
||||
:value password
|
||||
:label (label :t/password)
|
||||
:on-change-text #(dispatch [:set-in [:confirm-transactions :password] %])}]]])
|
||||
|
||||
|
||||
;(re-frame.core/dispatch [:set :view-id :confirm])
|
||||
|
|
|
@ -37,8 +37,7 @@
|
|||
:justifyContent :center})
|
||||
|
||||
(def title-bar-text
|
||||
{:fontFamily "sans-serif-medium"
|
||||
:color "#838c93"
|
||||
{:color "#838c93"
|
||||
:fontSize 13
|
||||
:marginLeft 12})
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
(defn img->base64 [path on-success on-error]
|
||||
(let [on-resized (fn [path]
|
||||
(image-base64-encode (subs path 5) on-success on-error))
|
||||
(image-base64-encode path on-success on-error))
|
||||
on-error (fn [error]
|
||||
(on-error :resize error))]
|
||||
(resize path 150 150 on-resized on-error)))
|
|
@ -1,8 +1,6 @@
|
|||
(ns status-im.utils.utils
|
||||
(:require-macros
|
||||
[natal-shell.async-storage :refer [get-item set-item]]
|
||||
[natal-shell.alert :refer [alert]]
|
||||
[natal-shell.toast-android :as toast])
|
||||
[natal-shell.async-storage :refer [get-item set-item]])
|
||||
(:require [status-im.constants :as const]))
|
||||
|
||||
(defn require [module]
|
||||
|
@ -13,11 +11,12 @@
|
|||
(defn log [obj]
|
||||
(.log js/console obj))
|
||||
|
||||
(defn toast [s]
|
||||
(toast/show s (toast/long)))
|
||||
(def react-native (require "react-native"))
|
||||
|
||||
(defn on-error [error]
|
||||
(toast (str "error: " error)))
|
||||
(defn show-popup [title content]
|
||||
(.alert (.-Alert react-native)
|
||||
title
|
||||
content))
|
||||
|
||||
(defn http-post
|
||||
([action data on-success]
|
||||
|
@ -38,7 +37,7 @@
|
|||
(on-success obj))))
|
||||
(.catch (or on-error
|
||||
(fn [error]
|
||||
(toast (str error))))))))
|
||||
(show-popup "Error" (str error))))))))
|
||||
|
||||
(defn http-get
|
||||
([url on-success on-error]
|
||||
|
@ -49,7 +48,7 @@
|
|||
(.then on-success)
|
||||
(.catch (or on-error
|
||||
(fn [error]
|
||||
(toast (str error))))))))
|
||||
(show-popup "Error" (str error))))))))
|
||||
|
||||
(defn truncate-str [s max]
|
||||
(if (and (< max (count s)) s)
|
||||
|
|
Loading…
Reference in New Issue