mirror of
https://github.com/status-im/react-native.git
synced 2025-01-09 17:15:54 +00:00
7e869b9d0a
Summary: In theory, we should be able to animate any non-layout property, including custom ones. While there is still work to be done on the native side to fully enable this, we should start by dropping the prop whitelist. Closes https://github.com/facebook/react-native/pull/10658 Differential Revision: D4379031 Pulled By: ericvicenti fbshipit-source-id: fe9c30ea101e93a8b260d7d09a909fafbb82fee6
86 lines
2.8 KiB
Objective-C
86 lines
2.8 KiB
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 <Foundation/Foundation.h>
|
|
|
|
#import <React/RCTUIManager.h>
|
|
#import <React/RCTBridgeModule.h>
|
|
|
|
#import "RCTValueAnimatedNode.h"
|
|
|
|
@interface RCTNativeAnimatedNodesManager : NSObject
|
|
|
|
- (nonnull instancetype)initWithUIManager:(nonnull RCTUIManager *)uiManager;
|
|
|
|
- (void)updateAnimations;
|
|
|
|
// graph
|
|
|
|
- (void)createAnimatedNode:(nonnull NSNumber *)tag
|
|
config:(NSDictionary<NSString *, id> *__nonnull)config;
|
|
|
|
- (void)connectAnimatedNodes:(nonnull NSNumber *)parentTag
|
|
childTag:(nonnull NSNumber *)childTag;
|
|
|
|
- (void)disconnectAnimatedNodes:(nonnull NSNumber *)parentTag
|
|
childTag:(nonnull NSNumber *)childTag;
|
|
|
|
- (void)connectAnimatedNodeToView:(nonnull NSNumber *)nodeTag
|
|
viewTag:(nonnull NSNumber *)viewTag
|
|
viewName:(nonnull NSString *)viewName;
|
|
|
|
- (void)disconnectAnimatedNodeFromView:(nonnull NSNumber *)nodeTag
|
|
viewTag:(nonnull NSNumber *)viewTag;
|
|
|
|
- (void)dropAnimatedNode:(nonnull NSNumber *)tag;
|
|
|
|
// mutations
|
|
|
|
- (void)setAnimatedNodeValue:(nonnull NSNumber *)nodeTag
|
|
value:(nonnull NSNumber *)value;
|
|
|
|
- (void)setAnimatedNodeOffset:(nonnull NSNumber *)nodeTag
|
|
offset:(nonnull NSNumber *)offset;
|
|
|
|
- (void)flattenAnimatedNodeOffset:(nonnull NSNumber *)nodeTag;
|
|
|
|
- (void)extractAnimatedNodeOffset:(nonnull NSNumber *)nodeTag;
|
|
|
|
// drivers
|
|
|
|
- (void)startAnimatingNode:(nonnull NSNumber *)animationId
|
|
nodeTag:(nonnull NSNumber *)nodeTag
|
|
config:(NSDictionary<NSString *, id> *__nonnull)config
|
|
endCallback:(nullable RCTResponseSenderBlock)callBack;
|
|
|
|
- (void)stopAnimation:(nonnull NSNumber *)animationId;
|
|
|
|
- (void)stopAnimationLoop;
|
|
|
|
// events
|
|
|
|
- (void)addAnimatedEventToView:(nonnull NSNumber *)viewTag
|
|
eventName:(nonnull NSString *)eventName
|
|
eventMapping:(NSDictionary<NSString *, id> *__nonnull)eventMapping;
|
|
|
|
- (void)removeAnimatedEventFromView:(nonnull NSNumber *)viewTag
|
|
eventName:(nonnull NSString *)eventName;
|
|
|
|
- (void)handleAnimatedEvent:(nonnull id<RCTEvent>)event;
|
|
|
|
// listeners
|
|
|
|
- (void)startListeningToAnimatedNodeValue:(nonnull NSNumber *)tag
|
|
valueObserver:(nonnull id<RCTValueAnimatedNodeObserver>)valueObserver;
|
|
|
|
- (void)stopListeningToAnimatedNodeValue:(nonnull NSNumber *)tag
|
|
valueObserver:(nonnull id<RCTValueAnimatedNodeObserver>)valueObserver;
|
|
|
|
@end
|