├── .flowconfig
├── .gitignore
├── Hypertext.ios.js
├── README.md
├── iOS
├── AppDelegate.h
├── AppDelegate.m
├── Base.lproj
│ └── LaunchScreen.xib
├── Images.xcassets
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Info.plist
├── main.jsbundle
└── main.m
├── index.ios.js
├── package.json
├── reactNativeHypertext.xcodeproj
├── project.pbxproj
└── xcshareddata
│ └── xcschemes
│ └── reactNativeHypertext.xcscheme
├── screenshot.png
└── splitHypertext.js
/.flowconfig:
--------------------------------------------------------------------------------
1 | [ignore]
2 |
3 | # We fork some components by platform.
4 | .*/*.web.js
5 | .*/*.android.js
6 |
7 | # Some modules have their own node_modules with overlap
8 | .*/node_modules/node-haste/.*
9 |
10 | # Ignore react-tools where there are overlaps, but don't ignore anything that
11 | # react-native relies on
12 | .*/node_modules/react-tools/src/vendor/core/ExecutionEnvironment.js
13 | .*/node_modules/react-tools/src/browser/eventPlugins/ResponderEventPlugin.js
14 | .*/node_modules/react-tools/src/browser/ui/React.js
15 | .*/node_modules/react-tools/src/core/ReactInstanceHandles.js
16 | .*/node_modules/react-tools/src/event/EventPropagators.js
17 |
18 | # Ignore jest
19 | .*/react-native/node_modules/jest-cli/.*
20 |
21 | [include]
22 |
23 | [libs]
24 | node_modules/react-native/Libraries/react-native/react-native-interface.js
25 |
26 | [options]
27 | module.system=haste
28 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 | project.xcworkspace
24 |
25 | # node.js
26 | #
27 | node_modules/
28 | npm-debug.log
29 |
--------------------------------------------------------------------------------
/Hypertext.ios.js:
--------------------------------------------------------------------------------
1 | var React = require('react-native');
2 |
3 | var {
4 | Text,
5 | StyleSheet,
6 | LinkingIOS
7 | } = React;
8 |
9 | var styles = StyleSheet.create({
10 | link: {
11 | color: '#0000ff',
12 | flexWrap: 'wrap',
13 | fontWeight: 'bold'
14 | },
15 | text: {
16 | },
17 | container: {
18 | width: 300
19 | }
20 | });
21 |
22 | var splitHypertext = require('./splitHypertext');
23 | var randomKeyGen = function() { return Math.random().toString(36).substring(7); };
24 |
25 | var Hypertext = React.createClass({
26 | onPress: function(href) {
27 | if (typeof this.props.onLinkClick === 'function') {
28 | this.props.onLinkClick.apply(this, arguments);
29 | } else if (href) {
30 | LinkingIOS.openURL(href);
31 | }
32 | },
33 |
34 | splitHypertext: splitHypertext,
35 |
36 | render: function() {
37 | var children = this.splitHypertext({
38 | input: this.props.children,
39 |
40 | onLink: function(text, href) {
41 | return {text};
44 | },
45 |
46 | onText: function(text) {
47 | return {text};
48 | }
49 | });
50 |
51 | return (
52 | {children}
53 | )
54 | }
55 | });
56 |
57 | module.exports = Hypertext;
58 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### React Native Hypertext
2 |
3 | ```
4 | npm install react-native-hypertext
5 | ```
6 |
7 | Render clickable links with React Native.
8 |
9 | ```jsx
10 | var Hypertext = require('react-native-hypertext');
11 |
12 |
13 | {'Hypertext is text which contains links to other texts.'}
14 |
15 | ```
16 |
17 |
18 |
--------------------------------------------------------------------------------
/iOS/AppDelegate.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 |
12 | @interface AppDelegate : UIResponder
13 |
14 | @property (nonatomic, strong) UIWindow *window;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/iOS/AppDelegate.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import "AppDelegate.h"
11 |
12 | #import "RCTRootView.h"
13 |
14 | @implementation AppDelegate
15 |
16 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
17 | {
18 | NSURL *jsCodeLocation;
19 |
20 | // Loading JavaScript code - uncomment the one you want.
21 |
22 | // OPTION 1
23 | // Load from development server. Start the server from the repository root:
24 | //
25 | // $ npm start
26 | //
27 | // To run on device, change `localhost` to the IP address of your computer, and make sure your computer and
28 | // iOS device are on the same Wi-Fi network.
29 | jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];
30 |
31 | // OPTION 2
32 | // Load from pre-bundled file on disk. To re-generate the static bundle, run
33 | //
34 | // $ curl 'http://localhost:8081/index.ios.bundle?dev=false&minify=true' -o iOS/main.jsbundle
35 | //
36 | // and uncomment the next following line
37 | // jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
38 |
39 | RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
40 | moduleName:@"reactNativeHypertext"
41 | launchOptions:launchOptions];
42 |
43 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
44 | UIViewController *rootViewController = [[UIViewController alloc] init];
45 | rootViewController.view = rootView;
46 | self.window.rootViewController = rootViewController;
47 | [self.window makeKeyAndVisible];
48 | return YES;
49 | }
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/iOS/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
21 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/iOS/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UIViewControllerBasedStatusBarAppearance
38 |
39 | NSLocationWhenInUseUsageDescription
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/iOS/main.jsbundle:
--------------------------------------------------------------------------------
1 | // Offline JS
2 | // To re-generate the offline bundle, run this from root of your project
3 | // $ curl 'http://localhost:8081/index.ios.bundle?dev=false&minify=true' -o iOS/main.jsbundle
4 |
5 | throw new Error('Offline JS file is empty. See iOS/main.jsbundle for instructions');
6 |
--------------------------------------------------------------------------------
/iOS/main.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 |
12 | #import "AppDelegate.h"
13 |
14 | int main(int argc, char * argv[]) {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/index.ios.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var React = require('react-native');
4 | var {
5 | AppRegistry,
6 | StyleSheet,
7 | Text,
8 | View,
9 | } = React;
10 |
11 | var Hypertext = require('./Hypertext.ios');
12 |
13 | var reactNativeHypertext = React.createClass({
14 | render: function() {
15 | return (
16 |
17 |
18 | {'Hypertext is text which contains links to other texts.'}
19 |
20 |
21 | );
22 | }
23 | });
24 |
25 | var styles = StyleSheet.create({
26 | container: {
27 | flex: 1,
28 | justifyContent: 'center',
29 | alignItems: 'center',
30 | backgroundColor: '#F5FCFF',
31 | },
32 | welcome: {
33 | fontSize: 20,
34 | textAlign: 'center',
35 | margin: 10,
36 | },
37 | instructions: {
38 | textAlign: 'center',
39 | color: '#333333',
40 | marginBottom: 5,
41 | },
42 | });
43 |
44 | AppRegistry.registerComponent('reactNativeHypertext', () => reactNativeHypertext);
45 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-native-hypertext",
3 | "description": "React Native module to render hypertext (text with links)",
4 | "version": "0.0.3",
5 | "author": "Artem Tyurin (http://github.com/agentcooper)",
6 | "main": "Hypertext.ios.js",
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "dependencies": {
11 | "react-native": ">=0.19"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "git@github.com:agentcooper/react-native-hypertext.git"
16 | },
17 | "keywords": ["react", "native", "hypertext", "html", "links"]
18 | }
19 |
--------------------------------------------------------------------------------
/reactNativeHypertext.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 00481BE81AC0C86700671115 /* libRCTWebSocketDebugger.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00481BE61AC0C7FA00671115 /* libRCTWebSocketDebugger.a */; };
11 | 008F07F31AC5B25A0029DE68 /* main.jsbundle in Resources */ = {isa = PBXBuildFile; fileRef = 008F07F21AC5B25A0029DE68 /* main.jsbundle */; };
12 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
13 | 00C302E61ABCBA2D00DB3ED1 /* libRCTAdSupport.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302B41ABCB8E700DB3ED1 /* libRCTAdSupport.a */; };
14 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
15 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; };
16 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; };
17 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
18 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
19 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
20 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
21 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
22 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
23 | 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
24 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
25 | /* End PBXBuildFile section */
26 |
27 | /* Begin PBXContainerItemProxy section */
28 | 00481BE51AC0C7FA00671115 /* PBXContainerItemProxy */ = {
29 | isa = PBXContainerItemProxy;
30 | containerPortal = 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */;
31 | proxyType = 2;
32 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7;
33 | remoteInfo = RCTWebSocketDebugger;
34 | };
35 | 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = {
36 | isa = PBXContainerItemProxy;
37 | containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
38 | proxyType = 2;
39 | remoteGlobalIDString = 134814201AA4EA6300B7C361;
40 | remoteInfo = RCTActionSheet;
41 | };
42 | 00C302B31ABCB8E700DB3ED1 /* PBXContainerItemProxy */ = {
43 | isa = PBXContainerItemProxy;
44 | containerPortal = 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */;
45 | proxyType = 2;
46 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7;
47 | remoteInfo = RCTAdSupport;
48 | };
49 | 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = {
50 | isa = PBXContainerItemProxy;
51 | containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */;
52 | proxyType = 2;
53 | remoteGlobalIDString = 134814201AA4EA6300B7C361;
54 | remoteInfo = RCTGeolocation;
55 | };
56 | 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = {
57 | isa = PBXContainerItemProxy;
58 | containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
59 | proxyType = 2;
60 | remoteGlobalIDString = 58B5115D1A9E6B3D00147676;
61 | remoteInfo = RCTImage;
62 | };
63 | 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = {
64 | isa = PBXContainerItemProxy;
65 | containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */;
66 | proxyType = 2;
67 | remoteGlobalIDString = 58B511DB1A9E6C8500147676;
68 | remoteInfo = RCTNetwork;
69 | };
70 | 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = {
71 | isa = PBXContainerItemProxy;
72 | containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */;
73 | proxyType = 2;
74 | remoteGlobalIDString = 832C81801AAF6DEF007FA2F7;
75 | remoteInfo = RCTVibration;
76 | };
77 | 146834031AC3E56700842450 /* PBXContainerItemProxy */ = {
78 | isa = PBXContainerItemProxy;
79 | containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */;
80 | proxyType = 2;
81 | remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192;
82 | remoteInfo = React;
83 | };
84 | 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = {
85 | isa = PBXContainerItemProxy;
86 | containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
87 | proxyType = 2;
88 | remoteGlobalIDString = 134814201AA4EA6300B7C361;
89 | remoteInfo = RCTLinking;
90 | };
91 | 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = {
92 | isa = PBXContainerItemProxy;
93 | containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */;
94 | proxyType = 2;
95 | remoteGlobalIDString = 58B5119B1A9E6C1200147676;
96 | remoteInfo = RCTText;
97 | };
98 | /* End PBXContainerItemProxy section */
99 |
100 | /* Begin PBXFileReference section */
101 | 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocketDebugger.xcodeproj; path = "node_modules/react-native/Libraries/RCTWebSocketDebugger/RCTWebSocketDebugger.xcodeproj"; sourceTree = ""; };
102 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = main.jsbundle; path = iOS/main.jsbundle; sourceTree = ""; };
103 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; };
104 | 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAdSupport.xcodeproj; path = "node_modules/react-native/Libraries/AdSupport/RCTAdSupport.xcodeproj"; sourceTree = ""; };
105 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; };
106 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; };
107 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; };
108 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; };
109 | 13B07F961A680F5B00A75B9A /* reactNativeHypertext.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = reactNativeHypertext.app; sourceTree = BUILT_PRODUCTS_DIR; };
110 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = iOS/AppDelegate.h; sourceTree = ""; };
111 | 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = iOS/AppDelegate.m; sourceTree = ""; };
112 | 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; };
113 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = iOS/Images.xcassets; sourceTree = ""; };
114 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = iOS/Info.plist; sourceTree = ""; };
115 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = iOS/main.m; sourceTree = ""; };
116 | 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; };
117 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; };
118 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; };
119 | /* End PBXFileReference section */
120 |
121 | /* Begin PBXFrameworksBuildPhase section */
122 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
123 | isa = PBXFrameworksBuildPhase;
124 | buildActionMask = 2147483647;
125 | files = (
126 | 146834051AC3E58100842450 /* libReact.a in Frameworks */,
127 | 00481BE81AC0C86700671115 /* libRCTWebSocketDebugger.a in Frameworks */,
128 | 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
129 | 00C302E61ABCBA2D00DB3ED1 /* libRCTAdSupport.a in Frameworks */,
130 | 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */,
131 | 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */,
132 | 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */,
133 | 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */,
134 | 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
135 | 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
136 | );
137 | runOnlyForDeploymentPostprocessing = 0;
138 | };
139 | /* End PBXFrameworksBuildPhase section */
140 |
141 | /* Begin PBXGroup section */
142 | 00481BDC1AC0C7FA00671115 /* Products */ = {
143 | isa = PBXGroup;
144 | children = (
145 | 00481BE61AC0C7FA00671115 /* libRCTWebSocketDebugger.a */,
146 | );
147 | name = Products;
148 | sourceTree = "";
149 | };
150 | 00C302A81ABCB8CE00DB3ED1 /* Products */ = {
151 | isa = PBXGroup;
152 | children = (
153 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */,
154 | );
155 | name = Products;
156 | sourceTree = "";
157 | };
158 | 00C302B01ABCB8E700DB3ED1 /* Products */ = {
159 | isa = PBXGroup;
160 | children = (
161 | 00C302B41ABCB8E700DB3ED1 /* libRCTAdSupport.a */,
162 | );
163 | name = Products;
164 | sourceTree = "";
165 | };
166 | 00C302B61ABCB90400DB3ED1 /* Products */ = {
167 | isa = PBXGroup;
168 | children = (
169 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */,
170 | );
171 | name = Products;
172 | sourceTree = "";
173 | };
174 | 00C302BC1ABCB91800DB3ED1 /* Products */ = {
175 | isa = PBXGroup;
176 | children = (
177 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */,
178 | );
179 | name = Products;
180 | sourceTree = "";
181 | };
182 | 00C302D41ABCB9D200DB3ED1 /* Products */ = {
183 | isa = PBXGroup;
184 | children = (
185 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */,
186 | );
187 | name = Products;
188 | sourceTree = "";
189 | };
190 | 00C302E01ABCB9EE00DB3ED1 /* Products */ = {
191 | isa = PBXGroup;
192 | children = (
193 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */,
194 | );
195 | name = Products;
196 | sourceTree = "";
197 | };
198 | 13B07FAE1A68108700A75B9A /* reactNativeHypertext */ = {
199 | isa = PBXGroup;
200 | children = (
201 | 008F07F21AC5B25A0029DE68 /* main.jsbundle */,
202 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
203 | 13B07FB01A68108700A75B9A /* AppDelegate.m */,
204 | 13B07FB51A68108700A75B9A /* Images.xcassets */,
205 | 13B07FB61A68108700A75B9A /* Info.plist */,
206 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */,
207 | 13B07FB71A68108700A75B9A /* main.m */,
208 | );
209 | name = reactNativeHypertext;
210 | sourceTree = "";
211 | };
212 | 146834001AC3E56700842450 /* Products */ = {
213 | isa = PBXGroup;
214 | children = (
215 | 146834041AC3E56700842450 /* libReact.a */,
216 | );
217 | name = Products;
218 | sourceTree = "";
219 | };
220 | 78C398B11ACF4ADC00677621 /* Products */ = {
221 | isa = PBXGroup;
222 | children = (
223 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */,
224 | );
225 | name = Products;
226 | sourceTree = "";
227 | };
228 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
229 | isa = PBXGroup;
230 | children = (
231 | 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */,
232 | 146833FF1AC3E56700842450 /* React.xcodeproj */,
233 | 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
234 | 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
235 | 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */,
236 | 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */,
237 | 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */,
238 | 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */,
239 | 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
240 | 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */,
241 | );
242 | name = Libraries;
243 | sourceTree = "";
244 | };
245 | 832341B11AAA6A8300B99B32 /* Products */ = {
246 | isa = PBXGroup;
247 | children = (
248 | 832341B51AAA6A8300B99B32 /* libRCTText.a */,
249 | );
250 | name = Products;
251 | sourceTree = "";
252 | };
253 | 83CBB9F61A601CBA00E9B192 = {
254 | isa = PBXGroup;
255 | children = (
256 | 13B07FAE1A68108700A75B9A /* reactNativeHypertext */,
257 | 832341AE1AAA6A7D00B99B32 /* Libraries */,
258 | 83CBBA001A601CBA00E9B192 /* Products */,
259 | );
260 | indentWidth = 2;
261 | sourceTree = "";
262 | tabWidth = 2;
263 | };
264 | 83CBBA001A601CBA00E9B192 /* Products */ = {
265 | isa = PBXGroup;
266 | children = (
267 | 13B07F961A680F5B00A75B9A /* reactNativeHypertext.app */,
268 | );
269 | name = Products;
270 | sourceTree = "";
271 | };
272 | /* End PBXGroup section */
273 |
274 | /* Begin PBXNativeTarget section */
275 | 13B07F861A680F5B00A75B9A /* reactNativeHypertext */ = {
276 | isa = PBXNativeTarget;
277 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "reactNativeHypertext" */;
278 | buildPhases = (
279 | 13B07F871A680F5B00A75B9A /* Sources */,
280 | 13B07F8C1A680F5B00A75B9A /* Frameworks */,
281 | 13B07F8E1A680F5B00A75B9A /* Resources */,
282 | );
283 | buildRules = (
284 | );
285 | dependencies = (
286 | );
287 | name = reactNativeHypertext;
288 | productName = "Hello World";
289 | productReference = 13B07F961A680F5B00A75B9A /* reactNativeHypertext.app */;
290 | productType = "com.apple.product-type.application";
291 | };
292 | /* End PBXNativeTarget section */
293 |
294 | /* Begin PBXProject section */
295 | 83CBB9F71A601CBA00E9B192 /* Project object */ = {
296 | isa = PBXProject;
297 | attributes = {
298 | LastUpgradeCheck = 0610;
299 | ORGANIZATIONNAME = Facebook;
300 | };
301 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "reactNativeHypertext" */;
302 | compatibilityVersion = "Xcode 3.2";
303 | developmentRegion = English;
304 | hasScannedForEncodings = 0;
305 | knownRegions = (
306 | en,
307 | Base,
308 | );
309 | mainGroup = 83CBB9F61A601CBA00E9B192;
310 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
311 | projectDirPath = "";
312 | projectReferences = (
313 | {
314 | ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */;
315 | ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
316 | },
317 | {
318 | ProductGroup = 00C302B01ABCB8E700DB3ED1 /* Products */;
319 | ProjectRef = 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */;
320 | },
321 | {
322 | ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */;
323 | ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */;
324 | },
325 | {
326 | ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */;
327 | ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */;
328 | },
329 | {
330 | ProductGroup = 78C398B11ACF4ADC00677621 /* Products */;
331 | ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
332 | },
333 | {
334 | ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */;
335 | ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */;
336 | },
337 | {
338 | ProductGroup = 832341B11AAA6A8300B99B32 /* Products */;
339 | ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */;
340 | },
341 | {
342 | ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */;
343 | ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */;
344 | },
345 | {
346 | ProductGroup = 00481BDC1AC0C7FA00671115 /* Products */;
347 | ProjectRef = 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */;
348 | },
349 | {
350 | ProductGroup = 146834001AC3E56700842450 /* Products */;
351 | ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
352 | },
353 | );
354 | projectRoot = "";
355 | targets = (
356 | 13B07F861A680F5B00A75B9A /* reactNativeHypertext */,
357 | );
358 | };
359 | /* End PBXProject section */
360 |
361 | /* Begin PBXReferenceProxy section */
362 | 00481BE61AC0C7FA00671115 /* libRCTWebSocketDebugger.a */ = {
363 | isa = PBXReferenceProxy;
364 | fileType = archive.ar;
365 | path = libRCTWebSocketDebugger.a;
366 | remoteRef = 00481BE51AC0C7FA00671115 /* PBXContainerItemProxy */;
367 | sourceTree = BUILT_PRODUCTS_DIR;
368 | };
369 | 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = {
370 | isa = PBXReferenceProxy;
371 | fileType = archive.ar;
372 | path = libRCTActionSheet.a;
373 | remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */;
374 | sourceTree = BUILT_PRODUCTS_DIR;
375 | };
376 | 00C302B41ABCB8E700DB3ED1 /* libRCTAdSupport.a */ = {
377 | isa = PBXReferenceProxy;
378 | fileType = archive.ar;
379 | path = libRCTAdSupport.a;
380 | remoteRef = 00C302B31ABCB8E700DB3ED1 /* PBXContainerItemProxy */;
381 | sourceTree = BUILT_PRODUCTS_DIR;
382 | };
383 | 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = {
384 | isa = PBXReferenceProxy;
385 | fileType = archive.ar;
386 | path = libRCTGeolocation.a;
387 | remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */;
388 | sourceTree = BUILT_PRODUCTS_DIR;
389 | };
390 | 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = {
391 | isa = PBXReferenceProxy;
392 | fileType = archive.ar;
393 | path = libRCTImage.a;
394 | remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */;
395 | sourceTree = BUILT_PRODUCTS_DIR;
396 | };
397 | 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = {
398 | isa = PBXReferenceProxy;
399 | fileType = archive.ar;
400 | path = libRCTNetwork.a;
401 | remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */;
402 | sourceTree = BUILT_PRODUCTS_DIR;
403 | };
404 | 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = {
405 | isa = PBXReferenceProxy;
406 | fileType = archive.ar;
407 | path = libRCTVibration.a;
408 | remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */;
409 | sourceTree = BUILT_PRODUCTS_DIR;
410 | };
411 | 146834041AC3E56700842450 /* libReact.a */ = {
412 | isa = PBXReferenceProxy;
413 | fileType = archive.ar;
414 | path = libReact.a;
415 | remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */;
416 | sourceTree = BUILT_PRODUCTS_DIR;
417 | };
418 | 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = {
419 | isa = PBXReferenceProxy;
420 | fileType = archive.ar;
421 | path = libRCTLinking.a;
422 | remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */;
423 | sourceTree = BUILT_PRODUCTS_DIR;
424 | };
425 | 832341B51AAA6A8300B99B32 /* libRCTText.a */ = {
426 | isa = PBXReferenceProxy;
427 | fileType = archive.ar;
428 | path = libRCTText.a;
429 | remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */;
430 | sourceTree = BUILT_PRODUCTS_DIR;
431 | };
432 | /* End PBXReferenceProxy section */
433 |
434 | /* Begin PBXResourcesBuildPhase section */
435 | 13B07F8E1A680F5B00A75B9A /* Resources */ = {
436 | isa = PBXResourcesBuildPhase;
437 | buildActionMask = 2147483647;
438 | files = (
439 | 008F07F31AC5B25A0029DE68 /* main.jsbundle in Resources */,
440 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
441 | 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
442 | );
443 | runOnlyForDeploymentPostprocessing = 0;
444 | };
445 | /* End PBXResourcesBuildPhase section */
446 |
447 | /* Begin PBXSourcesBuildPhase section */
448 | 13B07F871A680F5B00A75B9A /* Sources */ = {
449 | isa = PBXSourcesBuildPhase;
450 | buildActionMask = 2147483647;
451 | files = (
452 | 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
453 | 13B07FC11A68108700A75B9A /* main.m in Sources */,
454 | );
455 | runOnlyForDeploymentPostprocessing = 0;
456 | };
457 | /* End PBXSourcesBuildPhase section */
458 |
459 | /* Begin PBXVariantGroup section */
460 | 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = {
461 | isa = PBXVariantGroup;
462 | children = (
463 | 13B07FB21A68108700A75B9A /* Base */,
464 | );
465 | name = LaunchScreen.xib;
466 | path = iOS;
467 | sourceTree = "";
468 | };
469 | /* End PBXVariantGroup section */
470 |
471 | /* Begin XCBuildConfiguration section */
472 | 13B07F941A680F5B00A75B9A /* Debug */ = {
473 | isa = XCBuildConfiguration;
474 | buildSettings = {
475 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
476 | HEADER_SEARCH_PATHS = (
477 | "$(inherited)",
478 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
479 | "$(SRCROOT)/node_modules/react-native/React/**",
480 | );
481 | INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
482 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
483 | OTHER_LDFLAGS = "-ObjC";
484 | PRODUCT_NAME = reactNativeHypertext;
485 | };
486 | name = Debug;
487 | };
488 | 13B07F951A680F5B00A75B9A /* Release */ = {
489 | isa = XCBuildConfiguration;
490 | buildSettings = {
491 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
492 | HEADER_SEARCH_PATHS = (
493 | "$(inherited)",
494 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
495 | "$(SRCROOT)/node_modules/react-native/React/**",
496 | );
497 | INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
498 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
499 | OTHER_LDFLAGS = "-ObjC";
500 | PRODUCT_NAME = reactNativeHypertext;
501 | };
502 | name = Release;
503 | };
504 | 83CBBA201A601CBA00E9B192 /* Debug */ = {
505 | isa = XCBuildConfiguration;
506 | buildSettings = {
507 | ALWAYS_SEARCH_USER_PATHS = NO;
508 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
509 | CLANG_CXX_LIBRARY = "libc++";
510 | CLANG_ENABLE_MODULES = YES;
511 | CLANG_ENABLE_OBJC_ARC = YES;
512 | CLANG_WARN_BOOL_CONVERSION = YES;
513 | CLANG_WARN_CONSTANT_CONVERSION = YES;
514 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
515 | CLANG_WARN_EMPTY_BODY = YES;
516 | CLANG_WARN_ENUM_CONVERSION = YES;
517 | CLANG_WARN_INT_CONVERSION = YES;
518 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
519 | CLANG_WARN_UNREACHABLE_CODE = YES;
520 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
521 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
522 | COPY_PHASE_STRIP = NO;
523 | ENABLE_STRICT_OBJC_MSGSEND = YES;
524 | GCC_C_LANGUAGE_STANDARD = gnu99;
525 | GCC_DYNAMIC_NO_PIC = NO;
526 | GCC_OPTIMIZATION_LEVEL = 0;
527 | GCC_PREPROCESSOR_DEFINITIONS = (
528 | "DEBUG=1",
529 | "$(inherited)",
530 | );
531 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
532 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
533 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
534 | GCC_WARN_UNDECLARED_SELECTOR = YES;
535 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
536 | GCC_WARN_UNUSED_FUNCTION = YES;
537 | GCC_WARN_UNUSED_VARIABLE = YES;
538 | HEADER_SEARCH_PATHS = (
539 | "$(inherited)",
540 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
541 | "$(SRCROOT)/node_modules/react-native/React/**",
542 | );
543 | IPHONEOS_DEPLOYMENT_TARGET = 7.0;
544 | MTL_ENABLE_DEBUG_INFO = YES;
545 | ONLY_ACTIVE_ARCH = YES;
546 | SDKROOT = iphoneos;
547 | };
548 | name = Debug;
549 | };
550 | 83CBBA211A601CBA00E9B192 /* Release */ = {
551 | isa = XCBuildConfiguration;
552 | buildSettings = {
553 | ALWAYS_SEARCH_USER_PATHS = NO;
554 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
555 | CLANG_CXX_LIBRARY = "libc++";
556 | CLANG_ENABLE_MODULES = YES;
557 | CLANG_ENABLE_OBJC_ARC = YES;
558 | CLANG_WARN_BOOL_CONVERSION = YES;
559 | CLANG_WARN_CONSTANT_CONVERSION = YES;
560 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
561 | CLANG_WARN_EMPTY_BODY = YES;
562 | CLANG_WARN_ENUM_CONVERSION = YES;
563 | CLANG_WARN_INT_CONVERSION = YES;
564 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
565 | CLANG_WARN_UNREACHABLE_CODE = YES;
566 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
567 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
568 | COPY_PHASE_STRIP = YES;
569 | ENABLE_NS_ASSERTIONS = NO;
570 | ENABLE_STRICT_OBJC_MSGSEND = YES;
571 | GCC_C_LANGUAGE_STANDARD = gnu99;
572 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
573 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
574 | GCC_WARN_UNDECLARED_SELECTOR = YES;
575 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
576 | GCC_WARN_UNUSED_FUNCTION = YES;
577 | GCC_WARN_UNUSED_VARIABLE = YES;
578 | HEADER_SEARCH_PATHS = (
579 | "$(inherited)",
580 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
581 | "$(SRCROOT)/node_modules/react-native/React/**",
582 | );
583 | IPHONEOS_DEPLOYMENT_TARGET = 7.0;
584 | MTL_ENABLE_DEBUG_INFO = NO;
585 | SDKROOT = iphoneos;
586 | VALIDATE_PRODUCT = YES;
587 | };
588 | name = Release;
589 | };
590 | /* End XCBuildConfiguration section */
591 |
592 | /* Begin XCConfigurationList section */
593 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "reactNativeHypertext" */ = {
594 | isa = XCConfigurationList;
595 | buildConfigurations = (
596 | 13B07F941A680F5B00A75B9A /* Debug */,
597 | 13B07F951A680F5B00A75B9A /* Release */,
598 | );
599 | defaultConfigurationIsVisible = 0;
600 | defaultConfigurationName = Release;
601 | };
602 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "reactNativeHypertext" */ = {
603 | isa = XCConfigurationList;
604 | buildConfigurations = (
605 | 83CBBA201A601CBA00E9B192 /* Debug */,
606 | 83CBBA211A601CBA00E9B192 /* Release */,
607 | );
608 | defaultConfigurationIsVisible = 0;
609 | defaultConfigurationName = Release;
610 | };
611 | /* End XCConfigurationList section */
612 | };
613 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
614 | }
615 |
--------------------------------------------------------------------------------
/reactNativeHypertext.xcodeproj/xcshareddata/xcschemes/reactNativeHypertext.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
38 |
39 |
44 |
45 |
46 |
47 |
53 |
54 |
55 |
56 |
65 |
67 |
73 |
74 |
75 |
76 |
77 |
78 |
84 |
86 |
92 |
93 |
94 |
95 |
97 |
98 |
101 |
102 |
103 |
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agentcooper/react-native-hypertext/5c98ca189a36135b8ce0c631dd79d9e7c85e547d/screenshot.png
--------------------------------------------------------------------------------
/splitHypertext.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | function splitHypertext(params) {
4 | var htmlTagRegex =/(<[^>]*>)/g;
5 |
6 | var that = this;
7 |
8 | var split = params.input.split(htmlTagRegex).filter(function(s) {
9 | return s.length > 0;
10 | });
11 |
12 | return split.reduce(function(res, _, index, arr) {
13 | if (arr[index].indexOf('') !== -1) {
14 | var href = arr[index].match(/href="([^\'\"]+)/)[1];
15 |
16 | res.push(
17 | params.onLink.call(that, arr[index + 1], href)
18 | );
19 | arr.splice(index, 2);
20 | } else {
21 | res.push(
22 | params.onText.call(that, arr[index])
23 | );
24 | }
25 | return res;
26 | }, []);
27 | }
28 |
29 | module.exports = splitHypertext;
30 |
--------------------------------------------------------------------------------