#import "REASetNode.h" #import "REAUtils.h" #import #import #import "REAValueNode.h" #import "REANodesManager.h" @implementation REASetNode { NSNumber *_whatNodeID; NSNumber *_valueNodeID; } - (instancetype)initWithID:(REANodeID)nodeID config:(NSDictionary *)config { if ((self = [super initWithID:nodeID config:config])) { _whatNodeID = [RCTConvert NSNumber:config[@"what"]]; REA_LOG_ERROR_IF_NIL(_whatNodeID, @"Reanimated: First argument passed to set node is either of wrong type or is missing."); _valueNodeID = [RCTConvert NSNumber:config[@"value"]]; REA_LOG_ERROR_IF_NIL(_valueNodeID, @"Reanimated: Second argument passed to set node is either of wrong type or is missing."); } return self; } - (id)evaluate { NSNumber *newValue = [[self.nodesManager findNodeByID:_valueNodeID] value]; REAValueNode *what = (REAValueNode *)[self.nodesManager findNodeByID:_whatNodeID]; [what setValue:newValue]; return newValue; } @end