react-native-windows 0.71.2 → 0.71.4
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/Alert/Alert.d.ts +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +15 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +2 -3
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +2 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +2 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +3 -3
- package/Libraries/Components/View/ViewAccessibility.d.ts +13 -0
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +6 -6
- package/Libraries/Lists/FlatList.js +20 -7
- package/Libraries/Lists/VirtualizedList.js +13 -10
- package/Libraries/StyleSheet/processAspectRatio.js +12 -2
- package/Libraries/TurboModule/TurboModuleRegistry.d.ts +2 -4
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
- package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +17 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +1 -0
- package/Microsoft.ReactNative/RedBox.cpp +0 -2
- package/Microsoft.ReactNative/Version.rc +6 -2
- package/PropertySheets/Generated/PackageVersion.g.props +3 -2
- package/PropertySheets/PackageVersionDefinitions.props +2 -0
- package/package.json +12 -14
- package/types/index.d.ts +1 -1
|
@@ -45,6 +45,16 @@ export type KeyboardTypeOptions =
|
|
|
45
45
|
| KeyboardTypeAndroid
|
|
46
46
|
| KeyboardTypeIOS;
|
|
47
47
|
|
|
48
|
+
export type InputModeOptions =
|
|
49
|
+
| 'none'
|
|
50
|
+
| 'text'
|
|
51
|
+
| 'decimal'
|
|
52
|
+
| 'numeric'
|
|
53
|
+
| 'tel'
|
|
54
|
+
| 'search'
|
|
55
|
+
| 'email'
|
|
56
|
+
| 'url';
|
|
57
|
+
|
|
48
58
|
export type ReturnKeyType = 'done' | 'go' | 'next' | 'search' | 'send';
|
|
49
59
|
export type ReturnKeyTypeAndroid = 'none' | 'previous';
|
|
50
60
|
export type ReturnKeyTypeIOS =
|
|
@@ -588,6 +598,11 @@ export interface TextInputProps
|
|
|
588
598
|
*/
|
|
589
599
|
keyboardType?: KeyboardTypeOptions | undefined;
|
|
590
600
|
|
|
601
|
+
/**
|
|
602
|
+
* Works like the inputmode attribute in HTML, it determines which keyboard to open, e.g. numeric and has precedence over keyboardType.
|
|
603
|
+
*/
|
|
604
|
+
inputMode?: InputModeOptions | undefined;
|
|
605
|
+
|
|
591
606
|
/**
|
|
592
607
|
* Limits the maximum number of characters that can be entered.
|
|
593
608
|
* Use this instead of implementing the logic in JS to avoid flicker.
|
|
@@ -301,9 +301,8 @@ class TouchableOpacity extends React.Component<Props, State> {
|
|
|
301
301
|
this.state.pressability.configure(this._createPressabilityConfig());
|
|
302
302
|
if (
|
|
303
303
|
this.props.disabled !== prevProps.disabled ||
|
|
304
|
-
|
|
305
|
-
flattenStyle(this.props.style)?.opacity
|
|
306
|
-
undefined
|
|
304
|
+
flattenStyle(prevProps.style)?.opacity !==
|
|
305
|
+
flattenStyle(this.props.style)?.opacity
|
|
307
306
|
) {
|
|
308
307
|
this._opacityInactive(250);
|
|
309
308
|
}
|
|
@@ -315,9 +315,8 @@ class TouchableOpacity extends React.Component<Props, State> {
|
|
|
315
315
|
this.state.pressability.configure(this._createPressabilityConfig());
|
|
316
316
|
if (
|
|
317
317
|
this.props.disabled !== prevProps.disabled ||
|
|
318
|
-
|
|
319
|
-
flattenStyle(this.props.style)?.opacity
|
|
320
|
-
undefined
|
|
318
|
+
flattenStyle(prevProps.style)?.opacity !==
|
|
319
|
+
flattenStyle(this.props.style)?.opacity
|
|
321
320
|
) {
|
|
322
321
|
this._opacityInactive(250);
|
|
323
322
|
}
|
|
@@ -69,7 +69,7 @@ export interface TouchableWithoutFeedbackProps
|
|
|
69
69
|
* the Z-index of sibling views always takes precedence if a touch hits
|
|
70
70
|
* two overlapping views.
|
|
71
71
|
*/
|
|
72
|
-
hitSlop?: Insets | undefined;
|
|
72
|
+
hitSlop?: null | Insets | number | undefined;
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
75
|
* Used to reference react managed views from native code.
|
|
@@ -121,7 +121,7 @@ export interface TouchableWithoutFeedbackProps
|
|
|
121
121
|
* while the scroll view is disabled. Ensure you pass in a constant
|
|
122
122
|
* to reduce memory allocations.
|
|
123
123
|
*/
|
|
124
|
-
pressRetentionOffset?: Insets | undefined;
|
|
124
|
+
pressRetentionOffset?: null | Insets | number | undefined;
|
|
125
125
|
|
|
126
126
|
/**
|
|
127
127
|
* Used to locate this view in end-to-end tests.
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
AccessibilityState,
|
|
16
16
|
AccessibilityValue,
|
|
17
17
|
} from '../../Components/View/ViewAccessibility';
|
|
18
|
-
import type {
|
|
18
|
+
import type {EdgeInsetsOrSizeProp} from '../../StyleSheet/EdgeInsetsPropType';
|
|
19
19
|
import type {
|
|
20
20
|
BlurEvent,
|
|
21
21
|
FocusEvent,
|
|
@@ -67,7 +67,7 @@ type Props = $ReadOnly<{|
|
|
|
67
67
|
delayPressOut?: ?number,
|
|
68
68
|
disabled?: ?boolean,
|
|
69
69
|
focusable?: ?boolean,
|
|
70
|
-
hitSlop?: ?
|
|
70
|
+
hitSlop?: ?EdgeInsetsOrSizeProp,
|
|
71
71
|
id?: string,
|
|
72
72
|
importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),
|
|
73
73
|
nativeID?: ?string,
|
|
@@ -79,7 +79,7 @@ type Props = $ReadOnly<{|
|
|
|
79
79
|
onPress?: ?(event: PressEvent) => mixed,
|
|
80
80
|
onPressIn?: ?(event: PressEvent) => mixed,
|
|
81
81
|
onPressOut?: ?(event: PressEvent) => mixed,
|
|
82
|
-
pressRetentionOffset?: ?
|
|
82
|
+
pressRetentionOffset?: ?EdgeInsetsOrSizeProp,
|
|
83
83
|
rejectResponderTermination?: ?boolean,
|
|
84
84
|
testID?: ?string,
|
|
85
85
|
touchSoundDisabled?: ?boolean,
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
AccessibilityState,
|
|
16
16
|
AccessibilityValue,
|
|
17
17
|
} from '../../Components/View/ViewAccessibility';
|
|
18
|
-
import type {
|
|
18
|
+
import type {EdgeInsetsOrSizeProp} from '../../StyleSheet/EdgeInsetsPropType';
|
|
19
19
|
import type {
|
|
20
20
|
BlurEvent,
|
|
21
21
|
FocusEvent,
|
|
@@ -68,7 +68,7 @@ type Props = $ReadOnly<{|
|
|
|
68
68
|
delayPressOut?: ?number,
|
|
69
69
|
disabled?: ?boolean,
|
|
70
70
|
focusable?: ?boolean,
|
|
71
|
-
hitSlop?: ?
|
|
71
|
+
hitSlop?: ?EdgeInsetsOrSizeProp,
|
|
72
72
|
id?: string,
|
|
73
73
|
importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),
|
|
74
74
|
nativeID?: ?string,
|
|
@@ -80,7 +80,7 @@ type Props = $ReadOnly<{|
|
|
|
80
80
|
onPress?: ?(event: PressEvent) => mixed,
|
|
81
81
|
onPressIn?: ?(event: PressEvent) => mixed,
|
|
82
82
|
onPressOut?: ?(event: PressEvent) => mixed,
|
|
83
|
-
pressRetentionOffset?: ?
|
|
83
|
+
pressRetentionOffset?: ?EdgeInsetsOrSizeProp,
|
|
84
84
|
rejectResponderTermination?: ?boolean,
|
|
85
85
|
testID?: ?string,
|
|
86
86
|
touchSoundDisabled?: ?boolean,
|
|
@@ -251,6 +251,12 @@ export interface AccessibilityPropsAndroid {
|
|
|
251
251
|
| 'no'
|
|
252
252
|
| 'no-hide-descendants'
|
|
253
253
|
| undefined;
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* A reference to another element `nativeID` used to build complex forms. The value of `accessibilityLabelledBy` should match the `nativeID` of the related element.
|
|
257
|
+
* @platform android
|
|
258
|
+
*/
|
|
259
|
+
accessibilityLabelledBy?: string | string[] | undefined;
|
|
254
260
|
}
|
|
255
261
|
|
|
256
262
|
export interface AccessibilityPropsIOS {
|
|
@@ -290,6 +296,13 @@ export interface AccessibilityPropsIOS {
|
|
|
290
296
|
* @platform ios
|
|
291
297
|
*/
|
|
292
298
|
accessibilityIgnoresInvertColors?: boolean | undefined;
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* By using the accessibilityLanguage property, the screen reader will understand which language to use while reading the element's label, value and hint. The provided string value must follow the BCP 47 specification (https://www.rfc-editor.org/info/bcp47).
|
|
302
|
+
* https://reactnative.dev/docs/accessibility#accessibilitylanguage-ios
|
|
303
|
+
* @platform ios
|
|
304
|
+
*/
|
|
305
|
+
accessibilityLanguage?: string | undefined;
|
|
293
306
|
}
|
|
294
307
|
|
|
295
308
|
export type Role =
|
|
@@ -14,9 +14,9 @@ import type {
|
|
|
14
14
|
VirtualizedListProps,
|
|
15
15
|
} from './VirtualizedList';
|
|
16
16
|
import type {ScrollViewComponent} from '../Components/ScrollView/ScrollView';
|
|
17
|
-
import {StyleProp} from '../StyleSheet/StyleSheet';
|
|
18
|
-
import {ViewStyle} from '../StyleSheet/StyleSheetTypes';
|
|
19
|
-
import {View} from '../Components/View/View';
|
|
17
|
+
import type {StyleProp} from '../StyleSheet/StyleSheet';
|
|
18
|
+
import type {ViewStyle} from '../StyleSheet/StyleSheetTypes';
|
|
19
|
+
import type {View} from '../Components/View/View';
|
|
20
20
|
|
|
21
21
|
export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
|
|
22
22
|
/**
|
|
@@ -40,10 +40,10 @@ export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
|
|
|
40
40
|
| undefined;
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
43
|
+
* An array (or array-like list) of items to render. Other data types can be
|
|
44
|
+
* used by targetting VirtualizedList directly.
|
|
45
45
|
*/
|
|
46
|
-
data:
|
|
46
|
+
data: ArrayLike<ItemT> | null | undefined;
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
49
|
* A marker property for telling the list to re-render (since it implements PureComponent).
|
|
@@ -30,10 +30,10 @@ const React = require('react');
|
|
|
30
30
|
|
|
31
31
|
type RequiredProps<ItemT> = {|
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
33
|
+
* An array (or array-like list) of items to render. Other data types can be
|
|
34
|
+
* used by targetting VirtualizedList directly.
|
|
35
35
|
*/
|
|
36
|
-
data: ?$
|
|
36
|
+
data: ?$ArrayLike<ItemT>,
|
|
37
37
|
|};
|
|
38
38
|
type OptionalProps<ItemT> = {|
|
|
39
39
|
/**
|
|
@@ -163,6 +163,11 @@ function numColumnsOrDefault(numColumns: ?number) {
|
|
|
163
163
|
return numColumns ?? 1;
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
+
function isArrayLike(data: mixed): boolean {
|
|
167
|
+
// $FlowExpectedError[incompatible-use]
|
|
168
|
+
return typeof Object(data).length === 'number';
|
|
169
|
+
}
|
|
170
|
+
|
|
166
171
|
type FlatListProps<ItemT> = {|
|
|
167
172
|
...RequiredProps<ItemT>,
|
|
168
173
|
...OptionalProps<ItemT>,
|
|
@@ -497,8 +502,10 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
|
|
|
497
502
|
);
|
|
498
503
|
}
|
|
499
504
|
|
|
500
|
-
|
|
501
|
-
|
|
505
|
+
_getItem = (
|
|
506
|
+
data: $ArrayLike<ItemT>,
|
|
507
|
+
index: number,
|
|
508
|
+
): ?(ItemT | $ReadOnlyArray<ItemT>) => {
|
|
502
509
|
const numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
503
510
|
if (numColumns > 1) {
|
|
504
511
|
const ret = [];
|
|
@@ -515,8 +522,14 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
|
|
|
515
522
|
}
|
|
516
523
|
};
|
|
517
524
|
|
|
518
|
-
_getItemCount = (data:
|
|
519
|
-
if
|
|
525
|
+
_getItemCount = (data: ?$ArrayLike<ItemT>): number => {
|
|
526
|
+
// Legacy behavior of FlatList was to forward "undefined" length if invalid
|
|
527
|
+
// data like a non-arraylike object is passed. VirtualizedList would then
|
|
528
|
+
// coerce this, and the math would work out to no-op. For compatibility, if
|
|
529
|
+
// invalid data is passed, we tell VirtualizedList there are zero items
|
|
530
|
+
// available to prevent it from trying to read from the invalid data
|
|
531
|
+
// (without propagating invalidly typed data).
|
|
532
|
+
if (data != null && isArrayLike(data)) {
|
|
520
533
|
const numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
521
534
|
return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;
|
|
522
535
|
} else {
|
|
@@ -860,16 +860,19 @@ export default class VirtualizedList extends StateSafePureComponent<
|
|
|
860
860
|
<ListEmptyComponent />
|
|
861
861
|
)): any);
|
|
862
862
|
cells.push(
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
863
|
+
<VirtualizedListCellContextProvider
|
|
864
|
+
cellKey={this._getCellKey() + '-empty'}
|
|
865
|
+
key="$empty">
|
|
866
|
+
{React.cloneElement(element, {
|
|
867
|
+
onLayout: (event: LayoutEvent) => {
|
|
868
|
+
this._onLayoutEmpty(event);
|
|
869
|
+
if (element.props.onLayout) {
|
|
870
|
+
element.props.onLayout(event);
|
|
871
|
+
}
|
|
872
|
+
},
|
|
873
|
+
style: StyleSheet.compose(inversionStyle, element.props.style),
|
|
874
|
+
})}
|
|
875
|
+
</VirtualizedListCellContextProvider>,
|
|
873
876
|
);
|
|
874
877
|
}
|
|
875
878
|
|
|
@@ -12,10 +12,20 @@
|
|
|
12
12
|
|
|
13
13
|
const invariant = require('invariant');
|
|
14
14
|
|
|
15
|
-
function processAspectRatio(aspectRatio
|
|
15
|
+
function processAspectRatio(aspectRatio?: number | string): ?number {
|
|
16
16
|
if (typeof aspectRatio === 'number') {
|
|
17
17
|
return aspectRatio;
|
|
18
18
|
}
|
|
19
|
+
if (typeof aspectRatio !== 'string') {
|
|
20
|
+
if (__DEV__) {
|
|
21
|
+
invariant(
|
|
22
|
+
!aspectRatio,
|
|
23
|
+
'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',
|
|
24
|
+
aspectRatio,
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
19
29
|
|
|
20
30
|
const matches = aspectRatio.split('/').map(s => s.trim());
|
|
21
31
|
|
|
@@ -34,7 +44,7 @@ function processAspectRatio(aspectRatio: number | string): ?number {
|
|
|
34
44
|
if (__DEV__) {
|
|
35
45
|
invariant(
|
|
36
46
|
!hasNonNumericValues && (matches.length === 1 || matches.length === 2),
|
|
37
|
-
'aspectRatio must either be a number, a ratio or `auto`. You passed: %s',
|
|
47
|
+
'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',
|
|
38
48
|
aspectRatio,
|
|
39
49
|
);
|
|
40
50
|
}
|
|
@@ -9,7 +9,5 @@
|
|
|
9
9
|
|
|
10
10
|
import {TurboModule} from './RCTExport';
|
|
11
11
|
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
getEnforcing<T extends TurboModule>(name: string): T;
|
|
15
|
-
};
|
|
12
|
+
export function get<T extends TurboModule>(name: string): T | null;
|
|
13
|
+
export function getEnforcing<T extends TurboModule>(name: string): T;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
#include "ReactInstanceWin.h"
|
|
6
6
|
|
|
7
7
|
#include <winrt/Windows.Storage.h>
|
|
8
|
+
#include <csignal>
|
|
8
9
|
|
|
9
10
|
#include <WerApi.h>
|
|
10
11
|
|
|
@@ -14,7 +15,7 @@ namespace Mso::React {
|
|
|
14
15
|
// That should be saved so that if needed it can be called after the new unhandled exception has finished executing.
|
|
15
16
|
// This allows the Windows Error Reporting system to process the error and upload the data for processing.
|
|
16
17
|
static LPTOP_LEVEL_EXCEPTION_FILTER g_previousExceptionFilter = nullptr;
|
|
17
|
-
|
|
18
|
+
static _crt_signal_t g_previousSignalHandler = SIG_ERR;
|
|
18
19
|
static std::wstring g_logFileName;
|
|
19
20
|
static bool g_WERExceptionFilterWasCalled{false}; // Prevent recursion in the custom handler
|
|
20
21
|
|
|
@@ -29,9 +30,18 @@ extern "C" LONG WINAPI CustomWERExceptionFilter(LPEXCEPTION_POINTERS const excep
|
|
|
29
30
|
|
|
30
31
|
CrashManager::OnUnhandledException();
|
|
31
32
|
|
|
33
|
+
if (exceptionPointers == nullptr) {
|
|
34
|
+
return EXCEPTION_EXECUTE_HANDLER;
|
|
35
|
+
}
|
|
36
|
+
|
|
32
37
|
return g_previousExceptionFilter(exceptionPointers);
|
|
33
38
|
}
|
|
34
39
|
|
|
40
|
+
void __cdecl on_sigabrt(int signum) {
|
|
41
|
+
CustomWERExceptionFilter(nullptr);
|
|
42
|
+
signal(signum, SIG_DFL);
|
|
43
|
+
}
|
|
44
|
+
|
|
35
45
|
void InternalRegisterCustomHandler() noexcept {
|
|
36
46
|
// Do this now because by the time we catch the exception we may be in OOM
|
|
37
47
|
#ifndef CORE_ABI // win32 vs uwp file permissions
|
|
@@ -47,6 +57,8 @@ void InternalRegisterCustomHandler() noexcept {
|
|
|
47
57
|
VerifySucceededElseCrash(::WerRegisterFile(g_logFileName.c_str(), WerRegFileTypeOther, WER_FILE_ANONYMOUS_DATA));
|
|
48
58
|
|
|
49
59
|
g_previousExceptionFilter = ::SetUnhandledExceptionFilter(CustomWERExceptionFilter);
|
|
60
|
+
|
|
61
|
+
g_previousSignalHandler = signal(SIGABRT, &on_sigabrt);
|
|
50
62
|
}
|
|
51
63
|
|
|
52
64
|
void InternalUnregisterCustomHandler() noexcept {
|
|
@@ -56,6 +68,10 @@ void InternalUnregisterCustomHandler() noexcept {
|
|
|
56
68
|
::SetUnhandledExceptionFilter(g_previousExceptionFilter);
|
|
57
69
|
g_previousExceptionFilter = nullptr;
|
|
58
70
|
}
|
|
71
|
+
|
|
72
|
+
if (g_previousSignalHandler != SIG_ERR) {
|
|
73
|
+
signal(SIGABRT, g_previousSignalHandler);
|
|
74
|
+
}
|
|
59
75
|
}
|
|
60
76
|
|
|
61
77
|
/*static*/ void CrashManager::OnUnhandledException() noexcept {
|
|
@@ -424,6 +424,7 @@ void ReactInstanceWin::Initialize() noexcept {
|
|
|
424
424
|
|
|
425
425
|
devSettings->waitingForDebuggerCallback = GetWaitingForDebuggerCallback();
|
|
426
426
|
devSettings->debuggerAttachCallback = GetDebuggerAttachCallback();
|
|
427
|
+
devSettings->enableDefaultCrashHandler = m_options.EnableDefaultCrashHandler();
|
|
427
428
|
|
|
428
429
|
#ifndef CORE_ABI
|
|
429
430
|
devSettings->showDevMenuCallback = [weakThis]() noexcept {
|
|
@@ -56,11 +56,9 @@ struct RedBox : public std::enable_shared_from_this<RedBox> {
|
|
|
56
56
|
m_errorInfo(std::move(errorInfo)) {}
|
|
57
57
|
|
|
58
58
|
void Dismiss() noexcept {
|
|
59
|
-
#ifdef USE_FABRIC
|
|
60
59
|
if (m_popup) {
|
|
61
60
|
m_popup.IsOpen(false);
|
|
62
61
|
}
|
|
63
|
-
#endif // USE_FABRIC
|
|
64
62
|
}
|
|
65
63
|
|
|
66
64
|
void Reload() noexcept {
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
#define VER_FILEVERSION_STR XSTRINGIZE(RNW_VERSION)
|
|
11
11
|
#define VER_FILEVERSION RNW_MAJOR,RNW_MINOR,RNW_PATCH,RNW_PKG_VERSION_BUILD
|
|
12
12
|
|
|
13
|
+
#define VER_PRODUCTVERSION_STR XSTRINGIZE(RNW_VERSION+RNW_COMMITID)
|
|
14
|
+
#define VER_PRODUCTVERSION RNW_MAJOR,RNW_MINOR,RNW_PATCH,RNW_PKG_VERSION_BUILD
|
|
15
|
+
|
|
16
|
+
|
|
13
17
|
#ifndef DEBUG
|
|
14
18
|
#define VER_DEBUG 0
|
|
15
19
|
#else
|
|
@@ -18,7 +22,7 @@
|
|
|
18
22
|
|
|
19
23
|
VS_VERSION_INFO VERSIONINFO
|
|
20
24
|
FILEVERSION VER_FILEVERSION
|
|
21
|
-
PRODUCTVERSION
|
|
25
|
+
PRODUCTVERSION VER_PRODUCTVERSION
|
|
22
26
|
FILEFLAGSMASK (VS_FF_DEBUG)
|
|
23
27
|
FILEFLAGS(VER_DEBUG)
|
|
24
28
|
FILEOS VOS__WINDOWS32
|
|
@@ -36,7 +40,7 @@ VALUE "InternalName", "Microsoft.ReactNative.dll"
|
|
|
36
40
|
VALUE "LegalCopyright", "(c) Microsoft Corporation. All rights reserved."
|
|
37
41
|
VALUE "OriginalFilename", "Microsoft.ReactNative.dll"
|
|
38
42
|
VALUE "ProductName", "React-Native-Windows"
|
|
39
|
-
VALUE "ProductVersion",
|
|
43
|
+
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
|
40
44
|
END
|
|
41
45
|
END
|
|
42
46
|
|
|
@@ -10,10 +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.4</ReactNativeWindowsVersion>
|
|
14
14
|
<ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
|
|
15
15
|
<ReactNativeWindowsMinor>71</ReactNativeWindowsMinor>
|
|
16
|
-
<ReactNativeWindowsPatch>
|
|
16
|
+
<ReactNativeWindowsPatch>4</ReactNativeWindowsPatch>
|
|
17
17
|
<ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
|
|
18
|
+
<ReactNativeWindowsCommitId>6906a8ebfb3f1c36dfdcaa421fde1824e5171e98</ReactNativeWindowsCommitId>
|
|
18
19
|
</PropertyGroup>
|
|
19
20
|
</Project>
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
RNW_MAJOR=$(ReactNativeWindowsMajor);
|
|
16
16
|
RNW_MINOR=$(ReactNativeWindowsMinor);
|
|
17
17
|
RNW_PATCH=$(ReactNativeWindowsPatch);
|
|
18
|
+
RNW_COMMITID=$(ReactNativeWindowsCommitId);
|
|
18
19
|
%(PreprocessorDefinitions)
|
|
19
20
|
</PreprocessorDefinitions>
|
|
20
21
|
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
RNW_MAJOR=$(ReactNativeWindowsMajor);
|
|
32
33
|
RNW_MINOR=$(ReactNativeWindowsMinor);
|
|
33
34
|
RNW_PATCH=$(ReactNativeWindowsPatch);
|
|
35
|
+
RNW_COMMITID=$(ReactNativeWindowsCommitId);
|
|
34
36
|
%(PreprocessorDefinitions)
|
|
35
37
|
</PreprocessorDefinitions>
|
|
36
38
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-windows",
|
|
3
|
-
"version": "0.71.
|
|
3
|
+
"version": "0.71.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@babel/runtime": "^7.0.0",
|
|
25
25
|
"@jest/create-cache-key-function": "^29.2.1",
|
|
26
|
-
"@react-native-community/cli": "10.
|
|
27
|
-
"@react-native-community/cli-platform-android": "10.
|
|
28
|
-
"@react-native-community/cli-platform-ios": "10.
|
|
29
|
-
"@react-native-windows/cli": "0.71.
|
|
26
|
+
"@react-native-community/cli": "10.2.0",
|
|
27
|
+
"@react-native-community/cli-platform-android": "10.2.0",
|
|
28
|
+
"@react-native-community/cli-platform-ios": "10.2.0",
|
|
29
|
+
"@react-native-windows/cli": "0.71.3",
|
|
30
30
|
"@react-native/assets": "1.0.0",
|
|
31
31
|
"@react-native/normalize-color": "2.1.0",
|
|
32
32
|
"@react-native/polyfills": "2.0.0",
|
|
@@ -37,18 +37,16 @@
|
|
|
37
37
|
"event-target-shim": "^5.0.1",
|
|
38
38
|
"invariant": "^2.2.4",
|
|
39
39
|
"jest-environment-node": "^29.2.1",
|
|
40
|
-
"jsc-android": "^250230.2.1",
|
|
41
40
|
"memoize-one": "^5.0.0",
|
|
42
|
-
"metro-react-native-babel-transformer": "0.73.
|
|
43
|
-
"metro-runtime": "0.73.
|
|
44
|
-
"metro-source-map": "0.73.
|
|
41
|
+
"metro-react-native-babel-transformer": "0.73.8",
|
|
42
|
+
"metro-runtime": "0.73.8",
|
|
43
|
+
"metro-source-map": "0.73.8",
|
|
45
44
|
"mkdirp": "^0.5.1",
|
|
46
45
|
"nullthrows": "^1.1.1",
|
|
47
46
|
"pretty-format": "^26.5.2",
|
|
48
47
|
"promise": "^8.3.0",
|
|
49
48
|
"react-devtools-core": "^4.26.1",
|
|
50
|
-
"react-native-codegen": "^0.71.
|
|
51
|
-
"react-native-gradle-plugin": "^0.71.12",
|
|
49
|
+
"react-native-codegen": "^0.71.5",
|
|
52
50
|
"react-refresh": "^0.4.0",
|
|
53
51
|
"react-shallow-renderer": "^16.15.0",
|
|
54
52
|
"regenerator-runtime": "^0.13.2",
|
|
@@ -74,17 +72,17 @@
|
|
|
74
72
|
"flow-bin": "^0.191.0",
|
|
75
73
|
"jscodeshift": "^0.13.1",
|
|
76
74
|
"just-scripts": "^1.3.3",
|
|
77
|
-
"metro-config": "0.73.
|
|
75
|
+
"metro-config": "0.73.8",
|
|
78
76
|
"prettier": "^2.4.1",
|
|
79
77
|
"react": "18.2.0",
|
|
80
|
-
"react-native": "0.71.
|
|
78
|
+
"react-native": "0.71.4",
|
|
81
79
|
"react-native-platform-override": "^1.8.3",
|
|
82
80
|
"react-refresh": "^0.4.0",
|
|
83
81
|
"typescript": "^4.9.5"
|
|
84
82
|
},
|
|
85
83
|
"peerDependencies": {
|
|
86
84
|
"react": "18.2.0",
|
|
87
|
-
"react-native": "0.71.0"
|
|
85
|
+
"react-native": "^0.71.0"
|
|
88
86
|
},
|
|
89
87
|
"beachball": {
|
|
90
88
|
"defaultNpmTag": "latest",
|
package/types/index.d.ts
CHANGED
|
@@ -139,7 +139,7 @@ export * from '../Libraries/StyleSheet/StyleSheetTypes';
|
|
|
139
139
|
export * from '../Libraries/StyleSheet/processColor';
|
|
140
140
|
export * from '../Libraries/Text/Text';
|
|
141
141
|
export * from '../Libraries/TurboModule/RCTExport';
|
|
142
|
-
export * from '../Libraries/TurboModule/TurboModuleRegistry';
|
|
142
|
+
export * as TurboModuleRegistry from '../Libraries/TurboModule/TurboModuleRegistry';
|
|
143
143
|
export * from '../Libraries/Types/CoreEventTypes';
|
|
144
144
|
export * from '../Libraries/Utilities/Appearance';
|
|
145
145
|
export * from '../Libraries/Utilities/BackHandler';
|