File tree Expand file tree Collapse file tree 3 files changed +35
-1
lines changed
packages/react-native-web/src Expand file tree Collapse file tree 3 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -151,6 +151,28 @@ describe('StyleSheet/preprocess', () => {
151151 } ) ;
152152 } ) ;
153153 } ) ;
154+
155+ describe ( 'transformOrigin' , ( ) => {
156+ // passthrough if transformOrigin value is ever a string
157+ test ( 'string' , ( ) => {
158+ const transformOrigin = '2px 30% 10px' ;
159+ const style = { transformOrigin } ;
160+ const resolved = preprocess ( style ) ;
161+
162+ expect ( resolved ) . toEqual ( { transformOrigin } ) ;
163+ } ) ;
164+
165+ test ( 'array' , ( ) => {
166+ const style = {
167+ transformOrigin : [ 2 , '30%' , 10 ]
168+ } ;
169+ const resolved = preprocess ( style ) ;
170+
171+ expect ( resolved ) . toEqual ( {
172+ transformOrigin : '2px 30% 10px'
173+ } ) ;
174+ } ) ;
175+ } ) ;
154176 } ) ;
155177
156178 describe ( 'preprocesses multiple shadow styles into a single declaration' , ( ) => {
Original file line number Diff line number Diff line change @@ -73,6 +73,13 @@ export const createTransformValue = (value: Array<Object>): string => {
7373 return value . map ( mapTransform ) . join ( ' ' ) ;
7474} ;
7575
76+ // [2, '30%', 10] => '2px 30% 10px'
77+ export const createTransformOriginValue = (
78+ value : Array < number | string >
79+ ) : string => {
80+ return value . map ( ( v ) => normalizeValueWithProperty ( v ) ) . join ( ' ' ) ;
81+ } ;
82+
7683const PROPERTIES_STANDARD : { [ key : string ] : string } = {
7784 borderBottomEndRadius : 'borderEndEndRadius' ,
7885 borderBottomStartRadius : 'borderEndStartRadius' ,
@@ -210,6 +217,11 @@ export const preprocess = <T: {| [key: string]: any |}>(
210217 value = createTransformValue ( value ) ;
211218 }
212219 nextStyle.transform = value;
220+ } else if ( prop === 'transformOrigin ') {
221+ if ( Array . isArray ( value ) ) {
222+ value = createTransformOriginValue ( value ) ;
223+ }
224+ nextStyle.transformOrigin = value;
213225 } else {
214226 nextStyle [ prop ] = value ;
215227 }
Original file line number Diff line number Diff line change @@ -341,6 +341,6 @@ export type TransformStyles = {|
341341 | { | + translateZ : NumberOrString | }
342342 | { | + translate3d : string | }
343343 > ,
344- transformOrigin ?: ?string ,
344+ transformOrigin ?: ?string | Array < NumberOrString > ,
345345 transformStyle ?: ?( 'flat' | 'preserve-3d' )
346346| } ;
You can’t perform that action at this time.
0 commit comments