hunk.code_window: You should only attempt to render this if [`AppleAuthentication.isAvailableAsync()`](#appleauthenticationisavailableasync) resolves to `true`. This component will render nothing if it is not available and you will get a warning in development mode.
   The properties of this component extend from `View`; however, you should not attempt to set `backgroundColor` or `borderRadius` with the `style` property. This will not work and is against the App Store Guidelines. Instead, you should use the `buttonStyle` property to choose one of the predefined color styles and the `cornerRadius` property to change the border radius of the button.
   #### `AppleAuthentication.AppleAuthenticationButtonProps`
   - **onPress (_function_)** - The method to call when the user presses the button. You should call [`AppleAuthentication.signInAsync`](#appleauthenticationsigninasyncoptions) in here.
  
hunk.labels: keep keep keep keep add keep keep keep
hunk.after_edit: Make sure to attach height and width via the style props as without these styles, the button will not appear on the screen.
  
hunk.file_path: docs/pages/versions/unversioned/sdk/apple-authentication.md
hunk.type: add
file: /**
   * 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 <UIKit/UIKit.h>
  
  #import <ReactABI33_0_0/ABI33_0_0RCTDefines.h>
  
  /**
   * Bitmask defines how size constrains from `-[UIView sizeThatFits:]`
   * are translated to `-[ABI33_0_0RCTSurface sizeThatFitsMinimumSize:maximumSize:]`.
   */
  typedef NS_OPTIONS(NSInteger, ABI33_0_0RCTSurfaceSizeMeasureMode) {
    ABI33_0_0RCTSurfaceSizeMeasureModeWidthUndefined    = 0 << 0,
    ABI33_0_0RCTSurfaceSizeMeasureModeWidthExact        = 1 << 0,
    ABI33_0_0RCTSurfaceSizeMeasureModeWidthAtMost       = 2 << 0,
    ABI33_0_0RCTSurfaceSizeMeasureModeHeightUndefined   = 0 << 2,
    ABI33_0_0RCTSurfaceSizeMeasureModeHeightExact       = 1 << 2,
    ABI33_0_0RCTSurfaceSizeMeasureModeHeightAtMost      = 2 << 2,
  };
  
  /**
   * Returns size constraints based on `size` and `sizeMeasureMode`.
   */
  ABI33_0_0RCT_EXTERN void ABI33_0_0RCTSurfaceMinimumSizeAndMaximumSizeFromSizeAndSizeMeasureMode(
    CGSize size,
    ABI33_0_0RCTSurfaceSizeMeasureMode sizeMeasureMode,
    CGSize *minimumSize,
    CGSize *maximumSize
  );
  