react-native-windows 0.71.11 → 0.71.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/Text/Text.windows.js +33 -14
- package/Microsoft.ReactNative/IReactContext.cpp +8 -0
- package/Microsoft.ReactNative/IReactContext.h +2 -0
- package/Microsoft.ReactNative/IReactContext.idl +11 -0
- package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
- package/Microsoft.ReactNative/ReactApplication.h +3 -0
- package/Microsoft.ReactNative/ReactApplication.idl +3 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +14 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +2 -0
- package/Microsoft.ReactNative/ReactHost/React.h +4 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +10 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +2 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.h +25 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +10 -0
- package/Microsoft.ReactNative/ReactNativeHost.cpp +2 -0
- package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +4 -0
- package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/ReactCommon/Yoga.cpp +5 -0
- package/Shared/DevServerHelper.h +11 -2
- package/Shared/DevSettings.h +4 -0
- package/Shared/DevSupportManager.cpp +11 -1
- package/Shared/DevSupportManager.h +1 -0
- package/Shared/OInstance.cpp +7 -4
- package/package.json +1 -1
|
@@ -212,6 +212,7 @@ const Text: React.AbstractComponent<
|
|
|
212
212
|
|
|
213
213
|
const _accessible = Platform.select({
|
|
214
214
|
ios: accessible !== false,
|
|
215
|
+
windows: accessible !== false,
|
|
215
216
|
default: accessible,
|
|
216
217
|
});
|
|
217
218
|
|
|
@@ -228,24 +229,16 @@ const Text: React.AbstractComponent<
|
|
|
228
229
|
return (
|
|
229
230
|
<NativeVirtualText
|
|
230
231
|
{...restProps}
|
|
232
|
+
accessibilityState={_accessibilityState}
|
|
231
233
|
{...eventHandlersForText}
|
|
232
|
-
disabled={_disabled}
|
|
233
|
-
selectable={_selectable}
|
|
234
|
-
accessible={
|
|
235
|
-
accessible == null && Platform.OS === 'android'
|
|
236
|
-
? _hasOnPressOrOnLongPress
|
|
237
|
-
: _accessible
|
|
238
|
-
}
|
|
239
234
|
accessibilityLabel={ariaLabel ?? accessibilityLabel}
|
|
240
|
-
accessibilityState={nativeTextAccessibilityState}
|
|
241
235
|
accessibilityRole={
|
|
242
236
|
role ? getAccessibilityRoleFromRole(role) : accessibilityRole
|
|
243
237
|
}
|
|
244
|
-
allowFontScaling={allowFontScaling !== false}
|
|
245
|
-
ellipsizeMode={ellipsizeMode ?? 'tail'}
|
|
246
238
|
isHighlighted={isHighlighted}
|
|
247
|
-
nativeID={id ?? nativeID}
|
|
248
239
|
isPressable={isPressable}
|
|
240
|
+
selectable={_selectable}
|
|
241
|
+
nativeID={id ?? nativeID}
|
|
249
242
|
numberOfLines={numberOfLines}
|
|
250
243
|
selectionColor={selectionColor}
|
|
251
244
|
style={flattenedStyle}
|
|
@@ -297,10 +290,23 @@ const Text: React.AbstractComponent<
|
|
|
297
290
|
<NativeText
|
|
298
291
|
{...textPropsLessStyle}
|
|
299
292
|
{...eventHandlersForText}
|
|
300
|
-
|
|
293
|
+
disabled={_disabled}
|
|
294
|
+
selectable={_selectable}
|
|
295
|
+
accessible={
|
|
296
|
+
accessible == null && Platform.OS === 'android'
|
|
297
|
+
? _hasOnPressOrOnLongPress
|
|
298
|
+
: _accessible
|
|
299
|
+
}
|
|
300
|
+
accessibilityLabel={ariaLabel ?? accessibilityLabel}
|
|
301
|
+
accessibilityState={nativeTextAccessibilityState}
|
|
302
|
+
accessibilityRole={
|
|
303
|
+
role ? getAccessibilityRoleFromRole(role) : accessibilityRole
|
|
304
|
+
}
|
|
301
305
|
allowFontScaling={allowFontScaling !== false}
|
|
302
306
|
ellipsizeMode={ellipsizeMode ?? 'tail'}
|
|
303
307
|
isHighlighted={isHighlighted}
|
|
308
|
+
nativeID={id ?? nativeID}
|
|
309
|
+
numberOfLines={numberOfLines}
|
|
304
310
|
selectionColor={selectionColor}
|
|
305
311
|
style={((rest: any): TextStyleProp)}
|
|
306
312
|
ref={forwardedRef}
|
|
@@ -314,12 +320,25 @@ const Text: React.AbstractComponent<
|
|
|
314
320
|
<NativeText
|
|
315
321
|
{...restProps}
|
|
316
322
|
{...eventHandlersForText}
|
|
317
|
-
|
|
323
|
+
disabled={_disabled}
|
|
324
|
+
selectable={_selectable}
|
|
325
|
+
accessible={
|
|
326
|
+
accessible == null && Platform.OS === 'android'
|
|
327
|
+
? _hasOnPressOrOnLongPress
|
|
328
|
+
: _accessible
|
|
329
|
+
}
|
|
330
|
+
accessibilityLabel={ariaLabel ?? accessibilityLabel}
|
|
331
|
+
accessibilityState={nativeTextAccessibilityState}
|
|
332
|
+
accessibilityRole={
|
|
333
|
+
role ? getAccessibilityRoleFromRole(role) : accessibilityRole
|
|
334
|
+
}
|
|
318
335
|
allowFontScaling={allowFontScaling !== false}
|
|
319
336
|
ellipsizeMode={ellipsizeMode ?? 'tail'}
|
|
320
337
|
isHighlighted={isHighlighted}
|
|
338
|
+
nativeID={id ?? nativeID}
|
|
339
|
+
numberOfLines={numberOfLines}
|
|
321
340
|
selectionColor={selectionColor}
|
|
322
|
-
style={
|
|
341
|
+
style={flattenedStyle}
|
|
323
342
|
ref={forwardedRef}
|
|
324
343
|
/>
|
|
325
344
|
</TextAncestor.Provider>
|
|
@@ -61,6 +61,14 @@ hstring ReactSettingsSnapshot::JavaScriptBundleFile() const noexcept {
|
|
|
61
61
|
return winrt::to_hstring(m_settings->JavaScriptBundleFile());
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
hstring ReactSettingsSnapshot::BundleAppId() const noexcept {
|
|
65
|
+
return winrt::to_hstring(m_settings->BundleAppId());
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
bool ReactSettingsSnapshot::RequestDevBundle() const noexcept {
|
|
69
|
+
return m_settings->RequestDevBundle();
|
|
70
|
+
}
|
|
71
|
+
|
|
64
72
|
Mso::React::IReactSettingsSnapshot const &ReactSettingsSnapshot::GetInner() const noexcept {
|
|
65
73
|
return *m_settings;
|
|
66
74
|
}
|
|
@@ -23,6 +23,8 @@ struct ReactSettingsSnapshot : winrt::implements<ReactSettingsSnapshot, IReactSe
|
|
|
23
23
|
uint16_t SourceBundlePort() const noexcept;
|
|
24
24
|
bool RequestInlineSourceMap() const noexcept;
|
|
25
25
|
hstring JavaScriptBundleFile() const noexcept;
|
|
26
|
+
hstring BundleAppId() const noexcept;
|
|
27
|
+
bool RequestDevBundle() const noexcept;
|
|
26
28
|
|
|
27
29
|
public:
|
|
28
30
|
// Internal accessor for within the Microsoft.ReactNative dll to allow calling into internal methods
|
|
@@ -120,6 +120,17 @@ namespace Microsoft.ReactNative
|
|
|
120
120
|
"The `.bundle` extension will be appended to the end, when looking for the bundle file.")
|
|
121
121
|
String JavaScriptBundleFile { get; };
|
|
122
122
|
|
|
123
|
+
DOC_STRING(
|
|
124
|
+
"A read-only snapshot of the @ReactInstanceSettings.BundleAppId property value "
|
|
125
|
+
"at the time when the React instance was created.\n"
|
|
126
|
+
"The name of the app passed to the packager server via the 'app' query parameter.")
|
|
127
|
+
String BundleAppId { get; };
|
|
128
|
+
|
|
129
|
+
DOC_STRING(
|
|
130
|
+
"A read-only snapshot of the @ReactInstanceSettings.RequestDevBundle property value "
|
|
131
|
+
"at the time when the React instance was created.\n"
|
|
132
|
+
"When querying the bundle server for a bundle, should it request the dev bundle or release bundle.")
|
|
133
|
+
Boolean RequestDevBundle { get; };
|
|
123
134
|
}
|
|
124
135
|
|
|
125
136
|
[webhosthidden]
|
|
@@ -97,6 +97,14 @@ void ReactApplication::JavaScriptBundleFile(hstring const &value) noexcept {
|
|
|
97
97
|
InstanceSettings().JavaScriptBundleFile(value);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
hstring ReactApplication::BundleAppId() noexcept {
|
|
101
|
+
return InstanceSettings().BundleAppId();
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
void ReactApplication::BundleAppId(hstring const &value) noexcept {
|
|
105
|
+
InstanceSettings().BundleAppId(value);
|
|
106
|
+
}
|
|
107
|
+
|
|
100
108
|
void ReactApplication::OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const &e) {
|
|
101
109
|
if (e.Kind() == Windows::ApplicationModel::Activation::ActivationKind::Protocol) {
|
|
102
110
|
auto protocolActivatedEventArgs{e.as<Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs>()};
|
|
@@ -91,6 +91,9 @@ struct ReactApplication : NoDefaultCtorReactApplication_base<ReactApplication, x
|
|
|
91
91
|
hstring JavaScriptBundleFile() noexcept;
|
|
92
92
|
void JavaScriptBundleFile(hstring const &value) noexcept;
|
|
93
93
|
|
|
94
|
+
hstring BundleAppId() noexcept;
|
|
95
|
+
void BundleAppId(hstring const &value) noexcept;
|
|
96
|
+
|
|
94
97
|
void OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const &e);
|
|
95
98
|
void OnLaunched(activation::LaunchActivatedEventArgs const &e);
|
|
96
99
|
void OnSuspending(IInspectable const &, Windows::ApplicationModel::SuspendingEventArgs const &);
|
|
@@ -41,5 +41,8 @@ namespace Microsoft.ReactNative
|
|
|
41
41
|
|
|
42
42
|
DOC_STRING("See @ReactInstanceSettings.JavaScriptBundleFile.")
|
|
43
43
|
String JavaScriptBundleFile { get; set; };
|
|
44
|
+
|
|
45
|
+
DOC_STRING("See @ReactInstanceSettings.BundleAppId.")
|
|
46
|
+
String BundleAppId { get; set; };
|
|
44
47
|
}
|
|
45
48
|
} // namespace Microsoft.ReactNative
|
|
@@ -93,6 +93,20 @@ std::string ReactSettingsSnapshot::JavaScriptBundleFile() const noexcept {
|
|
|
93
93
|
return {};
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
std::string ReactSettingsSnapshot::BundleAppId() const noexcept {
|
|
97
|
+
if (auto instance = m_reactInstance.GetStrongPtr()) {
|
|
98
|
+
return instance->BundleAppId();
|
|
99
|
+
}
|
|
100
|
+
return {};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
bool ReactSettingsSnapshot::RequestDevBundle() const noexcept {
|
|
104
|
+
if (auto instance = m_reactInstance.GetStrongPtr()) {
|
|
105
|
+
return instance->RequestDevBundle();
|
|
106
|
+
}
|
|
107
|
+
return {};
|
|
108
|
+
}
|
|
109
|
+
|
|
96
110
|
JSIEngine ReactSettingsSnapshot::JsiEngine() const noexcept {
|
|
97
111
|
if (auto instance = m_reactInstance.GetStrongPtr()) {
|
|
98
112
|
return instance->JsiEngine();
|
|
@@ -29,6 +29,8 @@ class ReactSettingsSnapshot final : public Mso::UnknownObject<IReactSettingsSnap
|
|
|
29
29
|
uint16_t SourceBundlePort() const noexcept override;
|
|
30
30
|
bool RequestInlineSourceMap() const noexcept override;
|
|
31
31
|
std::string JavaScriptBundleFile() const noexcept override;
|
|
32
|
+
std::string BundleAppId() const noexcept override;
|
|
33
|
+
bool RequestDevBundle() const noexcept override;
|
|
32
34
|
bool UseDeveloperSupport() const noexcept override;
|
|
33
35
|
JSIEngine JsiEngine() const noexcept override;
|
|
34
36
|
|
|
@@ -104,6 +104,8 @@ struct IReactSettingsSnapshot : IUnknown {
|
|
|
104
104
|
virtual uint16_t SourceBundlePort() const noexcept = 0;
|
|
105
105
|
virtual bool RequestInlineSourceMap() const noexcept = 0;
|
|
106
106
|
virtual std::string JavaScriptBundleFile() const noexcept = 0;
|
|
107
|
+
virtual std::string BundleAppId() const noexcept = 0;
|
|
108
|
+
virtual bool RequestDevBundle() const noexcept = 0;
|
|
107
109
|
virtual bool UseDeveloperSupport() const noexcept = 0;
|
|
108
110
|
virtual JSIEngine JsiEngine() const noexcept = 0;
|
|
109
111
|
};
|
|
@@ -150,6 +152,8 @@ struct ReactDevOptions {
|
|
|
150
152
|
bool RequestInlineSourceMap{true}; // Request the source map inline
|
|
151
153
|
std::string SourceBundleName; // Bundle name without any extension (e.g. "index.win32"). Default: "index.{PLATFORM}"
|
|
152
154
|
std::string SourceBundleExtension; // Bundle name extension. Default: ".bundle".
|
|
155
|
+
std::string BundleAppId; // Bundle app id. Default: "".
|
|
156
|
+
bool DevBundle{true}; // When requesting bundle from bundle server, query for dev bundle or release bundle
|
|
153
157
|
|
|
154
158
|
//! Module name used for loading the debug bundle.
|
|
155
159
|
//! e.g. The modules name registered in the jsbundle via AppRegistry.registerComponent('ModuleName', () =>
|
|
@@ -425,6 +425,8 @@ void ReactInstanceWin::Initialize() noexcept {
|
|
|
425
425
|
devSettings->waitingForDebuggerCallback = GetWaitingForDebuggerCallback();
|
|
426
426
|
devSettings->debuggerAttachCallback = GetDebuggerAttachCallback();
|
|
427
427
|
devSettings->enableDefaultCrashHandler = m_options.EnableDefaultCrashHandler();
|
|
428
|
+
devSettings->bundleAppId = BundleAppId();
|
|
429
|
+
devSettings->devBundle = RequestDevBundle();
|
|
428
430
|
|
|
429
431
|
#ifndef CORE_ABI
|
|
430
432
|
devSettings->showDevMenuCallback = [weakThis]() noexcept {
|
|
@@ -1125,6 +1127,14 @@ std::string ReactInstanceWin::JavaScriptBundleFile() const noexcept {
|
|
|
1125
1127
|
return m_options.Identity;
|
|
1126
1128
|
}
|
|
1127
1129
|
|
|
1130
|
+
std::string ReactInstanceWin::BundleAppId() const noexcept {
|
|
1131
|
+
return m_options.DeveloperSettings.BundleAppId;
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
bool ReactInstanceWin::RequestDevBundle() const noexcept {
|
|
1135
|
+
return m_options.DeveloperSettings.DevBundle;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1128
1138
|
bool ReactInstanceWin::UseDeveloperSupport() const noexcept {
|
|
1129
1139
|
return m_options.UseDeveloperSupport();
|
|
1130
1140
|
}
|
|
@@ -79,6 +79,8 @@ class ReactInstanceWin final : public Mso::ActiveObject<IReactInstanceInternal>
|
|
|
79
79
|
uint16_t SourceBundlePort() const noexcept;
|
|
80
80
|
bool RequestInlineSourceMap() const noexcept;
|
|
81
81
|
std::string JavaScriptBundleFile() const noexcept;
|
|
82
|
+
std::string BundleAppId() const noexcept;
|
|
83
|
+
bool RequestDevBundle() const noexcept;
|
|
82
84
|
bool UseDeveloperSupport() const noexcept;
|
|
83
85
|
JSIEngine JsiEngine() const noexcept;
|
|
84
86
|
|
|
@@ -63,6 +63,13 @@ struct ReactInstanceSettings : ReactInstanceSettingsT<ReactInstanceSettings> {
|
|
|
63
63
|
hstring JavaScriptBundleFile() noexcept;
|
|
64
64
|
void JavaScriptBundleFile(hstring const &value) noexcept;
|
|
65
65
|
|
|
66
|
+
hstring BundleAppId() noexcept;
|
|
67
|
+
void BundleAppId(hstring const &value) noexcept;
|
|
68
|
+
|
|
69
|
+
//! When querying the bundle server for a bundle, should it request the dev bundle or release bundle
|
|
70
|
+
bool RequestDevBundle() noexcept;
|
|
71
|
+
void RequestDevBundle(bool value) noexcept;
|
|
72
|
+
|
|
66
73
|
//! Should the instance run in a remote environment such as within a browser
|
|
67
74
|
//! By default, this is using a browser navigated to http://localhost:8081/debugger-ui served
|
|
68
75
|
//! by Metro/Haul. Debugging will start as soon as the React Native instance is loaded.
|
|
@@ -170,6 +177,8 @@ struct ReactInstanceSettings : ReactInstanceSettingsT<ReactInstanceSettings> {
|
|
|
170
177
|
Windows::Foundation::Collections::IVector<IReactPackageProvider> m_packageProviders{
|
|
171
178
|
single_threaded_vector<IReactPackageProvider>()};
|
|
172
179
|
hstring m_javaScriptBundleFile{};
|
|
180
|
+
hstring m_bundleAppId{};
|
|
181
|
+
bool m_devBundle{true};
|
|
173
182
|
bool m_enableJITCompilation{true};
|
|
174
183
|
bool m_enableByteCodeCaching{false};
|
|
175
184
|
hstring m_byteCodeFileUri{};
|
|
@@ -227,6 +236,22 @@ inline void ReactInstanceSettings::JavaScriptBundleFile(hstring const &value) no
|
|
|
227
236
|
m_javaScriptBundleFile = value;
|
|
228
237
|
}
|
|
229
238
|
|
|
239
|
+
inline hstring ReactInstanceSettings::BundleAppId() noexcept {
|
|
240
|
+
return m_bundleAppId;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
inline void ReactInstanceSettings::BundleAppId(hstring const &value) noexcept {
|
|
244
|
+
m_bundleAppId = value;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
inline bool ReactInstanceSettings::RequestDevBundle() noexcept {
|
|
248
|
+
return m_devBundle;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
inline void ReactInstanceSettings::RequestDevBundle(bool value) noexcept {
|
|
252
|
+
m_devBundle = value;
|
|
253
|
+
}
|
|
254
|
+
|
|
230
255
|
inline bool ReactInstanceSettings::EnableJITCompilation() noexcept {
|
|
231
256
|
return m_enableJITCompilation;
|
|
232
257
|
}
|
|
@@ -105,6 +105,16 @@ namespace Microsoft.ReactNative
|
|
|
105
105
|
DOC_DEFAULT("index.windows")
|
|
106
106
|
String JavaScriptBundleFile { get; set; };
|
|
107
107
|
|
|
108
|
+
DOC_STRING(
|
|
109
|
+
"The name of the app passed to the packager server via the 'app' query parameter. "
|
|
110
|
+
"This is useful when bundling multiple applications from the same packager instance. "
|
|
111
|
+
"If no value is set, the parameter will not be passed.")
|
|
112
|
+
String BundleAppId { get; set; };
|
|
113
|
+
|
|
114
|
+
DOC_STRING(
|
|
115
|
+
"When querying the bundle server for a bundle, should it request the dev bundle or release bundle.")
|
|
116
|
+
Boolean RequestDevBundle { get; set; };
|
|
117
|
+
|
|
108
118
|
DOC_STRING(
|
|
109
119
|
"Controls whether the instance JavaScript runs in a remote environment such as within a browser.\n"
|
|
110
120
|
"By default, this is using a browser navigated to http://localhost:8081/debugger-ui served by Metro/Haul.\n"
|
|
@@ -134,6 +134,8 @@ IAsyncAction ReactNativeHost::ReloadInstance() noexcept {
|
|
|
134
134
|
reactOptions.DeveloperSettings.SourceBundleHost = to_string(m_instanceSettings.SourceBundleHost());
|
|
135
135
|
reactOptions.DeveloperSettings.SourceBundlePort = m_instanceSettings.SourceBundlePort();
|
|
136
136
|
reactOptions.DeveloperSettings.RequestInlineSourceMap = m_instanceSettings.RequestInlineSourceMap();
|
|
137
|
+
reactOptions.DeveloperSettings.BundleAppId = to_string(m_instanceSettings.BundleAppId());
|
|
138
|
+
reactOptions.DeveloperSettings.DevBundle = m_instanceSettings.RequestDevBundle();
|
|
137
139
|
|
|
138
140
|
reactOptions.ByteCodeFileUri = to_string(m_instanceSettings.ByteCodeFileUri());
|
|
139
141
|
reactOptions.EnableByteCodeCaching = m_instanceSettings.EnableByteCodeCaching();
|
|
@@ -18,6 +18,8 @@ namespace Microsoft.ReactNative.Managed
|
|
|
18
18
|
|
|
19
19
|
public string JavaScriptBundleFile => IsValid ? Handle.JavaScriptBundleFile : null;
|
|
20
20
|
|
|
21
|
+
public string BundleAppId => IsValid ? Handle.BundleAppId : null;
|
|
22
|
+
|
|
21
23
|
public bool RequestInlineSourceMap => IsValid ? Handle.RequestInlineSourceMap : false;
|
|
22
24
|
|
|
23
25
|
public string SourceBundleHost => IsValid ? Handle.SourceBundleHost : null;
|
|
@@ -30,6 +32,8 @@ namespace Microsoft.ReactNative.Managed
|
|
|
30
32
|
|
|
31
33
|
public bool UseWebDebugger => IsValid ? Handle.UseWebDebugger : false;
|
|
32
34
|
|
|
35
|
+
public bool RequestDevBundle => IsValid ? Handle.RequestDevBundle : true;
|
|
36
|
+
|
|
33
37
|
public IReactSettingsSnapshot Handle { get; }
|
|
34
38
|
|
|
35
39
|
public bool IsValid => Handle != null;
|
|
@@ -85,8 +85,8 @@
|
|
|
85
85
|
},
|
|
86
86
|
"ReactNative.Hermes.Windows": {
|
|
87
87
|
"type": "Transitive",
|
|
88
|
-
"resolved": "0.
|
|
89
|
-
"contentHash": "
|
|
88
|
+
"resolved": "0.71.1",
|
|
89
|
+
"contentHash": "q38h/Gkw8d0pfUqIhRCd1j/XLhpQY4Hm7kSQthZUzetEST34acbR883/Eh+DKt4FVz9a0lh5kiAfP7piO768SA=="
|
|
90
90
|
},
|
|
91
91
|
"runtime.win10-arm.Microsoft.Net.Native.Compiler": {
|
|
92
92
|
"type": "Transitive",
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
"Microsoft.UI.Xaml": "[2.7.0, )",
|
|
177
177
|
"Microsoft.Windows.SDK.BuildTools": "[10.0.22000.194, )",
|
|
178
178
|
"ReactCommon": "[1.0.0, )",
|
|
179
|
-
"ReactNative.Hermes.Windows": "[0.
|
|
179
|
+
"ReactNative.Hermes.Windows": "[0.71.1, )",
|
|
180
180
|
"boost": "[1.76.0, )"
|
|
181
181
|
}
|
|
182
182
|
},
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
-->
|
|
11
11
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
12
12
|
<PropertyGroup>
|
|
13
|
-
<ReactNativeWindowsVersion>0.71.
|
|
13
|
+
<ReactNativeWindowsVersion>0.71.13</ReactNativeWindowsVersion>
|
|
14
14
|
<ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
|
|
15
15
|
<ReactNativeWindowsMinor>71</ReactNativeWindowsMinor>
|
|
16
|
-
<ReactNativeWindowsPatch>
|
|
16
|
+
<ReactNativeWindowsPatch>13</ReactNativeWindowsPatch>
|
|
17
17
|
<ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
|
|
18
|
-
<ReactNativeWindowsCommitId>
|
|
18
|
+
<ReactNativeWindowsCommitId>f54d249fcac7999eefbc155fa2f23b1b33619e8b</ReactNativeWindowsCommitId>
|
|
19
19
|
</PropertyGroup>
|
|
20
20
|
</Project>
|
package/ReactCommon/Yoga.cpp
CHANGED
|
@@ -2540,6 +2540,11 @@ static void YGJustifyMainAxis(
|
|
|
2540
2540
|
const YGNodeRef child = node->getChild(i);
|
|
2541
2541
|
const YGStyle &childStyle = child->getStyle();
|
|
2542
2542
|
const YGLayout childLayout = child->getLayout();
|
|
2543
|
+
const bool isLastChild = i == collectedFlexItemsValues.endOfLineIndex - 1;
|
|
2544
|
+
// remove the gap if it is the last element of the line
|
|
2545
|
+
if (isLastChild) {
|
|
2546
|
+
betweenMainDim -= gap;
|
|
2547
|
+
}
|
|
2543
2548
|
if (childStyle.display() == YGDisplayNone) {
|
|
2544
2549
|
continue;
|
|
2545
2550
|
}
|
package/Shared/DevServerHelper.h
CHANGED
|
@@ -31,6 +31,7 @@ class DevServerHelper {
|
|
|
31
31
|
const uint16_t sourceBundlePort,
|
|
32
32
|
const std::string &jsbundle,
|
|
33
33
|
const std::string &platform,
|
|
34
|
+
const std::string &bundleAppId,
|
|
34
35
|
bool dev,
|
|
35
36
|
bool hot,
|
|
36
37
|
bool inlineSourceMap,
|
|
@@ -41,6 +42,12 @@ class DevServerHelper {
|
|
|
41
42
|
hermesBytecodeVersionQuery = string_format(HermesBytecodeVersionQueryFormat, hermesBytecodeVersion);
|
|
42
43
|
}
|
|
43
44
|
|
|
45
|
+
std::string appIdQuery;
|
|
46
|
+
if (bundleAppId.size() > 0) {
|
|
47
|
+
static constexpr const char AppIdQueryFormat[] = "&app=%s";
|
|
48
|
+
appIdQuery = string_format(AppIdQueryFormat, bundleAppId.c_str());
|
|
49
|
+
}
|
|
50
|
+
|
|
44
51
|
return string_format(
|
|
45
52
|
BundleUrlFormat,
|
|
46
53
|
GetDeviceLocalHost(sourceBundleHost, sourceBundlePort).c_str(),
|
|
@@ -49,7 +56,8 @@ class DevServerHelper {
|
|
|
49
56
|
dev ? "true" : "false",
|
|
50
57
|
hot ? "true" : "false",
|
|
51
58
|
inlineSourceMap ? "true" : "false",
|
|
52
|
-
hermesBytecodeVersionQuery.c_str()
|
|
59
|
+
hermesBytecodeVersionQuery.c_str(),
|
|
60
|
+
appIdQuery.c_str());
|
|
53
61
|
}
|
|
54
62
|
|
|
55
63
|
static std::string get_OnChangeEndpointUrl(const std::string &sourceBundleHost, const uint16_t sourceBundlePort) {
|
|
@@ -91,7 +99,8 @@ class DevServerHelper {
|
|
|
91
99
|
}
|
|
92
100
|
|
|
93
101
|
static constexpr const char DeviceLocalHostFormat[] = "%s:%d";
|
|
94
|
-
static constexpr const char BundleUrlFormat[] =
|
|
102
|
+
static constexpr const char BundleUrlFormat[] =
|
|
103
|
+
"http://%s/%s.bundle?platform=%s&dev=%s&hot=%s&inlineSourceMap=%s%s%s";
|
|
95
104
|
static constexpr const char SourceMapUrlFormat[] = "http://%s/%s.map?platform=%s&dev=%s&hot=%s";
|
|
96
105
|
static constexpr const char LaunchDevToolsCommandUrlFormat[] = "http://%s/launch-js-devtools";
|
|
97
106
|
static constexpr const char OnChangeEndpointUrlFormat[] = "http://%s/onchange";
|
package/Shared/DevSettings.h
CHANGED
|
@@ -43,6 +43,7 @@ struct DevSettings {
|
|
|
43
43
|
std::string sourceBundleHost;
|
|
44
44
|
std::string debugBundlePath;
|
|
45
45
|
std::string platformName{STRING(RN_PLATFORM)};
|
|
46
|
+
std::string bundleAppId;
|
|
46
47
|
std::function<void()> liveReloadCallback;
|
|
47
48
|
std::function<void(std::string)> errorCallback;
|
|
48
49
|
std::function<void()> waitingForDebuggerCallback;
|
|
@@ -94,6 +95,9 @@ struct DevSettings {
|
|
|
94
95
|
|
|
95
96
|
bool inlineSourceMap{true};
|
|
96
97
|
|
|
98
|
+
// When querying the bundle server for a bundle, should it request the dev bundle or release bundle
|
|
99
|
+
bool devBundle{true};
|
|
100
|
+
|
|
97
101
|
bool enableDefaultCrashHandler{false};
|
|
98
102
|
};
|
|
99
103
|
|
|
@@ -246,6 +246,7 @@ void DevSupportManager::EnsureHermesInspector(
|
|
|
246
246
|
#ifdef HERMES_ENABLE_DEBUGGER
|
|
247
247
|
static std::once_flag once;
|
|
248
248
|
std::call_once(once, [this, &packagerHost, packagerPort]() {
|
|
249
|
+
// TODO: should we use the bundleAppId as the app param if available?
|
|
249
250
|
std::string packageName("RNW");
|
|
250
251
|
wchar_t fullName[PACKAGE_FULL_NAME_MAX_LENGTH]{};
|
|
251
252
|
UINT32 size = ARRAYSIZE(fullName);
|
|
@@ -280,12 +281,21 @@ std::pair<std::string, bool> GetJavaScriptFromServer(
|
|
|
280
281
|
const uint16_t sourceBundlePort,
|
|
281
282
|
const std::string &jsBundleName,
|
|
282
283
|
const std::string &platform,
|
|
284
|
+
const std::string &bundleAppId,
|
|
283
285
|
bool dev,
|
|
284
286
|
bool hot,
|
|
285
287
|
bool inlineSourceMap,
|
|
286
288
|
const uint32_t hermesBytecodeVersion) {
|
|
287
289
|
auto bundleUrl = facebook::react::DevServerHelper::get_BundleUrl(
|
|
288
|
-
sourceBundleHost,
|
|
290
|
+
sourceBundleHost,
|
|
291
|
+
sourceBundlePort,
|
|
292
|
+
jsBundleName,
|
|
293
|
+
platform,
|
|
294
|
+
bundleAppId,
|
|
295
|
+
dev,
|
|
296
|
+
hot,
|
|
297
|
+
inlineSourceMap,
|
|
298
|
+
hermesBytecodeVersion);
|
|
289
299
|
try {
|
|
290
300
|
return GetJavaScriptFromServerAsync(bundleUrl).get();
|
|
291
301
|
} catch (winrt::hresult_error const &e) {
|
package/Shared/OInstance.cpp
CHANGED
|
@@ -443,7 +443,8 @@ void InstanceImpl::loadBundleInternal(std::string &&jsBundleRelativePath, bool s
|
|
|
443
443
|
m_devSettings->sourceBundlePort,
|
|
444
444
|
m_devSettings->debugBundlePath.empty() ? jsBundleRelativePath : m_devSettings->debugBundlePath,
|
|
445
445
|
m_devSettings->platformName,
|
|
446
|
-
|
|
446
|
+
m_devSettings->bundleAppId,
|
|
447
|
+
m_devSettings->devBundle,
|
|
447
448
|
m_devSettings->useFastRefresh,
|
|
448
449
|
m_devSettings->inlineSourceMap,
|
|
449
450
|
hermesBytecodeVersion);
|
|
@@ -464,8 +465,9 @@ void InstanceImpl::loadBundleInternal(std::string &&jsBundleRelativePath, bool s
|
|
|
464
465
|
m_devSettings->sourceBundlePort,
|
|
465
466
|
m_devSettings->debugBundlePath.empty() ? jsBundleRelativePath : m_devSettings->debugBundlePath,
|
|
466
467
|
m_devSettings->platformName,
|
|
467
|
-
|
|
468
|
-
|
|
468
|
+
m_devSettings->bundleAppId,
|
|
469
|
+
m_devSettings->devBundle,
|
|
470
|
+
m_devSettings->useFastRefresh,
|
|
469
471
|
m_devSettings->inlineSourceMap,
|
|
470
472
|
hermesBytecodeVersion);
|
|
471
473
|
|
|
@@ -600,7 +602,8 @@ std::vector<std::unique_ptr<NativeModule>> InstanceImpl::GetDefaultNativeModules
|
|
|
600
602
|
m_devSettings->sourceBundlePort,
|
|
601
603
|
m_devSettings->debugBundlePath,
|
|
602
604
|
m_devSettings->platformName,
|
|
603
|
-
|
|
605
|
+
m_devSettings->bundleAppId,
|
|
606
|
+
m_devSettings->devBundle,
|
|
604
607
|
m_devSettings->useFastRefresh,
|
|
605
608
|
m_devSettings->inlineSourceMap,
|
|
606
609
|
hermesBytecodeVersion)
|