hunk.code_window: NSString *ABI15_0_0EXWebBrowserErrorCode = @"ABI15_0_0EXWebBrowser";
   @implementation ABI15_0_0EXWebBrowser
   {
     ABI15_0_0RCTPromiseResolveBlock _redirectResolve;
     ABI15_0_0RCTPromiseRejectBlock _redirectReject;
     UIStatusBarStyle _initialStatusBarStyle;
   }
   ABI15_0_0RCT_EXPORT_MODULE(ExponentWebBrowser)
  
hunk.labels: keep keep keep keep keep replace replace keep keep keep keep
hunk.file_path: ios/versioned-react-native/ABI15_0_0/Exponent/Modules/Api/ABI15_0_0EXWebBrowser.m
hunk.type: replace
file: package abi10_0_0.host.exp.exponent.modules.api.components.maps;
  
  import abi10_0_0.com.facebook.react.common.MapBuilder;
  import abi10_0_0.com.facebook.react.uimanager.LayoutShadowNode;
  import abi10_0_0.com.facebook.react.uimanager.ThemedReactContext;
  import abi10_0_0.com.facebook.react.uimanager.ViewGroupManager;
  import abi10_0_0.com.facebook.react.uimanager.annotations.ReactProp;
  
  import java.util.Map;
  
  import javax.annotation.Nullable;
  
  public class AirMapCalloutManager extends ViewGroupManager<AirMapCallout> {
  
      @Override
      public String getName() {
          return "AIRMapCallout";
      }
  
      @Override
      public AirMapCallout createViewInstance(ThemedReactContext context) {
          return new AirMapCallout(context);
      }
  
      @ReactProp(name = "tooltip", defaultBoolean = false)
      public void setTooltip(AirMapCallout view, boolean tooltip) {
          view.setTooltip(tooltip);
      }
  
      @Override
      public
      @Nullable
      Map getExportedCustomDirectEventTypeConstants() {
          return MapBuilder.of(
                  "onPress", MapBuilder.of("registrationName", "onPress")
          );
      }
  
      @Override
      public LayoutShadowNode createShadowNodeInstance() {
          // we use a custom shadow node that emits the width/height of the view
          // after layout with the updateExtraData method. Without this, we can't generate
          // a bitmap of the appropriate width/height of the rendered view.
          return new SizeReportingShadowNode();
      }
  
      @Override
      public void updateExtraData(AirMapCallout view, Object extraData) {
          // This method is called from the shadow node with the width/height of the rendered
          // marker view.
          //noinspection unchecked
          Map<String, Float> data = (Map<String, Float>) extraData;
          float width = data.get("width");
          float height = data.get("height");
          view.width = (int) width;
          view.height = (int) height;
      }
  
  }
  