mirror of
https://github.com/status-im/react-native.git
synced 2025-01-11 01:56:26 +00:00
eb96b7fabc
Summary: This diff addresses the issues raised by kmagiera in https://github.com/facebook/react-native/pull/7884. Transforms should be applied in the order they are defined, just like in `processTransform.js`. A scale applied before a translation, for instance, should give a different result than a translation applied before a scale. We leverage CATransform3D to do the heavy lifting. A concatenated transform is passed all the way to `RCTViewPropertyMapper`. It is compared with the transform currently applied to the view, and if different, applied. The same approach is used for opacity. I think it makes the most sense to do this diffing in `RCTViewPropertyMapper`, as opposed to creating and cleaning up an `_updatedPropsDictionary` each frame in `RCTTransformAnimatedNode` and `RCTStyleAnimatedNode`. The node should keep its full value; applying a minimal set of altered props is an optimization. The higher up this optimization is implemented, the more assumptions it makes. e.g. that there will only ever be a sing Closes https://github.com/facebook/react-native/pull/9050 Differential Revision: D3658139 fbshipit-source-id: ad6286762ef734084cbdf83c9bd9241190302d34
17 lines
462 B
Objective-C
17 lines
462 B
Objective-C
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import "RCTAnimatedNode.h"
|
|
|
|
@interface RCTStyleAnimatedNode : RCTAnimatedNode
|
|
|
|
- (NSDictionary<NSString *, NSObject *> *)updatedPropsDictionary;
|
|
|
|
@end
|