diff --git a/packages/happo-example-react-native-project/.happo.js b/packages/happo-example-react-native-project/.happo.js
index c662320..62cc668 100644
--- a/packages/happo-example-react-native-project/.happo.js
+++ b/packages/happo-example-react-native-project/.happo.js
@@ -14,5 +14,8 @@ module.exports = {
platformVersion: '6.0',
deviceName: 'Android Emulator',
}),
+ new ReactNativeTarget({
+ platform: 'windows',
+ }),
],
};
diff --git a/packages/happo-example-react-native-project/happo.js b/packages/happo-example-react-native-project/happo.js
deleted file mode 100644
index 02fabd5..0000000
--- a/packages/happo-example-react-native-project/happo.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import StoryManager from 'happo-target-react-native/client';
-
-import React from 'react';
-import { View, Text } from 'react-native';
-
-StoryManager.make('some example', () => (
-
- Hello World!
-
-));
-
-
-StoryManager.make('some red example', () => (
-
- Hello World!
-
-));
diff --git a/packages/happo-example-react-native-project/package.json b/packages/happo-example-react-native-project/package.json
index bb96da4..4386c91 100644
--- a/packages/happo-example-react-native-project/package.json
+++ b/packages/happo-example-react-native-project/package.json
@@ -17,6 +17,6 @@
"happo-viewer": "../happo-viewer",
"happo-core": "../happo-core",
"happo-target-react-native": "../happo-target-react-native",
- "happo-uploader-s3": "../happo-target-react-native"
+ "happo-uploader-s3": "../happo-uploader-s3"
}
}
diff --git a/packages/happo-target-react-native/package.json b/packages/happo-target-react-native/package.json
index ddf0229..2703e02 100644
--- a/packages/happo-target-react-native/package.json
+++ b/packages/happo-target-react-native/package.json
@@ -9,13 +9,16 @@
"scripts": {
"build:runner:ios": "./scripts/build-runner-ios.sh",
"build:runner:android": "./scripts/build-runner-android.sh",
+ "build:runner:windows": "./scripts/build-runner-windows.sh",
"build:server": "../../node_modules/.bin/babel src -d lib --ignore __tests__",
"build": "npm run build:runner:ios && npm run build:runner:android && npm run build:server",
"watch": "npm run build:server -- --watch"
},
"devDependencies": {
"react-native": "^0.40.0",
- "react-native-view-shot": "^1.5.1"
+ "react-native-view-shot": "^1.5.1",
+ "react-native-windows": "Microsoft/react-native-windows",
+ "rnpm-plugin-windows": "^0.2.4"
},
"peerDependencies": {
"react-native": "*",
diff --git a/packages/happo-target-react-native/runner/windows/.gitignore b/packages/happo-target-react-native/runner/windows/.gitignore
new file mode 100644
index 0000000..33d3fde
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/.gitignore
@@ -0,0 +1,89 @@
+*AppPackages*
+*BundleArtifacts*
+*ReactAssets*
+
+#OS junk files
+[Tt]humbs.db
+*.DS_Store
+
+#Visual Studio files
+*.[Oo]bj
+*.user
+*.aps
+*.pch
+*.vspscc
+*.vssscc
+*_i.c
+*_p.c
+*.ncb
+*.suo
+*.tlb
+*.tlh
+*.bak
+*.[Cc]ache
+*.ilk
+*.log
+*.lib
+*.sbr
+*.sdf
+*.opensdf
+*.opendb
+*.unsuccessfulbuild
+ipch/
+[Oo]bj/
+[Bb]in
+[Dd]ebug*/
+[Rr]elease*/
+Ankh.NoLoad
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+#MonoDevelop
+*.pidb
+*.userprefs
+
+#Tooling
+_ReSharper*/
+*.resharper
+[Tt]est[Rr]esult*
+*.sass-cache
+
+#Project files
+[Bb]uild/
+
+#Subversion files
+.svn
+
+# Office Temp Files
+~$*
+
+# vim Temp Files
+*~
+
+#NuGet
+packages/
+*.nupkg
+
+#ncrunch
+*ncrunch*
+*crunch*.local.xml
+
+# visual studio database projects
+*.dbmdl
+
+#Test files
+*.testsettings
+
+#Other files
+*.DotSettings
+.vs/
+*project.lock.json
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner.sln b/packages/happo-target-react-native/runner/windows/HappoRunner.sln
new file mode 100644
index 0000000..be4bb39
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner.sln
@@ -0,0 +1,256 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HappoRunner", "HappoRunner\HappoRunner.csproj", "{B489B4A3-F630-489F-850F-277FE3F3C949}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactNative", "..\..\node_modules\react-native-windows\ReactWindows\ReactNative\ReactNative.csproj", "{C7673AD5-E3AA-468C-A5FD-FA38154E205C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ChakraBridge", "..\..\node_modules\react-native-windows\ReactWindows\ChakraBridge\ChakraBridge.vcxproj", "{4B72C796-16D5-4E3A-81C0-3E36F531E578}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactNative.Net46", "..\..\node_modules\react-native-windows\ReactWindows\ReactNative.Net46\ReactNative.Net46.csproj", "{22CBFF9C-FE36-43E8-A246-266C7635E662}"
+EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ReactNative.Shared", "..\..\node_modules\react-native-windows\ReactWindows\ReactNative.Shared\ReactNative.Shared.shproj", "{EEA8B852-4D07-48E1-8294-A21AB5909FE5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RNViewShot", "..\..\node_modules\react-native-view-shot\windows\RNViewShot\RNViewShot.csproj", "{391A35D0-FEBA-11E6-9171-BD5177E581B7}"
+EndProject
+Global
+ GlobalSection(SharedMSBuildProjectFiles) = preSolution
+ ..\..\node_modules\react-native-windows\ReactWindows\ReactNative.Shared\ReactNative.Shared.projitems*{22cbff9c-fe36-43e8-a246-266c7635e662}*SharedItemsImports = 4
+ ..\..\node_modules\react-native-windows\ReactWindows\ReactNative.Shared\ReactNative.Shared.projitems*{c7673ad5-e3aa-468c-a5fd-fa38154e205c}*SharedItemsImports = 4
+ ..\..\node_modules\react-native-windows\ReactWindows\ReactNative.Shared\ReactNative.Shared.projitems*{eea8b852-4d07-48e1-8294-a21ab5909fe5}*SharedItemsImports = 13
+ EndGlobalSection
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ DebugBundle|Any CPU = DebugBundle|Any CPU
+ DebugBundle|ARM = DebugBundle|ARM
+ DebugBundle|x64 = DebugBundle|x64
+ DebugBundle|x86 = DebugBundle|x86
+ Development|Any CPU = Development|Any CPU
+ Development|ARM = Development|ARM
+ Development|x64 = Development|x64
+ Development|x86 = Development|x86
+ Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ ReleaseBundle|Any CPU = ReleaseBundle|Any CPU
+ ReleaseBundle|ARM = ReleaseBundle|ARM
+ ReleaseBundle|x64 = ReleaseBundle|x64
+ ReleaseBundle|x86 = ReleaseBundle|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|ARM.ActiveCfg = Debug|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|ARM.Build.0 = Debug|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|ARM.Deploy.0 = Debug|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|x64.ActiveCfg = Debug|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|x64.Build.0 = Debug|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|x64.Deploy.0 = Debug|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|x86.ActiveCfg = Debug|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|x86.Build.0 = Debug|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Debug|x86.Deploy.0 = Debug|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|Any CPU.ActiveCfg = DebugBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|ARM.ActiveCfg = DebugBundle|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|ARM.Build.0 = DebugBundle|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|ARM.Deploy.0 = DebugBundle|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|x64.ActiveCfg = DebugBundle|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|x64.Build.0 = DebugBundle|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|x64.Deploy.0 = DebugBundle|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|x86.ActiveCfg = DebugBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|x86.Build.0 = DebugBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.DebugBundle|x86.Deploy.0 = DebugBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|Any CPU.ActiveCfg = ReleaseBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|Any CPU.Build.0 = ReleaseBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|Any CPU.Deploy.0 = ReleaseBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|ARM.ActiveCfg = DebugBundle|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|ARM.Build.0 = DebugBundle|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|ARM.Deploy.0 = DebugBundle|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|x64.ActiveCfg = DebugBundle|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|x64.Build.0 = DebugBundle|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|x64.Deploy.0 = DebugBundle|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|x86.ActiveCfg = DebugBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|x86.Build.0 = DebugBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Development|x86.Deploy.0 = DebugBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|Any CPU.ActiveCfg = Release|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|ARM.ActiveCfg = Release|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|ARM.Build.0 = Release|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|ARM.Deploy.0 = Release|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|x64.ActiveCfg = Release|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|x64.Build.0 = Release|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|x64.Deploy.0 = Release|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|x86.ActiveCfg = Release|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|x86.Build.0 = Release|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.Release|x86.Deploy.0 = Release|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|Any CPU.ActiveCfg = ReleaseBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|ARM.ActiveCfg = ReleaseBundle|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|ARM.Build.0 = ReleaseBundle|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|ARM.Deploy.0 = ReleaseBundle|ARM
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|x64.ActiveCfg = ReleaseBundle|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|x64.Build.0 = ReleaseBundle|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|x64.Deploy.0 = ReleaseBundle|x64
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|x86.ActiveCfg = ReleaseBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|x86.Build.0 = ReleaseBundle|x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}.ReleaseBundle|x86.Deploy.0 = ReleaseBundle|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|ARM.ActiveCfg = Debug|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|ARM.Build.0 = Debug|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|x64.ActiveCfg = Debug|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|x64.Build.0 = Debug|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|x86.ActiveCfg = Debug|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Debug|x86.Build.0 = Debug|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|Any CPU.ActiveCfg = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|Any CPU.Build.0 = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|ARM.ActiveCfg = Debug|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|ARM.Build.0 = Debug|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|x64.ActiveCfg = Debug|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|x64.Build.0 = Debug|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|x86.ActiveCfg = Debug|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.DebugBundle|x86.Build.0 = Debug|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|Any CPU.ActiveCfg = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|Any CPU.Build.0 = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|ARM.ActiveCfg = Debug|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|ARM.Build.0 = Debug|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|x64.ActiveCfg = Debug|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|x64.Build.0 = Debug|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|x86.ActiveCfg = Debug|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Development|x86.Build.0 = Debug|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|Any CPU.ActiveCfg = Release|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|ARM.ActiveCfg = Release|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|ARM.Build.0 = Release|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|x64.ActiveCfg = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|x64.Build.0 = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|x86.ActiveCfg = Release|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.Release|x86.Build.0 = Release|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|Any CPU.ActiveCfg = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|Any CPU.Build.0 = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|ARM.ActiveCfg = Release|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|ARM.Build.0 = Release|ARM
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|x64.ActiveCfg = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|x64.Build.0 = Release|x64
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|x86.ActiveCfg = Release|x86
+ {C7673AD5-E3AA-468C-A5FD-FA38154E205C}.ReleaseBundle|x86.Build.0 = Release|x86
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|ARM.ActiveCfg = Debug|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|ARM.Build.0 = Debug|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|x64.ActiveCfg = Debug|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|x64.Build.0 = Debug|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|x86.ActiveCfg = Debug|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Debug|x86.Build.0 = Debug|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|Any CPU.ActiveCfg = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|Any CPU.Build.0 = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|ARM.ActiveCfg = Debug|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|ARM.Build.0 = Debug|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|x64.ActiveCfg = Debug|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|x64.Build.0 = Debug|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|x86.ActiveCfg = Debug|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.DebugBundle|x86.Build.0 = Debug|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|Any CPU.ActiveCfg = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|Any CPU.Build.0 = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|ARM.ActiveCfg = Debug|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|ARM.Build.0 = Debug|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|x64.ActiveCfg = Debug|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|x64.Build.0 = Debug|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|x86.ActiveCfg = Debug|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Development|x86.Build.0 = Debug|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|Any CPU.ActiveCfg = Release|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|ARM.ActiveCfg = Release|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|ARM.Build.0 = Release|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|x64.ActiveCfg = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|x64.Build.0 = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|x86.ActiveCfg = Release|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.Release|x86.Build.0 = Release|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|Any CPU.ActiveCfg = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|Any CPU.Build.0 = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|ARM.ActiveCfg = Release|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|ARM.Build.0 = Release|ARM
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|x64.ActiveCfg = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|x64.Build.0 = Release|x64
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|x86.ActiveCfg = Release|Win32
+ {4B72C796-16D5-4E3A-81C0-3E36F531E578}.ReleaseBundle|x86.Build.0 = Release|Win32
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Debug|ARM.ActiveCfg = Debug|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Debug|ARM.Build.0 = Debug|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Debug|x64.ActiveCfg = Debug|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Debug|x64.Build.0 = Debug|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Debug|x86.ActiveCfg = Debug|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Debug|x86.Build.0 = Debug|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.DebugBundle|Any CPU.ActiveCfg = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.DebugBundle|Any CPU.Build.0 = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.DebugBundle|ARM.ActiveCfg = Debug|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.DebugBundle|ARM.Build.0 = Debug|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.DebugBundle|x64.ActiveCfg = Debug|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.DebugBundle|x64.Build.0 = Debug|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.DebugBundle|x86.ActiveCfg = Debug|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.DebugBundle|x86.Build.0 = Debug|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Development|Any CPU.ActiveCfg = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Development|Any CPU.Build.0 = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Development|ARM.ActiveCfg = Debug|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Development|ARM.Build.0 = Debug|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Development|x64.ActiveCfg = Debug|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Development|x64.Build.0 = Debug|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Development|x86.ActiveCfg = Debug|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Development|x86.Build.0 = Debug|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Release|Any CPU.ActiveCfg = Release|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Release|ARM.ActiveCfg = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Release|ARM.Build.0 = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Release|x64.ActiveCfg = Release|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Release|x64.Build.0 = Release|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Release|x86.ActiveCfg = Release|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.Release|x86.Build.0 = Release|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.ReleaseBundle|Any CPU.ActiveCfg = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.ReleaseBundle|Any CPU.Build.0 = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.ReleaseBundle|ARM.ActiveCfg = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.ReleaseBundle|ARM.Build.0 = Release|ARM
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.ReleaseBundle|x64.ActiveCfg = Release|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.ReleaseBundle|x64.Build.0 = Release|x64
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.ReleaseBundle|x86.ActiveCfg = Release|x86
+ {22CBFF9C-FE36-43E8-A246-266C7635E662}.ReleaseBundle|x86.Build.0 = Release|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|ARM.ActiveCfg = Debug|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|ARM.Build.0 = Debug|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|x64.ActiveCfg = Debug|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|x64.Build.0 = Debug|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|x86.ActiveCfg = Debug|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Debug|x86.Build.0 = Debug|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|Any CPU.ActiveCfg = Debug|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|Any CPU.Build.0 = Debug|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|ARM.ActiveCfg = Debug|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|ARM.Build.0 = Debug|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|x64.ActiveCfg = Debug|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|x64.Build.0 = Debug|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|x86.ActiveCfg = Debug|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.DebugBundle|x86.Build.0 = Debug|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|Any CPU.ActiveCfg = Development|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|Any CPU.Build.0 = Development|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|ARM.ActiveCfg = Development|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|ARM.Build.0 = Development|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|x64.ActiveCfg = Development|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|x64.Build.0 = Development|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|x86.ActiveCfg = Development|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Development|x86.Build.0 = Development|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|ARM.ActiveCfg = Release|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|ARM.Build.0 = Release|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|x64.ActiveCfg = Release|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|x64.Build.0 = Release|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|x86.ActiveCfg = Release|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.Release|x86.Build.0 = Release|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|Any CPU.ActiveCfg = Release|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|Any CPU.Build.0 = Release|Any CPU
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|ARM.ActiveCfg = Release|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|ARM.Build.0 = Release|ARM
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|x64.ActiveCfg = Release|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|x64.Build.0 = Release|x64
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|x86.ActiveCfg = Release|x86
+ {391A35D0-FEBA-11E6-9171-BD5177E581B7}.ReleaseBundle|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/App.xaml b/packages/happo-target-react-native/runner/windows/HappoRunner/App.xaml
new file mode 100644
index 0000000..f22d2d6
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner/App.xaml
@@ -0,0 +1,8 @@
+
+
+
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/App.xaml.cs b/packages/happo-target-react-native/runner/windows/HappoRunner/App.xaml.cs
new file mode 100644
index 0000000..68b279f
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner/App.xaml.cs
@@ -0,0 +1,147 @@
+using ReactNative;
+using ReactNative.Modules.Launch;
+using System;
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.UI.Core;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Navigation;
+
+namespace HappoRunner
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ sealed partial class App : Application
+ {
+ private readonly ReactPage _reactPage;
+
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ this.Suspending += OnSuspending;
+ this.Resuming += OnResuming;
+
+ _reactPage = new MainPage();
+ }
+
+ ///
+ /// Invoked when the application is launched normally by the end user. Other entry points
+ /// will be used such as when the application is launched to open a specific file.
+ ///
+ /// Details about the launch request and process.
+ protected override void OnLaunched(LaunchActivatedEventArgs e)
+ {
+ base.OnLaunched(e);
+ OnCreate(e.Arguments);
+ }
+
+ ///
+ /// Invoked when the application is activated.
+ ///
+ /// The activated event arguments.
+ protected override void OnActivated(IActivatedEventArgs args)
+ {
+ base.OnActivated(args);
+
+ switch (args.Kind)
+ {
+ case ActivationKind.Protocol:
+ case ActivationKind.ProtocolForResults:
+ var protocolArgs = (IProtocolActivatedEventArgs)args;
+ LauncherModule.SetActivatedUrl(protocolArgs.Uri.AbsoluteUri);
+ break;
+ }
+
+ if (args.PreviousExecutionState != ApplicationExecutionState.Running &&
+ args.PreviousExecutionState != ApplicationExecutionState.Suspended)
+ {
+ OnCreate(null);
+ }
+ }
+
+ ///
+ /// Called whenever the app is opened to initia
+ ///
+ ///
+ private void OnCreate(string arguments)
+ {
+ _reactPage.OnResume(Exit);
+
+#if DEBUG
+ if (System.Diagnostics.Debugger.IsAttached)
+ {
+ this.DebugSettings.EnableFrameRateCounter = true;
+ }
+
+ SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
+ AppViewBackButtonVisibility.Visible;
+#endif
+
+ Frame rootFrame = Window.Current.Content as Frame;
+
+ // Do not repeat app initialization when the Window already has content,
+ // just ensure that the window is active
+ if (rootFrame == null)
+ {
+ _reactPage.OnCreate(arguments);
+
+ // Create a Frame to act as the navigation context and navigate to the first page
+ rootFrame = new Frame();
+
+ rootFrame.NavigationFailed += OnNavigationFailed;
+
+ // Place the frame in the current Window
+ Window.Current.Content = rootFrame;
+ }
+
+ if (rootFrame.Content == null)
+ {
+ // When the navigation stack isn't restored navigate to the first page,
+ // configuring the new page by passing required information as a navigation
+ // parameter
+ rootFrame.Content = _reactPage;
+ }
+
+ // Ensure the current window is active
+ Window.Current.Activate();
+ }
+
+ ///
+ /// Invoked when Navigation to a certain page fails
+ ///
+ /// The Frame which failed navigation
+ /// Details about the navigation failure
+ private void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
+ {
+ throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
+ }
+
+ ///
+ /// Invoked when application execution is being suspended. Application state is saved
+ /// without knowing whether the application will be terminated or resumed with the contents
+ /// of memory still intact.
+ ///
+ /// The source of the suspend request.
+ /// Details about the suspend request.
+ private void OnSuspending(object sender, SuspendingEventArgs e)
+ {
+ _reactPage.OnSuspend();
+ }
+
+ ///
+ /// Invoked when application execution is being resumed.
+ ///
+ /// The source of the resume request.
+ /// Details about the resume request.
+ private void OnResuming(object sender, object e)
+ {
+ _reactPage.OnResume(Exit);
+ }
+ }
+}
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/LockScreenLogo.scale-200.png b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 0000000..735f57a
Binary files /dev/null and b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/LockScreenLogo.scale-200.png differ
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/SplashScreen.scale-200.png b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/SplashScreen.scale-200.png
new file mode 100644
index 0000000..023e7f1
Binary files /dev/null and b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/SplashScreen.scale-200.png differ
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Square150x150Logo.scale-200.png b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 0000000..af49fec
Binary files /dev/null and b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Square150x150Logo.scale-200.png differ
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Square44x44Logo.scale-200.png b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 0000000..ce342a2
Binary files /dev/null and b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Square44x44Logo.scale-200.png differ
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 0000000..f6c02ce
Binary files /dev/null and b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/StoreLogo.png b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/StoreLogo.png
new file mode 100644
index 0000000..7385b56
Binary files /dev/null and b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/StoreLogo.png differ
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Wide310x150Logo.scale-200.png b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 0000000..288995b
Binary files /dev/null and b/packages/happo-target-react-native/runner/windows/HappoRunner/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/HappoRunner.csproj b/packages/happo-target-react-native/runner/windows/HappoRunner/HappoRunner.csproj
new file mode 100644
index 0000000..2c10d2c
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner/HappoRunner.csproj
@@ -0,0 +1,234 @@
+
+
+
+
+ Debug
+ x86
+ {B489B4A3-F630-489F-850F-277FE3F3C949}
+ AppContainerExe
+ Properties
+ HappoRunner
+ HappoRunner
+ en-US
+ UAP
+ 10.0.10586.0
+ 10.0.10240.0
+ 14
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ HappoRunner_TemporaryKey.pfx
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ true
+ bin\x86\DebugBundle\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE
+ ;2008
+ true
+ full
+ x86
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+
+
+ bin\x86\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+ true
+
+
+ bin\x86\ReleaseBundle\
+ TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE
+ true
+ ;2008
+ true
+ pdbonly
+ x86
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+ true
+
+
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ true
+ bin\ARM\DebugBundle\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE
+ ;2008
+ true
+ full
+ ARM
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+
+
+ bin\ARM\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+ true
+
+
+ bin\ARM\ReleaseBundle\
+ TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE
+ true
+ ;2008
+ true
+ pdbonly
+ ARM
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+ true
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ true
+ bin\x64\DebugBundle\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE
+ ;2008
+ true
+ full
+ x64
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+
+
+ bin\x64\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+ true
+
+
+ bin\x64\ReleaseBundle\
+ TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;BUNDLE
+ true
+ ;2008
+ true
+ pdbonly
+ x64
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+ true
+
+
+
+
+
+
+
+ App.xaml
+
+
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+
+ PreserveNewest
+
+
+
+
+ {391a35d0-feba-11e6-9171-bd5177e581b7}
+ RNViewShot
+
+
+ {4b72c796-16d5-4e3a-81c0-3e36f531e578}
+ ChakraBridge
+
+
+ {c7673ad5-e3aa-468c-a5fd-fa38154e205c}
+ ReactNative
+
+
+
+ 14.0
+
+
+
+
\ No newline at end of file
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/HappoRunner.nuget.targets b/packages/happo-target-react-native/runner/windows/HappoRunner/HappoRunner.nuget.targets
new file mode 100644
index 0000000..efa89e9
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner/HappoRunner.nuget.targets
@@ -0,0 +1,9 @@
+
+
+
+ $(UserProfile)\.nuget\packages\
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/HappoRunner_TemporaryKey.pfx b/packages/happo-target-react-native/runner/windows/HappoRunner/HappoRunner_TemporaryKey.pfx
new file mode 100644
index 0000000..08328fc
Binary files /dev/null and b/packages/happo-target-react-native/runner/windows/HappoRunner/HappoRunner_TemporaryKey.pfx differ
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/MainPage.cs b/packages/happo-target-react-native/runner/windows/HappoRunner/MainPage.cs
new file mode 100644
index 0000000..101484b
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner/MainPage.cs
@@ -0,0 +1,54 @@
+using ReactNative;
+using ReactNative.Modules.Core;
+using ReactNative.Shell;
+using RNViewShot;
+using System.Collections.Generic;
+
+namespace HappoRunner
+{
+ class MainPage : ReactPage
+ {
+ public override string MainComponentName
+ {
+ get
+ {
+ return "HappoRunner";
+ }
+ }
+
+#if BUNDLE
+ public override string JavaScriptBundleFile
+ {
+ get
+ {
+ return "ms-appx:///ReactAssets/index.windows.bundle";
+ }
+ }
+#endif
+
+ public override List Packages
+ {
+ get
+ {
+ return new List
+ {
+ new MainReactPackage(),
+ new RNViewShotPackage(),
+ };
+ }
+ }
+
+ public override bool UseDeveloperSupport
+ {
+ get
+ {
+#if !BUNDLE || DEBUG
+ return true;
+#else
+ return false;
+#endif
+ }
+ }
+ }
+
+}
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Package.appxmanifest b/packages/happo-target-react-native/runner/windows/HappoRunner/Package.appxmanifest
new file mode 100644
index 0000000..52456e3
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner/Package.appxmanifest
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+ HappoRunner
+ React Native for UWP
+ Assets\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Properties/AssemblyInfo.cs b/packages/happo-target-react-native/runner/windows/HappoRunner/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..3aa997c
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner/Properties/AssemblyInfo.cs
@@ -0,0 +1,29 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HappoRunner")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HappoRunner")]
+[assembly: AssemblyCopyright("Copyright © 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: ComVisible(false)]
\ No newline at end of file
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/Properties/Default.rd.xml b/packages/happo-target-react-native/runner/windows/HappoRunner/Properties/Default.rd.xml
new file mode 100644
index 0000000..73762cf
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner/Properties/Default.rd.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/happo-target-react-native/runner/windows/HappoRunner/project.json b/packages/happo-target-react-native/runner/windows/HappoRunner/project.json
new file mode 100644
index 0000000..2344dd3
--- /dev/null
+++ b/packages/happo-target-react-native/runner/windows/HappoRunner/project.json
@@ -0,0 +1,17 @@
+{
+ "dependencies": {
+ "Facebook.Yoga": "1.0.2-pre",
+ "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2"
+ },
+ "frameworks": {
+ "uap10.0": {}
+ },
+ "runtimes": {
+ "win10-arm": {},
+ "win10-arm-aot": {},
+ "win10-x86": {},
+ "win10-x86-aot": {},
+ "win10-x64": {},
+ "win10-x64-aot": {}
+ }
+}
diff --git a/packages/happo-target-react-native/scripts/build-runner-windows.sh b/packages/happo-target-react-native/scripts/build-runner-windows.sh
new file mode 100644
index 0000000..c1f4b8b
--- /dev/null
+++ b/packages/happo-target-react-native/scripts/build-runner-windows.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+echo "Building HappoRunner.exe"
+node ./node_modules/react-native/local-cli/cli.js run-windows --root ./runner
+
+echo "Building HappoRunner.exe (done)"
diff --git a/packages/happo-target-react-native/src/defaultOptions.js b/packages/happo-target-react-native/src/defaultOptions.js
index cefe4b6..09c0522 100644
--- a/packages/happo-target-react-native/src/defaultOptions.js
+++ b/packages/happo-target-react-native/src/defaultOptions.js
@@ -24,7 +24,17 @@ const androidAppPath = path.join(
'app-debug.apk',
);
-// `${process.cwd()}/../android/airbnb/build/outputs/apk/app-debug.apk`;
+const windowsPath = path.join(
+ __dirname, // path of this file
+ '..', // root of this module
+ 'runner',
+ 'windows',
+ 'HappoRunner',
+ 'bin',
+ 'x86',
+ 'Debug',
+ 'HappoRunner.exe'
+)
function fail(message) {
/* eslint-disable no-console */
@@ -33,7 +43,6 @@ function fail(message) {
process.exit(1);
}
-
function validatePassedOptions(options) {
if (typeof options.platform !== 'string') {
fail(`Expected \`platform\` to be string. Found ${typeof options.platform} instead.`);
@@ -42,9 +51,10 @@ function validatePassedOptions(options) {
switch (options.platform.toLowerCase()) {
case 'ios':
case 'android':
+ case 'windows':
break;
default:
- fail(`Expected \`platform\` to be one of ['ios', 'android']. Found '${options.platform}'.`);
+ fail(`Expected \`platform\` to be one of ['ios', 'android', 'windows']. Found '${options.platform}'.`);
return false;
}
return true;
@@ -61,6 +71,10 @@ const platformDefaults = {
platformName: 'Android',
deviceOrientation: 'portrait',
},
+ windows: {
+ runnerAppPath: windowsPath,
+ platformName: 'Windows'
+ }
};
// non-overridable capabilities
@@ -72,6 +86,9 @@ const platformCapabilities = {
appPackage: 'com.happorunner',
appActivity: '.MainActivity',
},
+ windows: {
+ // TODO: Add capabilities
+ },
};
module.exports = passedOptions => validatePassedOptions(passedOptions) && ({
diff --git a/packages/happo-target-react-native/src/initializeDriver.js b/packages/happo-target-react-native/src/initializeDriver.js
index c924877..cf3d489 100644
--- a/packages/happo-target-react-native/src/initializeDriver.js
+++ b/packages/happo-target-react-native/src/initializeDriver.js
@@ -96,5 +96,9 @@ const startDriver = ({
module.exports = function initializeDriver(options) {
console.log('[DRIVER]: starting it up');
- return startAppium(options).then(() => startDriver(options));
+ if (options.platform === 'windows') {
+ return startDriver(options);
+ } else {
+ return startAppium(options).then(() => startDriver(options));
+ }
};
diff --git a/packages/happo-target-react-native/src/native/StoryManager.js b/packages/happo-target-react-native/src/native/StoryManager.js
index 479d8f6..752416a 100644
--- a/packages/happo-target-react-native/src/native/StoryManager.js
+++ b/packages/happo-target-react-native/src/native/StoryManager.js
@@ -14,8 +14,9 @@ const clear = () => { stories = []; map = {}; };
let config = {
host: Platform.select({
- ios: 'localhost', // ios simulators are same machine
android: '10.0.3.2', // genymotion VMs
+ ios: 'localhost', // ios simulators are same machine
+ windows: 'localhost',
}),
port: 5000,
};