/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #import "RCTEventAnimation.h" @implementation RCTEventAnimation { NSArray *_eventPath; } - (instancetype)initWithEventPath:(NSArray *)eventPath valueNode:(RCTValueAnimatedNode *)valueNode { if ((self = [super init])) { _eventPath = eventPath; _valueNode = valueNode; } return self; } - (void)updateWithEvent:(id)event { NSArray *args = event.arguments; // Supported events args are in the following order: viewTag, eventName, eventData. id currentValue = args[2]; for (NSString *key in _eventPath) { currentValue = [currentValue valueForKey:key]; } _valueNode.value = ((NSNumber *)currentValue).doubleValue; [_valueNode setNeedsUpdate]; } @end