12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /*
- * 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 "RCTActivityIndicatorViewManager.h"
- #import "RCTActivityIndicatorView.h"
- #import "RCTConvert.h"
- @implementation RCTConvert (UIActivityIndicatorView)
- // NOTE: It's pointless to support UIActivityIndicatorViewStyleGray
- // as we can set the color to any arbitrary value that we want to
- RCT_ENUM_CONVERTER(
- UIActivityIndicatorViewStyle,
- (@{
- @"large" : @(UIActivityIndicatorViewStyleWhiteLarge),
- @"small" : @(UIActivityIndicatorViewStyleWhite),
- }),
- UIActivityIndicatorViewStyleWhiteLarge,
- integerValue)
- @end
- @implementation RCTActivityIndicatorViewManager
- RCT_EXPORT_MODULE()
- - (UIView *)view
- {
- return [RCTActivityIndicatorView new];
- }
- RCT_EXPORT_VIEW_PROPERTY(color, UIColor)
- RCT_EXPORT_VIEW_PROPERTY(hidesWhenStopped, BOOL)
- RCT_CUSTOM_VIEW_PROPERTY(size, UIActivityIndicatorViewStyle, UIActivityIndicatorView)
- {
- /*
- Setting activityIndicatorViewStyle overrides the color, so restore the original color
- after setting the indicator style.
- */
- UIColor *oldColor = view.color;
- view.activityIndicatorViewStyle =
- json ? [RCTConvert UIActivityIndicatorViewStyle:json] : defaultView.activityIndicatorViewStyle;
- view.color = oldColor;
- }
- RCT_CUSTOM_VIEW_PROPERTY(animating, BOOL, UIActivityIndicatorView)
- {
- BOOL animating = json ? [RCTConvert BOOL:json] : [defaultView isAnimating];
- if (animating != [view isAnimating]) {
- if (animating) {
- [view startAnimating];
- } else {
- [view stopAnimating];
- }
- }
- }
- @end
|