react-native/React/Views/RCTUIActivityIndicatorViewM...

59 lines
1.6 KiB
Mathematica
Raw Normal View History

/**
* 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 "RCTUIActivityIndicatorViewManager.h"
#import "RCTConvert.h"
@implementation RCTConvert (UIActivityIndicatorView)
RCT_ENUM_CONVERTER(UIActivityIndicatorViewStyle, (@{
@"white-large": @(UIActivityIndicatorViewStyleWhiteLarge),
@"large-white": @(UIActivityIndicatorViewStyleWhiteLarge),
@"white": @(UIActivityIndicatorViewStyleWhite),
@"gray": @(UIActivityIndicatorViewStyleGray),
}), UIActivityIndicatorViewStyleWhiteLarge, integerValue)
@end
@implementation RCTUIActivityIndicatorViewManager
RCT_EXPORT_MODULE(UIActivityIndicatorViewManager)
- (UIView *)view
{
return [[UIActivityIndicatorView alloc] init];
}
RCT_EXPORT_VIEW_PROPERTY(activityIndicatorViewStyle, UIActivityIndicatorViewStyle)
RCT_EXPORT_VIEW_PROPERTY(color, UIColor)
RCT_CUSTOM_VIEW_PROPERTY(animating, BOOL, UIActivityIndicatorView)
{
BOOL animating = json ? [json boolValue] : [defaultView isAnimating];
if (animating != [view isAnimating]) {
if (animating) {
[view startAnimating];
} else {
[view stopAnimating];
}
}
}
- (NSDictionary *)constantsToExport
{
return
@{
@"StyleWhite": @(UIActivityIndicatorViewStyleWhite),
@"StyleWhiteLarge": @(UIActivityIndicatorViewStyleWhiteLarge),
@"StyleGray": @(UIActivityIndicatorViewStyleGray),
};
}
@end