/** * 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 "RCTPlatform.h" #import #import "RCTUtils.h" @implementation RCTPlatform static NSString *interfaceIdiom(UIUserInterfaceIdiom idiom) { switch(idiom) { case UIUserInterfaceIdiomPhone: return @"phone"; case UIUserInterfaceIdiomPad: return @"pad"; case UIUserInterfaceIdiomTV: return @"tv"; case UIUserInterfaceIdiomCarPlay: return @"carplay"; default: return @"unknown"; } } static BOOL isTestingEnvironment(void) { NSDictionary *environment = [[NSProcessInfo processInfo] environment]; return [environment[@"IS_TESTING"] boolValue]; } RCT_EXPORT_MODULE(PlatformConstants) - (NSDictionary *)constantsToExport { UIDevice *device = [UIDevice currentDevice]; return @{ @"forceTouchAvailable": @(RCTForceTouchAvailable()), @"osVersion": [device systemVersion], @"systemName": [device systemName], @"interfaceIdiom": interfaceIdiom([device userInterfaceIdiom]), @"isTesting": @(isTestingEnvironment()), }; } @end