mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/46406 As title Second attempt at landing the new name. There were 2 issues previously which led us to revert. 1. **Error on workrooms tests.** This ended up not being caused by us but rather by D61896776. After renaming the error changed which might've caused the renaming to be blamed for the issue. It has since been resolved 2. **FB crash** FB was crashing when using drop-shadow after renaming. For some reason after renaming `filter` an invalid stylex property was making FB crash. We don't know why renaming uncovered the issue but the the code was using unsupported features on RN (`calc` & `stylex`) which then led to passing a raw unsupported value for `filter` and crashing on the `processFilter` function. FB was fixed here D62407454 to prevent crashing after landing this diff Changelog: [General] [Changed] - Add official `filter` CSSProperty. Reviewed By: NickGerleman Differential Revision: D62401985 fbshipit-source-id: 14422603c40b7ddf8300029165a85655354075c3
214 lines
4.8 KiB
JavaScript
214 lines
4.8 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format strict-local
|
|
* @flow strict-local
|
|
*/
|
|
|
|
import type {AnyAttributeType} from '../../Renderer/shims/ReactNativeTypes';
|
|
|
|
import processAspectRatio from '../../StyleSheet/processAspectRatio';
|
|
import processBackgroundImage from '../../StyleSheet/processBackgroundImage';
|
|
import processBoxShadow from '../../StyleSheet/processBoxShadow';
|
|
import processColor from '../../StyleSheet/processColor';
|
|
import processFilter from '../../StyleSheet/processFilter';
|
|
import processFontVariant from '../../StyleSheet/processFontVariant';
|
|
import processTransform from '../../StyleSheet/processTransform';
|
|
import processTransformOrigin from '../../StyleSheet/processTransformOrigin';
|
|
import sizesDiffer from '../../Utilities/differ/sizesDiffer';
|
|
|
|
const colorAttributes = {process: processColor};
|
|
|
|
const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {
|
|
/**
|
|
* Layout
|
|
*/
|
|
alignContent: true,
|
|
alignItems: true,
|
|
alignSelf: true,
|
|
aspectRatio: {process: processAspectRatio},
|
|
borderBottomWidth: true,
|
|
borderEndWidth: true,
|
|
borderLeftWidth: true,
|
|
borderRightWidth: true,
|
|
borderStartWidth: true,
|
|
borderTopWidth: true,
|
|
columnGap: true,
|
|
borderWidth: true,
|
|
bottom: true,
|
|
direction: true,
|
|
display: true,
|
|
end: true,
|
|
flex: true,
|
|
flexBasis: true,
|
|
flexDirection: true,
|
|
flexGrow: true,
|
|
flexShrink: true,
|
|
flexWrap: true,
|
|
gap: true,
|
|
height: true,
|
|
inset: true,
|
|
insetBlock: true,
|
|
insetBlockEnd: true,
|
|
insetBlockStart: true,
|
|
insetInline: true,
|
|
insetInlineEnd: true,
|
|
insetInlineStart: true,
|
|
justifyContent: true,
|
|
left: true,
|
|
margin: true,
|
|
marginBlock: true,
|
|
marginBlockEnd: true,
|
|
marginBlockStart: true,
|
|
marginBottom: true,
|
|
marginEnd: true,
|
|
marginHorizontal: true,
|
|
marginInline: true,
|
|
marginInlineEnd: true,
|
|
marginInlineStart: true,
|
|
marginLeft: true,
|
|
marginRight: true,
|
|
marginStart: true,
|
|
marginTop: true,
|
|
marginVertical: true,
|
|
maxHeight: true,
|
|
maxWidth: true,
|
|
minHeight: true,
|
|
minWidth: true,
|
|
overflow: true,
|
|
padding: true,
|
|
paddingBlock: true,
|
|
paddingBlockEnd: true,
|
|
paddingBlockStart: true,
|
|
paddingBottom: true,
|
|
paddingEnd: true,
|
|
paddingHorizontal: true,
|
|
paddingInline: true,
|
|
paddingInlineEnd: true,
|
|
paddingInlineStart: true,
|
|
paddingLeft: true,
|
|
paddingRight: true,
|
|
paddingStart: true,
|
|
paddingTop: true,
|
|
paddingVertical: true,
|
|
position: true,
|
|
right: true,
|
|
rowGap: true,
|
|
start: true,
|
|
top: true,
|
|
width: true,
|
|
zIndex: true,
|
|
|
|
/**
|
|
* Shadow
|
|
*/
|
|
elevation: true,
|
|
shadowColor: colorAttributes,
|
|
shadowOffset: {diff: sizesDiffer},
|
|
shadowOpacity: true,
|
|
shadowRadius: true,
|
|
|
|
/**
|
|
* Transform
|
|
*/
|
|
transform: {process: processTransform},
|
|
transformOrigin: {process: processTransformOrigin},
|
|
|
|
/**
|
|
* Filter
|
|
*/
|
|
filter: {process: processFilter},
|
|
|
|
/**
|
|
* MixBlendMode
|
|
*/
|
|
experimental_mixBlendMode: true,
|
|
|
|
/**
|
|
* Isolation
|
|
*/
|
|
isolation: true,
|
|
|
|
/*
|
|
* BoxShadow
|
|
*/
|
|
boxShadow: {process: processBoxShadow},
|
|
|
|
/**
|
|
* Linear Gradient
|
|
*/
|
|
experimental_backgroundImage: {process: processBackgroundImage},
|
|
|
|
/**
|
|
* View
|
|
*/
|
|
backfaceVisibility: true,
|
|
backgroundColor: colorAttributes,
|
|
borderBlockColor: colorAttributes,
|
|
borderBlockEndColor: colorAttributes,
|
|
borderBlockStartColor: colorAttributes,
|
|
borderBottomColor: colorAttributes,
|
|
borderBottomEndRadius: true,
|
|
borderBottomLeftRadius: true,
|
|
borderBottomRightRadius: true,
|
|
borderBottomStartRadius: true,
|
|
borderColor: colorAttributes,
|
|
borderCurve: true,
|
|
borderEndColor: colorAttributes,
|
|
borderEndEndRadius: true,
|
|
borderEndStartRadius: true,
|
|
borderLeftColor: colorAttributes,
|
|
borderRadius: true,
|
|
borderRightColor: colorAttributes,
|
|
borderStartColor: colorAttributes,
|
|
borderStartEndRadius: true,
|
|
borderStartStartRadius: true,
|
|
borderStyle: true,
|
|
borderTopColor: colorAttributes,
|
|
borderTopEndRadius: true,
|
|
borderTopLeftRadius: true,
|
|
borderTopRightRadius: true,
|
|
borderTopStartRadius: true,
|
|
cursor: true,
|
|
opacity: true,
|
|
pointerEvents: true,
|
|
|
|
/**
|
|
* Text
|
|
*/
|
|
color: colorAttributes,
|
|
fontFamily: true,
|
|
fontSize: true,
|
|
fontStyle: true,
|
|
fontVariant: {process: processFontVariant},
|
|
fontWeight: true,
|
|
includeFontPadding: true,
|
|
letterSpacing: true,
|
|
lineHeight: true,
|
|
textAlign: true,
|
|
textAlignVertical: true,
|
|
textDecorationColor: colorAttributes,
|
|
textDecorationLine: true,
|
|
textDecorationStyle: true,
|
|
textShadowColor: colorAttributes,
|
|
textShadowOffset: true,
|
|
textShadowRadius: true,
|
|
textTransform: true,
|
|
userSelect: true,
|
|
verticalAlign: true,
|
|
writingDirection: true,
|
|
|
|
/**
|
|
* Image
|
|
*/
|
|
overlayColor: colorAttributes,
|
|
resizeMode: true,
|
|
tintColor: colorAttributes,
|
|
objectFit: true,
|
|
};
|
|
|
|
module.exports = ReactNativeStyleAttributes;
|