From 88614aac06bb1d256195e99223de566373839ba1 Mon Sep 17 00:00:00 2001 From: Peter Cottle Date: Sun, 12 Apr 2015 18:48:35 -0700 Subject: [PATCH] BOOM Initial React Native import and setup --- AwesomeProject.xcodeproj/project.pbxproj | 614 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/AwesomeProject.xccheckout | 41 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 13873 bytes .../xcschemes/AwesomeProject.xcscheme | 88 +++ .../xcschemes/xcschememanagement.plist | 22 + Gruntfile.js | 6 +- iOS/AppDelegate.h | 16 + iOS/AppDelegate.m | 51 ++ iOS/Base.lproj/LaunchScreen.xib | 42 ++ .../AppIcon.appiconset/Contents.json | 38 ++ iOS/Info.plist | 42 ++ iOS/main.jsbundle | 5 + iOS/main.m | 18 + package.json | 4 + src/js/constants/AppConstants.js | 2 +- src/js/native/index.ios.js | 86 +++ src/js/stores/LevelStore.js | 3 +- src/js/util/keyMirror.js | 18 + 19 files changed, 1099 insertions(+), 4 deletions(-) create mode 100644 AwesomeProject.xcodeproj/project.pbxproj create mode 100644 AwesomeProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 AwesomeProject.xcodeproj/project.xcworkspace/xcshareddata/AwesomeProject.xccheckout create mode 100644 AwesomeProject.xcodeproj/project.xcworkspace/xcuserdata/pcottle.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme create mode 100644 AwesomeProject.xcodeproj/xcuserdata/pcottle.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 iOS/AppDelegate.h create mode 100644 iOS/AppDelegate.m create mode 100644 iOS/Base.lproj/LaunchScreen.xib create mode 100644 iOS/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 iOS/Info.plist create mode 100644 iOS/main.jsbundle create mode 100644 iOS/main.m create mode 100755 src/js/native/index.ios.js create mode 100644 src/js/util/keyMirror.js diff --git a/AwesomeProject.xcodeproj/project.pbxproj b/AwesomeProject.xcodeproj/project.pbxproj new file mode 100644 index 00000000..c12bb2e9 --- /dev/null +++ b/AwesomeProject.xcodeproj/project.pbxproj @@ -0,0 +1,614 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 00481BE81AC0C86700671115 /* libRCTWebSocketDebugger.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00481BE61AC0C7FA00671115 /* libRCTWebSocketDebugger.a */; }; + 008F07F31AC5B25A0029DE68 /* main.jsbundle in Resources */ = {isa = PBXBuildFile; fileRef = 008F07F21AC5B25A0029DE68 /* main.jsbundle */; }; + 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; + 00C302E61ABCBA2D00DB3ED1 /* libRCTAdSupport.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302B41ABCB8E700DB3ED1 /* libRCTAdSupport.a */; }; + 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; + 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; + 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; + 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; + 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; + 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 00481BE51AC0C7FA00671115 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; + remoteInfo = RCTWebSocketDebugger; + }; + 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTActionSheet; + }; + 00C302B31ABCB8E700DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; + remoteInfo = RCTAdSupport; + }; + 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTGeolocation; + }; + 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58B5115D1A9E6B3D00147676; + remoteInfo = RCTImage; + }; + 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58B511DB1A9E6C8500147676; + remoteInfo = RCTNetwork; + }; + 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; + remoteInfo = RCTVibration; + }; + 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; + remoteInfo = React; + }; + 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTLinking; + }; + 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 58B5119B1A9E6C1200147676; + remoteInfo = RCTText; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocketDebugger.xcodeproj; path = node_modules/react-native/Libraries/RCTWebSocketDebugger/RCTWebSocketDebugger.xcodeproj; sourceTree = ""; }; + 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = main.jsbundle; path = iOS/main.jsbundle; sourceTree = ""; }; + 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj; sourceTree = ""; }; + 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAdSupport.xcodeproj; path = node_modules/react-native/Libraries/AdSupport/RCTAdSupport.xcodeproj; sourceTree = ""; }; + 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj; sourceTree = ""; }; + 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = node_modules/react-native/Libraries/Image/RCTImage.xcodeproj; sourceTree = ""; }; + 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj; sourceTree = ""; }; + 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* AwesomeProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AwesomeProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = iOS/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = iOS/AppDelegate.m; sourceTree = ""; }; + 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = iOS/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = iOS/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = iOS/main.m; sourceTree = ""; }; + 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = node_modules/react-native/React/React.xcodeproj; sourceTree = ""; }; + 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj; sourceTree = ""; }; + 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = node_modules/react-native/Libraries/Text/RCTText.xcodeproj; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 146834051AC3E58100842450 /* libReact.a in Frameworks */, + 00481BE81AC0C86700671115 /* libRCTWebSocketDebugger.a in Frameworks */, + 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, + 00C302E61ABCBA2D00DB3ED1 /* libRCTAdSupport.a in Frameworks */, + 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, + 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, + 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, + 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, + 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, + 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00481BDC1AC0C7FA00671115 /* Products */ = { + isa = PBXGroup; + children = ( + 00481BE61AC0C7FA00671115 /* libRCTWebSocketDebugger.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302A81ABCB8CE00DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302B01ABCB8E700DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302B41ABCB8E700DB3ED1 /* libRCTAdSupport.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302B61ABCB90400DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302BC1ABCB91800DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302D41ABCB9D200DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, + ); + name = Products; + sourceTree = ""; + }; + 00C302E01ABCB9EE00DB3ED1 /* Products */ = { + isa = PBXGroup; + children = ( + 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, + ); + name = Products; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* AwesomeProject */ = { + isa = PBXGroup; + children = ( + 008F07F21AC5B25A0029DE68 /* main.jsbundle */, + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.m */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, + 13B07FB71A68108700A75B9A /* main.m */, + ); + name = AwesomeProject; + sourceTree = ""; + }; + 146834001AC3E56700842450 /* Products */ = { + isa = PBXGroup; + children = ( + 146834041AC3E56700842450 /* libReact.a */, + ); + name = Products; + sourceTree = ""; + }; + 78C398B11ACF4ADC00677621 /* Products */ = { + isa = PBXGroup; + children = ( + 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, + ); + name = Products; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, + 146833FF1AC3E56700842450 /* React.xcodeproj */, + 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, + 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, + 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */, + 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, + 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, + 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, + 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, + 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */, + ); + name = Libraries; + sourceTree = ""; + }; + 832341B11AAA6A8300B99B32 /* Products */ = { + isa = PBXGroup; + children = ( + 832341B51AAA6A8300B99B32 /* libRCTText.a */, + ); + name = Products; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* AwesomeProject */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 83CBBA001A601CBA00E9B192 /* Products */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* AwesomeProject.app */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 13B07F861A680F5B00A75B9A /* AwesomeProject */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */; + buildPhases = ( + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = AwesomeProject; + productName = "Hello World"; + productReference = 13B07F961A680F5B00A75B9A /* AwesomeProject.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0610; + ORGANIZATIONNAME = Facebook; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; + ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; + }, + { + ProductGroup = 00C302B01ABCB8E700DB3ED1 /* Products */; + ProjectRef = 00C302AF1ABCB8E700DB3ED1 /* RCTAdSupport.xcodeproj */; + }, + { + ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; + ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; + }, + { + ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; + ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; + }, + { + ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; + ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; + }, + { + ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; + ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; + }, + { + ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; + ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; + }, + { + ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; + ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; + }, + { + ProductGroup = 00481BDC1AC0C7FA00671115 /* Products */; + ProjectRef = 00481BDB1AC0C7FA00671115 /* RCTWebSocketDebugger.xcodeproj */; + }, + { + ProductGroup = 146834001AC3E56700842450 /* Products */; + ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* AwesomeProject */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 00481BE61AC0C7FA00671115 /* libRCTWebSocketDebugger.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTWebSocketDebugger.a; + remoteRef = 00481BE51AC0C7FA00671115 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTActionSheet.a; + remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302B41ABCB8E700DB3ED1 /* libRCTAdSupport.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTAdSupport.a; + remoteRef = 00C302B31ABCB8E700DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTGeolocation.a; + remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTImage.a; + remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTNetwork.a; + remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTVibration.a; + remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 146834041AC3E56700842450 /* libReact.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libReact.a; + remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTLinking.a; + remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTText.a; + remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 008F07F31AC5B25A0029DE68 /* main.jsbundle in Resources */, + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { + isa = PBXVariantGroup; + children = ( + 13B07FB21A68108700A75B9A /* Base */, + ); + name = LaunchScreen.xib; + path = iOS; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/node_modules/react-native/React/**", + ); + INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = AwesomeProject; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/node_modules/react-native/React/**", + ); + INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = AwesomeProject; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/node_modules/react-native/React/**", + ); + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/node_modules/react-native/React/**", + ); + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/AwesomeProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AwesomeProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..31b0b238 --- /dev/null +++ b/AwesomeProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/AwesomeProject.xcodeproj/project.xcworkspace/xcshareddata/AwesomeProject.xccheckout b/AwesomeProject.xcodeproj/project.xcworkspace/xcshareddata/AwesomeProject.xccheckout new file mode 100644 index 00000000..901b2003 --- /dev/null +++ b/AwesomeProject.xcodeproj/project.xcworkspace/xcshareddata/AwesomeProject.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + D2E48FE0-2A66-458B-B1A9-E725C36C40DA + IDESourceControlProjectName + AwesomeProject + IDESourceControlProjectOriginsDictionary + + C50C20F7F69B52FBD2FAE44256705EB5D1D75E37 + github.com:pcottle/learnGitBranching.git + + IDESourceControlProjectPath + AwesomeProject.xcodeproj + IDESourceControlProjectRelativeInstallPathDictionary + + C50C20F7F69B52FBD2FAE44256705EB5D1D75E37 + ../.. + + IDESourceControlProjectURL + github.com:pcottle/learnGitBranching.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + C50C20F7F69B52FBD2FAE44256705EB5D1D75E37 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + C50C20F7F69B52FBD2FAE44256705EB5D1D75E37 + IDESourceControlWCCName + learnGitBranching + + + + diff --git a/AwesomeProject.xcodeproj/project.xcworkspace/xcuserdata/pcottle.xcuserdatad/UserInterfaceState.xcuserstate b/AwesomeProject.xcodeproj/project.xcworkspace/xcuserdata/pcottle.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..28b52eba6b76a31a09dd744291bcca30561cce18 GIT binary patch literal 13873 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 literal 0 HcmV?d00001 diff --git a/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme b/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme new file mode 100644 index 00000000..39bc3dee --- /dev/null +++ b/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AwesomeProject.xcodeproj/xcuserdata/pcottle.xcuserdatad/xcschemes/xcschememanagement.plist b/AwesomeProject.xcodeproj/xcuserdata/pcottle.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..d18b8e36 --- /dev/null +++ b/AwesomeProject.xcodeproj/xcuserdata/pcottle.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + AwesomeProject.xcscheme_^#shared#^_ + + orderHint + 0 + + + SuppressBuildableAutocreation + + 13B07F861A680F5B00A75B9A + + primary + + + + + diff --git a/Gruntfile.js b/Gruntfile.js index e4b271a2..1ffec1fc 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -111,6 +111,9 @@ module.exports = function(grunt) { 'src/levels/**/*.js' ], options: { + ignores: [ + 'src/js/**/*.ios.js' + ], curly: true, // sometimes triple equality is just redundant and unnecessary eqeqeq: false, @@ -211,7 +214,8 @@ module.exports = function(grunt) { ignore: [ 'src/__tests__/casperjs/*.js', 'src/js/__tests__/create.js', - 'src/js/__tests__/*.js' + 'src/js/__tests__/*.js', + 'src/js/**/*.ios.js' ] }, dist: { diff --git a/iOS/AppDelegate.h b/iOS/AppDelegate.h new file mode 100644 index 00000000..a9654d5e --- /dev/null +++ b/iOS/AppDelegate.h @@ -0,0 +1,16 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import + +@interface AppDelegate : UIResponder + +@property (nonatomic, strong) UIWindow *window; + +@end diff --git a/iOS/AppDelegate.m b/iOS/AppDelegate.m new file mode 100644 index 00000000..69312fd6 --- /dev/null +++ b/iOS/AppDelegate.m @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import "AppDelegate.h" + +#import "RCTRootView.h" + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + NSURL *jsCodeLocation; + + // Loading JavaScript code - uncomment the one you want. + + // OPTION 1 + // Load from development server. Start the server from the repository root: + // + // $ npm start + // + // To run on device, change `localhost` to the IP address of your computer, and make sure your computer and + // iOS device are on the same Wi-Fi network. + jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/src/js/native/index.ios.bundle"]; + + // OPTION 2 + // Load from pre-bundled file on disk. To re-generate the static bundle, run + // + // $ curl 'http://localhost:8081/index.ios.bundle?dev=false&minify=true' -o iOS/main.jsbundle + // + // and uncomment the next following line + // jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; + + RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation + moduleName:@"AwesomeProject" + launchOptions:launchOptions]; + + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + UIViewController *rootViewController = [[UIViewController alloc] init]; + rootViewController.view = rootView; + self.window.rootViewController = rootViewController; + [self.window makeKeyAndVisible]; + return YES; +} + +@end diff --git a/iOS/Base.lproj/LaunchScreen.xib b/iOS/Base.lproj/LaunchScreen.xib new file mode 100644 index 00000000..50985956 --- /dev/null +++ b/iOS/Base.lproj/LaunchScreen.xib @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iOS/Images.xcassets/AppIcon.appiconset/Contents.json b/iOS/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..118c98f7 --- /dev/null +++ b/iOS/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,38 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/iOS/Info.plist b/iOS/Info.plist new file mode 100644 index 00000000..0a56a6ea --- /dev/null +++ b/iOS/Info.plist @@ -0,0 +1,42 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + NSLocationWhenInUseUsageDescription + + + diff --git a/iOS/main.jsbundle b/iOS/main.jsbundle new file mode 100644 index 00000000..4f50ea33 --- /dev/null +++ b/iOS/main.jsbundle @@ -0,0 +1,5 @@ +// Offline JS +// To re-generate the offline bundle, run this from root of your project +// $ curl 'http://localhost:8081/index.ios.bundle?dev=false&minify=true' -o iOS/main.jsbundle + +throw new Error('Offline JS file is empty. See iOS/main.jsbundle for instructions'); diff --git a/iOS/main.m b/iOS/main.m new file mode 100644 index 00000000..3d767fcb --- /dev/null +++ b/iOS/main.m @@ -0,0 +1,18 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import + +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/package.json b/package.json index a1d312c7..ebf57af9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,9 @@ { "name": "LearnGitBranching", "version": "0.8.0", + "scripts": { + "start": "node_modules/react-native/packager/packager.sh" + }, "repository": { "type": "git", "url": "https://github.com/pcottle/learnGitBranching" @@ -33,6 +36,7 @@ "object-assign": "^2.0.0", "q": "~0.8.11", "react": "^0.13.1", + "react-native": "^0.3.11", "underscore": "~1.4.3" } } diff --git a/src/js/constants/AppConstants.js b/src/js/constants/AppConstants.js index e718137d..393dc556 100644 --- a/src/js/constants/AppConstants.js +++ b/src/js/constants/AppConstants.js @@ -1,6 +1,6 @@ "use strict"; -var keyMirror = require('react/lib/keyMirror'); +var keyMirror = require('../util/keyMirror'); var CHANGE_EVENT = 'change'; diff --git a/src/js/native/index.ios.js b/src/js/native/index.ios.js new file mode 100755 index 00000000..1ee3fce1 --- /dev/null +++ b/src/js/native/index.ios.js @@ -0,0 +1,86 @@ +/** + * Sample React Native App + * https://github.com/facebook/react-native + */ +'use strict'; + +var levels = require('../../levels/index.js'); +var LevelStore = require('../stores/LevelStore.js'); +var levelSequences = require('../../levels').levelSequences; + +var React = require('react-native'); +var { + AppRegistry, + StyleSheet, + Text, + View, +} = React; + +var AwesomeProject = React.createClass({ + render: function() { + return ( + + + Yo Whatup Peter + + {Object.keys(levelSequences).map(function(sequence) { + return ( + + + {sequence} + + + ); + })} + + To get started, edit index.ios.js + + + Press Cmd+R to reload,{'\n'} + Cmd+Control+Z for dev menu + + + ); + } +}); + +var styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#F5FCFF', + }, + levelCardText: { + justifyContent: 'center', + flex: 1, + }, + levelCard: { + backgroundColor: '#EEE', + alignItems: 'center', + justifyContent: 'center', + margin: 10, + padding: 10, + shadowColor: '#333', + shadowOpacity: 0.5, + shadowRadius: 5, + width: 200, + shadowOffset: { + x: 80, + y: 80 + }, + borderRadius: 10 + }, + welcome: { + fontSize: 20, + textAlign: 'center', + margin: 10, + }, + instructions: { + textAlign: 'center', + color: '#333333', + marginBottom: 5, + }, +}); + +AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject); diff --git a/src/js/stores/LevelStore.js b/src/js/stores/LevelStore.js index 558f593a..dccf6d84 100644 --- a/src/js/stores/LevelStore.js +++ b/src/js/stores/LevelStore.js @@ -50,7 +50,7 @@ var validateLevel = function(level) { }; /** - * Unpact the level sequences. + * Unpack the level sequences. */ _.each(levelSequences, function(levels, levelSequenceName) { _sequences.push(levelSequenceName); @@ -84,7 +84,6 @@ var LevelStore = assign( EventEmitter.prototype, AppConstants.StoreSubscribePrototype, { - getSequenceToLevels: function() { return levelSequences; }, diff --git a/src/js/util/keyMirror.js b/src/js/util/keyMirror.js new file mode 100644 index 00000000..29988d25 --- /dev/null +++ b/src/js/util/keyMirror.js @@ -0,0 +1,18 @@ +"use strict"; + +/** + * Our own flavor of keyMirror since I get some weird + * obscure error when trying to import the react lib one. + */ +var keyMirror = function(obj) { + var result = {}; + for (var key in obj) { + if (!obj.hasOwnProperty(key)) { + continue; + } + result[key] = key; + } + return result; +}; + +module.exports = keyMirror;