@office-iss/react-native-win32 0.0.0-canary.260 → 0.0.0-canary.262
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/.flowconfig +4 -3
- package/CHANGELOG.json +37 -1
- package/CHANGELOG.md +21 -4
- package/Libraries/Animated/nodes/AnimatedObject.js +2 -5
- package/Libraries/Animated/nodes/AnimatedProps.js +2 -0
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -3
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -3
- package/Libraries/Components/TextInput/TextInput.js +20 -24
- package/Libraries/Components/TextInput/TextInput.win32.js +20 -24
- package/Libraries/Components/View/ViewNativeComponent.js +0 -7
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +0 -3
- package/Libraries/Lists/SectionListModern.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +8 -14
- package/Libraries/Modal/Modal.js +0 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +6 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +13 -20
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -21
- package/Libraries/ReactNative/RendererImplementation.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +9 -4
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +3 -3
- package/Libraries/StyleSheet/StyleSheetTypes.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +137 -39
- package/Libraries/StyleSheet/processBoxShadow.js +1 -1
- package/Libraries/StyleSheet/processFilter.js +9 -5
- package/Libraries/Text/Text.win32.js +1 -1
- package/Libraries/Text/TextNativeComponent.js +0 -6
- package/Libraries/Text/TextNativeComponent.win32.js +0 -6
- package/Libraries/Utilities/Appearance.js +108 -84
- package/Libraries/Utilities/DevLoadingView.js +2 -4
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/Libraries/Utilities/createPerformanceLogger.js +0 -9
- package/Libraries/Utilities/stringifyViewConfig.js +22 -0
- package/Libraries/Utilities/useColorScheme.js +3 -3
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/index.js +1 -1
- package/index.win32.js +1 -1
- package/jest/setup.js +0 -4
- package/overrides.json +5 -5
- package/package.json +13 -13
- package/src/private/featureflags/ReactNativeFeatureFlags.js +27 -6
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -2
- package/src/private/fusebox/FuseboxSessionObserver.js +42 -0
- package/src/private/specs/modules/NativeAppearance.js +3 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +4 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +9 -9
- package/src/private/webapis/mutationobserver/MutationObserver.js +4 -2
- package/src/private/webapis/mutationobserver/MutationObserverManager.js +19 -10
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +0 -135
- package/src/private/specs/modules/NativeDebuggerSessionObserver.js +0 -23
package/.flowconfig
CHANGED
|
@@ -54,8 +54,6 @@
|
|
|
54
54
|
.*/node_modules/sample-apps/.*
|
|
55
55
|
.*/node_modules/playground/.*
|
|
56
56
|
|
|
57
|
-
; Ignore templates for 'npx @react-native-community/cli init'
|
|
58
|
-
<PROJECT_ROOT>/packages/react-native/template/.*
|
|
59
57
|
<PROJECT_ROOT>/packages/react-native/sdks/.*
|
|
60
58
|
|
|
61
59
|
; Ignore the codegen e2e tests
|
|
@@ -67,6 +65,9 @@
|
|
|
67
65
|
; Ignore "BUCK" generated dirs
|
|
68
66
|
<PROJECT_ROOT>/\.buckd/
|
|
69
67
|
|
|
68
|
+
; Ignore cache files
|
|
69
|
+
.*/node_modules/.cache*
|
|
70
|
+
|
|
70
71
|
; Ignore the src-win folder - flow files are combined with ones from react-native into the root Libraries folder
|
|
71
72
|
.*/react-native-win32/src-win/.*
|
|
72
73
|
|
|
@@ -159,4 +160,4 @@ untyped-import
|
|
|
159
160
|
untyped-type-import
|
|
160
161
|
|
|
161
162
|
[version]
|
|
162
|
-
^0.
|
|
163
|
+
^0.245.0
|
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,43 @@
|
|
|
2
2
|
"name": "@office-iss/react-native-win32",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Sat, 07 Sep 2024 05:13:20 GMT",
|
|
6
|
+
"version": "0.0.0-canary.262",
|
|
7
|
+
"tag": "@office-iss/react-native-win32_v0.0.0-canary.262",
|
|
8
|
+
"comments": {
|
|
9
|
+
"prerelease": [
|
|
10
|
+
{
|
|
11
|
+
"author": "tatianakapos@microsoft.com",
|
|
12
|
+
"package": "@office-iss/react-native-win32",
|
|
13
|
+
"commit": "55e32071ac30a673c7830f717fcbd1a3a228dcff",
|
|
14
|
+
"comment": "switch to optimized text"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "34109996+chiaramooney@users.noreply.github.com",
|
|
18
|
+
"package": "@office-iss/react-native-win32",
|
|
19
|
+
"commit": "409bf6e085cc1aa6421cff078037f7b3774bd8ec",
|
|
20
|
+
"comment": "Integrate 8/31"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"date": "Thu, 05 Sep 2024 05:13:45 GMT",
|
|
27
|
+
"version": "0.0.0-canary.261",
|
|
28
|
+
"tag": "@office-iss/react-native-win32_v0.0.0-canary.261",
|
|
29
|
+
"comments": {
|
|
30
|
+
"prerelease": [
|
|
31
|
+
{
|
|
32
|
+
"author": "34109996+chiaramooney@users.noreply.github.com",
|
|
33
|
+
"package": "@office-iss/react-native-win32",
|
|
34
|
+
"commit": "277d6f06a3e1bf1650cd9d1e7b4f22e0619968e9",
|
|
35
|
+
"comment": "Integrate 8/20"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"date": "Wed, 28 Aug 2024 05:14:44 GMT",
|
|
6
42
|
"version": "0.0.0-canary.260",
|
|
7
43
|
"tag": "@office-iss/react-native-win32_v0.0.0-canary.260",
|
|
8
44
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
# Change Log - @office-iss/react-native-win32
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
<!-- This log was last generated on Sat, 07 Sep 2024 05:13:20 GMT and should not be manually modified. -->
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
-
## 0.0.0-canary.
|
|
7
|
+
## 0.0.0-canary.262
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Sat, 07 Sep 2024 05:13:20 GMT
|
|
10
10
|
|
|
11
11
|
### Changes
|
|
12
12
|
|
|
13
|
-
-
|
|
13
|
+
- switch to optimized text (tatianakapos@microsoft.com)
|
|
14
|
+
- Integrate 8/31 (34109996+chiaramooney@users.noreply.github.com)
|
|
14
15
|
|
|
16
|
+
## 0.0.0-canary.261
|
|
17
|
+
|
|
18
|
+
Thu, 05 Sep 2024 05:13:45 GMT
|
|
19
|
+
|
|
20
|
+
### Changes
|
|
21
|
+
|
|
22
|
+
- Integrate 8/20 (34109996+chiaramooney@users.noreply.github.com)
|
|
23
|
+
|
|
24
|
+
## 0.0.0-canary.260
|
|
25
|
+
|
|
26
|
+
Wed, 28 Aug 2024 05:14:44 GMT
|
|
27
|
+
|
|
28
|
+
### Changes
|
|
29
|
+
|
|
30
|
+
- integrate 0.76.0-nightly-20240816-17017d2b8 (tatianakapos@microsoft.com)
|
|
31
|
+
|
|
15
32
|
## 0.0.0-canary.259
|
|
16
33
|
|
|
17
34
|
Thu, 22 Aug 2024 05:24:27 GMT
|
|
@@ -23,7 +23,8 @@ function isPlainObject(value: any): boolean {
|
|
|
23
23
|
return (
|
|
24
24
|
value !== null &&
|
|
25
25
|
typeof value === 'object' &&
|
|
26
|
-
Object.getPrototypeOf(value).isPrototypeOf(Object)
|
|
26
|
+
Object.getPrototypeOf(value).isPrototypeOf(Object) &&
|
|
27
|
+
!React.isValidElement(value)
|
|
27
28
|
);
|
|
28
29
|
}
|
|
29
30
|
|
|
@@ -81,10 +82,6 @@ export function hasAnimatedNode(value: any, depth: number = 0): boolean {
|
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
} else if (isPlainObject(value)) {
|
|
84
|
-
// Don't consider React elements
|
|
85
|
-
if (React.isValidElement(value)) {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
85
|
for (const key in value) {
|
|
89
86
|
if (hasAnimatedNode(value[key], depth + 1)) {
|
|
90
87
|
return true;
|
|
@@ -88,6 +88,8 @@ export default class AnimatedProps extends AnimatedNode {
|
|
|
88
88
|
if (this.__isNative && this._animatedView) {
|
|
89
89
|
this.__disconnectAnimatedView();
|
|
90
90
|
}
|
|
91
|
+
this._animatedView = null;
|
|
92
|
+
|
|
91
93
|
for (const key in this._props) {
|
|
92
94
|
const value = this._props[key];
|
|
93
95
|
if (value instanceof AnimatedNode) {
|
|
@@ -25,9 +25,6 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
|
|
|
25
25
|
disableIntervalMomentum: true,
|
|
26
26
|
maintainVisibleContentPosition: true,
|
|
27
27
|
endFillColor: {process: require('../../StyleSheet/processColor').default},
|
|
28
|
-
experimental_boxShadow: {
|
|
29
|
-
process: require('../../StyleSheet/processBoxShadow').default,
|
|
30
|
-
},
|
|
31
28
|
fadingEdgeLength: true,
|
|
32
29
|
nestedScrollEnabled: true,
|
|
33
30
|
overScrollMode: true,
|
|
@@ -46,9 +46,6 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
46
46
|
},
|
|
47
47
|
decelerationRate: true,
|
|
48
48
|
enableSyncOnScroll: true, // Fabric only.
|
|
49
|
-
experimental_boxShadow: {
|
|
50
|
-
process: require('../../StyleSheet/processBoxShadow').default,
|
|
51
|
-
},
|
|
52
49
|
disableIntervalMomentum: true,
|
|
53
50
|
maintainVisibleContentPosition: true,
|
|
54
51
|
pagingEnabled: true,
|
|
@@ -739,9 +739,6 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
|
|
|
739
739
|
},
|
|
740
740
|
borderTopLeftRadius: true,
|
|
741
741
|
borderTopColor: {process: require('../../StyleSheet/processColor').default},
|
|
742
|
-
experimental_boxShadow: {
|
|
743
|
-
process: require('../../StyleSheet/processBoxShadow').default,
|
|
744
|
-
},
|
|
745
742
|
},
|
|
746
743
|
};
|
|
747
744
|
|
|
@@ -1538,15 +1538,26 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1538
1538
|
// Keep the original (potentially nested) style when possible, as React can diff these more efficiently
|
|
1539
1539
|
let _style = props.style;
|
|
1540
1540
|
const flattenedStyle = flattenStyle<TextStyleProp>(props.style);
|
|
1541
|
-
if (
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
{
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1541
|
+
if (flattenedStyle != null) {
|
|
1542
|
+
let overrides: ?{...TextStyleInternal} = null;
|
|
1543
|
+
if (typeof flattenedStyle?.fontWeight === 'number') {
|
|
1544
|
+
overrides = overrides || ({}: {...TextStyleInternal});
|
|
1545
|
+
overrides.fontWeight =
|
|
1546
|
+
// $FlowFixMe[incompatible-cast]
|
|
1547
|
+
(flattenedStyle.fontWeight.toString(): TextStyleInternal['fontWeight']);
|
|
1548
|
+
}
|
|
1549
|
+
|
|
1550
|
+
if (flattenedStyle.verticalAlign != null) {
|
|
1551
|
+
overrides = overrides || ({}: {...TextStyleInternal});
|
|
1552
|
+
overrides.textAlignVertical =
|
|
1553
|
+
verticalAlignToTextAlignVerticalMap[flattenedStyle.verticalAlign];
|
|
1554
|
+
overrides.verticalAlign = undefined;
|
|
1555
|
+
}
|
|
1556
|
+
|
|
1557
|
+
if (overrides != null) {
|
|
1558
|
+
// $FlowFixMe[incompatible-type]
|
|
1559
|
+
_style = [_style, overrides];
|
|
1560
|
+
}
|
|
1550
1561
|
}
|
|
1551
1562
|
|
|
1552
1563
|
if (Platform.OS === 'ios') {
|
|
@@ -1782,20 +1793,6 @@ const ExportedForwardRef: React.AbstractComponent<
|
|
|
1782
1793
|
},
|
|
1783
1794
|
forwardedRef: ReactRefSetter<TextInputInstance>,
|
|
1784
1795
|
) {
|
|
1785
|
-
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
1786
|
-
let style = flattenStyle(restProps.style);
|
|
1787
|
-
|
|
1788
|
-
if (style?.verticalAlign != null) {
|
|
1789
|
-
// $FlowFixMe[prop-missing]
|
|
1790
|
-
// $FlowFixMe[cannot-write]
|
|
1791
|
-
style.textAlignVertical =
|
|
1792
|
-
// $FlowFixMe[invalid-computed-prop]
|
|
1793
|
-
verticalAlignToTextAlignVerticalMap[style.verticalAlign];
|
|
1794
|
-
// $FlowFixMe[prop-missing]
|
|
1795
|
-
// $FlowFixMe[cannot-write]
|
|
1796
|
-
delete style.verticalAlign;
|
|
1797
|
-
}
|
|
1798
|
-
|
|
1799
1796
|
return (
|
|
1800
1797
|
<InternalTextInput
|
|
1801
1798
|
allowFontScaling={allowFontScaling}
|
|
@@ -1832,7 +1829,6 @@ const ExportedForwardRef: React.AbstractComponent<
|
|
|
1832
1829
|
}
|
|
1833
1830
|
{...restProps}
|
|
1834
1831
|
forwardedRef={forwardedRef}
|
|
1835
|
-
style={style}
|
|
1836
1832
|
/>
|
|
1837
1833
|
);
|
|
1838
1834
|
});
|
|
@@ -1645,15 +1645,26 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1645
1645
|
// Keep the original (potentially nested) style when possible, as React can diff these more efficiently
|
|
1646
1646
|
let _style = props.style;
|
|
1647
1647
|
const flattenedStyle = flattenStyle<TextStyleProp>(props.style);
|
|
1648
|
-
if (
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
{
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1648
|
+
if (flattenedStyle != null) {
|
|
1649
|
+
let overrides: ?{...TextStyleInternal} = null;
|
|
1650
|
+
if (typeof flattenedStyle?.fontWeight === 'number') {
|
|
1651
|
+
overrides = overrides || ({}: {...TextStyleInternal});
|
|
1652
|
+
overrides.fontWeight =
|
|
1653
|
+
// $FlowFixMe[incompatible-cast]
|
|
1654
|
+
(flattenedStyle.fontWeight.toString(): TextStyleInternal['fontWeight']);
|
|
1655
|
+
}
|
|
1656
|
+
|
|
1657
|
+
if (flattenedStyle.verticalAlign != null) {
|
|
1658
|
+
overrides = overrides || ({}: {...TextStyleInternal});
|
|
1659
|
+
overrides.textAlignVertical =
|
|
1660
|
+
verticalAlignToTextAlignVerticalMap[flattenedStyle.verticalAlign];
|
|
1661
|
+
overrides.verticalAlign = undefined;
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1664
|
+
if (overrides != null) {
|
|
1665
|
+
// $FlowFixMe[incompatible-type]
|
|
1666
|
+
_style = [_style, overrides];
|
|
1667
|
+
}
|
|
1657
1668
|
}
|
|
1658
1669
|
|
|
1659
1670
|
if (Platform.OS === 'ios') {
|
|
@@ -1917,20 +1928,6 @@ const ExportedForwardRef: React.AbstractComponent<
|
|
|
1917
1928
|
},
|
|
1918
1929
|
forwardedRef: ReactRefSetter<TextInputInstance>,
|
|
1919
1930
|
) {
|
|
1920
|
-
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
1921
|
-
let style = flattenStyle(restProps.style);
|
|
1922
|
-
|
|
1923
|
-
if (style?.verticalAlign != null) {
|
|
1924
|
-
// $FlowFixMe[prop-missing]
|
|
1925
|
-
// $FlowFixMe[cannot-write]
|
|
1926
|
-
style.textAlignVertical =
|
|
1927
|
-
// $FlowFixMe[invalid-computed-prop]
|
|
1928
|
-
verticalAlignToTextAlignVerticalMap[style.verticalAlign];
|
|
1929
|
-
// $FlowFixMe[prop-missing]
|
|
1930
|
-
// $FlowFixMe[cannot-write]
|
|
1931
|
-
delete style.verticalAlign;
|
|
1932
|
-
}
|
|
1933
|
-
|
|
1934
1931
|
return (
|
|
1935
1932
|
<InternalTextInput
|
|
1936
1933
|
allowFontScaling={allowFontScaling}
|
|
@@ -1966,7 +1963,6 @@ const ExportedForwardRef: React.AbstractComponent<
|
|
|
1966
1963
|
}
|
|
1967
1964
|
{...restProps}
|
|
1968
1965
|
forwardedRef={forwardedRef}
|
|
1969
|
-
style={style}
|
|
1970
1966
|
/>
|
|
1971
1967
|
);
|
|
1972
1968
|
});
|
|
@@ -94,17 +94,10 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
94
94
|
borderBlockStartColor: {
|
|
95
95
|
process: require('../../StyleSheet/processColor').default,
|
|
96
96
|
},
|
|
97
|
-
experimental_boxShadow: {
|
|
98
|
-
process: require('../../StyleSheet/processBoxShadow').default,
|
|
99
|
-
},
|
|
100
|
-
|
|
101
97
|
focusable: true,
|
|
102
98
|
overflow: true,
|
|
103
99
|
backfaceVisibility: true,
|
|
104
100
|
experimental_layoutConformance: true,
|
|
105
|
-
experimental_backgroundImage: {
|
|
106
|
-
process: require('../../StyleSheet/processBackgroundImage').default,
|
|
107
|
-
},
|
|
108
101
|
},
|
|
109
102
|
}
|
|
110
103
|
: {
|
|
@@ -113,9 +113,6 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
113
113
|
borderBottomRightRadius: true,
|
|
114
114
|
borderTopRightRadius: true,
|
|
115
115
|
loadingIndicatorSrc: true,
|
|
116
|
-
experimental_boxShadow: {
|
|
117
|
-
process: require('../StyleSheet/processBoxShadow').default,
|
|
118
|
-
},
|
|
119
116
|
},
|
|
120
117
|
}
|
|
121
118
|
: {
|
|
@@ -16,7 +16,7 @@ import type {
|
|
|
16
16
|
SectionBase as _SectionBase,
|
|
17
17
|
VirtualizedSectionListProps,
|
|
18
18
|
} from '@react-native/virtualized-lists';
|
|
19
|
-
import type {AbstractComponent,
|
|
19
|
+
import type {AbstractComponent, ElementRef} from 'react';
|
|
20
20
|
|
|
21
21
|
import Platform from '../Utilities/Platform';
|
|
22
22
|
import {VirtualizedSectionList} from '@react-native/virtualized-lists';
|
|
@@ -56,7 +56,7 @@ type OptionalProps<SectionT: SectionBase<any>> = {|
|
|
|
56
56
|
...
|
|
57
57
|
},
|
|
58
58
|
...
|
|
59
|
-
}) => null |
|
|
59
|
+
}) => null | React.MixedElement,
|
|
60
60
|
/**
|
|
61
61
|
* A marker property for telling the list to re-render (since it implements `PureComponent`). If
|
|
62
62
|
* any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the
|
|
@@ -18,7 +18,7 @@ import type {
|
|
|
18
18
|
Message,
|
|
19
19
|
} from './parseLogBoxLog';
|
|
20
20
|
|
|
21
|
-
import
|
|
21
|
+
import DebuggerSessionObserver from '../../../src/private/fusebox/FuseboxSessionObserver';
|
|
22
22
|
import parseErrorStack from '../../Core/Devtools/parseErrorStack';
|
|
23
23
|
import NativeDevSettings from '../../NativeModules/specs/NativeDevSettings';
|
|
24
24
|
import NativeLogBox from '../../NativeModules/specs/NativeLogBox';
|
|
@@ -198,29 +198,23 @@ function appendNewLog(newLog: LogBoxLog) {
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
export function addLog(log: LogData): void {
|
|
201
|
-
if (
|
|
202
|
-
hostTargetSessionObserverSubscription
|
|
203
|
-
|
|
204
|
-
) {
|
|
205
|
-
hostTargetSessionObserverSubscription =
|
|
206
|
-
NativeDebuggerSessionObserver.subscribe(hasActiveSession => {
|
|
201
|
+
if (hostTargetSessionObserverSubscription == null) {
|
|
202
|
+
hostTargetSessionObserverSubscription = DebuggerSessionObserver.subscribe(
|
|
203
|
+
hasActiveSession => {
|
|
207
204
|
if (hasActiveSession) {
|
|
208
205
|
clearWarnings();
|
|
209
206
|
} else {
|
|
210
207
|
// Reset the flag so that we can show the message again if new warning was emitted
|
|
211
208
|
hasShownFuseboxWarningsMigrationMessage = false;
|
|
212
209
|
}
|
|
213
|
-
}
|
|
210
|
+
},
|
|
211
|
+
);
|
|
214
212
|
}
|
|
215
213
|
|
|
216
214
|
// If Host has Fusebox support
|
|
217
|
-
if (
|
|
218
|
-
log.level === 'warn' &&
|
|
219
|
-
global.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__ &&
|
|
220
|
-
NativeDebuggerSessionObserver != null
|
|
221
|
-
) {
|
|
215
|
+
if (log.level === 'warn' && global.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__) {
|
|
222
216
|
// And there is no active debugging session
|
|
223
|
-
if (!
|
|
217
|
+
if (!DebuggerSessionObserver.hasActiveSession()) {
|
|
224
218
|
showFuseboxWarningsMigrationMessageOnce();
|
|
225
219
|
}
|
|
226
220
|
|
package/Libraries/Modal/Modal.js
CHANGED
|
@@ -166,6 +166,12 @@ const validAttributesForNonEventProps = {
|
|
|
166
166
|
backgroundColor: {process: require('../StyleSheet/processColor').default},
|
|
167
167
|
transform: true,
|
|
168
168
|
transformOrigin: true,
|
|
169
|
+
experimental_backgroundImage: {
|
|
170
|
+
process: require('../StyleSheet/processBackgroundImage').default,
|
|
171
|
+
},
|
|
172
|
+
experimental_boxShadow: {
|
|
173
|
+
process: require('../StyleSheet/processBoxShadow').default,
|
|
174
|
+
},
|
|
169
175
|
experimental_filter: {
|
|
170
176
|
process: require('../StyleSheet/processFilter').default,
|
|
171
177
|
},
|
|
@@ -17,7 +17,6 @@ import type {
|
|
|
17
17
|
import getNativeComponentAttributes from '../ReactNative/getNativeComponentAttributes';
|
|
18
18
|
import UIManager from '../ReactNative/UIManager';
|
|
19
19
|
import * as ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';
|
|
20
|
-
import verifyComponentAttributeEquivalence from '../Utilities/verifyComponentAttributeEquivalence';
|
|
21
20
|
import * as StaticViewConfigValidator from './StaticViewConfigValidator';
|
|
22
21
|
import {createViewConfig} from './ViewConfig';
|
|
23
22
|
import invariant from 'invariant';
|
|
@@ -35,7 +34,6 @@ let getRuntimeConfig;
|
|
|
35
34
|
export function setRuntimeConfigProvider(
|
|
36
35
|
runtimeConfigProvider: (name: string) => ?{
|
|
37
36
|
native: boolean,
|
|
38
|
-
strict: boolean,
|
|
39
37
|
verify: boolean,
|
|
40
38
|
},
|
|
41
39
|
): void {
|
|
@@ -55,9 +53,8 @@ export function get<Config>(
|
|
|
55
53
|
viewConfigProvider: () => PartialViewConfig,
|
|
56
54
|
): HostComponent<Config> {
|
|
57
55
|
ReactNativeViewConfigRegistry.register(name, () => {
|
|
58
|
-
const {native,
|
|
56
|
+
const {native, verify} = getRuntimeConfig?.(name) ?? {
|
|
59
57
|
native: !global.RN$Bridgeless,
|
|
60
|
-
strict: false,
|
|
61
58
|
verify: false,
|
|
62
59
|
};
|
|
63
60
|
|
|
@@ -92,23 +89,19 @@ export function get<Config>(
|
|
|
92
89
|
? createViewConfig(viewConfigProvider())
|
|
93
90
|
: viewConfig;
|
|
94
91
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
const validationOutput = StaticViewConfigValidator.validate(
|
|
93
|
+
name,
|
|
94
|
+
nativeViewConfig,
|
|
95
|
+
staticViewConfig,
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
if (validationOutput.type === 'invalid') {
|
|
99
|
+
console.error(
|
|
100
|
+
StaticViewConfigValidator.stringifyValidationResult(
|
|
101
|
+
name,
|
|
102
|
+
validationOutput,
|
|
103
|
+
),
|
|
100
104
|
);
|
|
101
|
-
|
|
102
|
-
if (validationOutput.type === 'invalid') {
|
|
103
|
-
console.error(
|
|
104
|
-
StaticViewConfigValidator.stringifyValidationResult(
|
|
105
|
-
name,
|
|
106
|
-
validationOutput,
|
|
107
|
-
),
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
} else {
|
|
111
|
-
verifyComponentAttributeEquivalence(nativeViewConfig, staticViewConfig);
|
|
112
105
|
}
|
|
113
106
|
}
|
|
114
107
|
|
|
@@ -22,11 +22,6 @@ export type Difference =
|
|
|
22
22
|
path: Array<string>,
|
|
23
23
|
nativeValue: mixed,
|
|
24
24
|
staticValue: mixed,
|
|
25
|
-
}
|
|
26
|
-
| {
|
|
27
|
-
type: 'unexpected',
|
|
28
|
-
path: Array<string>,
|
|
29
|
-
staticValue: mixed,
|
|
30
25
|
};
|
|
31
26
|
|
|
32
27
|
export type ValidationResult = ValidResult | InvalidResult;
|
|
@@ -90,8 +85,6 @@ export function stringifyValidationResult(
|
|
|
90
85
|
return `- '${path.join('.')}' is missing.`;
|
|
91
86
|
case 'unequal':
|
|
92
87
|
return `- '${path.join('.')}' is the wrong value.`;
|
|
93
|
-
case 'unexpected':
|
|
94
|
-
return `- '${path.join('.')}' is present but not expected to be.`;
|
|
95
88
|
}
|
|
96
89
|
}),
|
|
97
90
|
'',
|
|
@@ -145,20 +138,6 @@ function accumulateDifferences(
|
|
|
145
138
|
});
|
|
146
139
|
}
|
|
147
140
|
}
|
|
148
|
-
|
|
149
|
-
for (const staticKey in staticObject) {
|
|
150
|
-
if (
|
|
151
|
-
!nativeObject.hasOwnProperty(staticKey) &&
|
|
152
|
-
// $FlowFixMe[invalid-computed-prop]
|
|
153
|
-
!isIgnored(staticObject[staticKey])
|
|
154
|
-
) {
|
|
155
|
-
differences.push({
|
|
156
|
-
path: [...path, staticKey],
|
|
157
|
-
type: 'unexpected',
|
|
158
|
-
staticValue: staticObject[staticKey],
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
141
|
}
|
|
163
142
|
|
|
164
143
|
function ifObject(value: mixed): ?{...} {
|
|
@@ -14,7 +14,7 @@ import type {
|
|
|
14
14
|
Node,
|
|
15
15
|
} from '../Renderer/shims/ReactNativeTypes';
|
|
16
16
|
import type ReactFabricHostComponent from './ReactFabricPublicInstance/ReactFabricHostComponent';
|
|
17
|
-
import type {
|
|
17
|
+
import type {ElementRef, ElementType} from 'react';
|
|
18
18
|
|
|
19
19
|
import {
|
|
20
20
|
onCaughtError,
|
|
@@ -28,7 +28,7 @@ export function renderElement({
|
|
|
28
28
|
useFabric,
|
|
29
29
|
useConcurrentRoot,
|
|
30
30
|
}: {
|
|
31
|
-
element:
|
|
31
|
+
element: React.MixedElement,
|
|
32
32
|
rootTag: number,
|
|
33
33
|
useFabric: boolean,
|
|
34
34
|
useConcurrentRoot: boolean,
|
|
@@ -7,10 +7,15 @@
|
|
|
7
7
|
* @noformat
|
|
8
8
|
* @nolint
|
|
9
9
|
* @flow strict
|
|
10
|
-
* @generated SignedSource<<
|
|
10
|
+
* @generated SignedSource<<89361333bb6b688486e35849a9c669a6>>
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import type {
|
|
13
|
+
import type {
|
|
14
|
+
ElementRef,
|
|
15
|
+
ElementType,
|
|
16
|
+
MixedElement,
|
|
17
|
+
AbstractComponent,
|
|
18
|
+
} from 'react';
|
|
14
19
|
|
|
15
20
|
export type MeasureOnSuccessCallback = (
|
|
16
21
|
x: number,
|
|
@@ -222,7 +227,7 @@ export type ReactNativeType = {
|
|
|
222
227
|
eventType: string,
|
|
223
228
|
): void,
|
|
224
229
|
render(
|
|
225
|
-
element:
|
|
230
|
+
element: MixedElement,
|
|
226
231
|
containerTag: number,
|
|
227
232
|
callback: ?() => void,
|
|
228
233
|
options: ?RenderRootOptions,
|
|
@@ -257,7 +262,7 @@ export type ReactFabricType = {
|
|
|
257
262
|
eventType: string,
|
|
258
263
|
): void,
|
|
259
264
|
render(
|
|
260
|
-
element:
|
|
265
|
+
element: MixedElement,
|
|
261
266
|
containerTag: number,
|
|
262
267
|
callback: ?() => void,
|
|
263
268
|
concurrentRoot: ?boolean,
|
|
@@ -276,10 +276,10 @@ export type BlendMode =
|
|
|
276
276
|
export type GradientValue = {
|
|
277
277
|
type: 'linearGradient';
|
|
278
278
|
// Angle or direction enums
|
|
279
|
-
direction
|
|
280
|
-
colorStops:
|
|
279
|
+
direction?: string | undefined;
|
|
280
|
+
colorStops: ReadonlyArray<{
|
|
281
281
|
color: ColorValue;
|
|
282
|
-
|
|
282
|
+
positions?: ReadonlyArray<string[]> | undefined;
|
|
283
283
|
}>;
|
|
284
284
|
};
|
|
285
285
|
|