/** * 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 "RCTPlatform.h" #import #import "RCTUtils.h" #import "RCTVersion.h" 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"; } } @implementation RCTPlatform RCT_EXPORT_MODULE(PlatformConstants) + (BOOL)requiresMainQueueSetup { return YES; } - (NSDictionary *)constantsToExport { return [self getConstants]; } - (NSDictionary *)getConstants { UIDevice *device = [UIDevice currentDevice]; return @{ @"forceTouchAvailable": @(RCTForceTouchAvailable()), @"osVersion": [device systemVersion], @"systemName": [device systemName], @"interfaceIdiom": interfaceIdiom([device userInterfaceIdiom]), @"isTesting": @(RCTRunningInTestEnvironment()), @"reactNativeVersion": RCTGetReactNativeVersion(), }; } @end