From b87082b1b00637b41cecc571f72dc124182296a9 Mon Sep 17 00:00:00 2001 From: Szymon Date: Tue, 29 Aug 2017 17:16:39 +0200 Subject: [PATCH] Added segmentedControllOSRe bindings --- src/components/segmentedControllOSRe.re | 66 ++++++++++++++++++++++++ src/components/segmentedControllOSRe.rei | 49 ++++++++++++++++++ src/reactNative.re | 2 + 3 files changed, 117 insertions(+) create mode 100644 src/components/segmentedControllOSRe.re create mode 100644 src/components/segmentedControllOSRe.rei diff --git a/src/components/segmentedControllOSRe.re b/src/components/segmentedControllOSRe.re new file mode 100644 index 00000000000000..09e231bb8561a8 --- /dev/null +++ b/src/components/segmentedControllOSRe.re @@ -0,0 +1,66 @@ +external view : ReasonReact.reactClass = "SegmentedControlIOS" [@@bs.module "react-native"]; + +let make + ::values + ::selectedIndex=? + ::onChange=? + ::enabled=? + ::momentary=? + ::tintColor=? + ::onValueChange=? + ::accessibilityLabel=? + ::accessible=? + ::hitSlop=? + ::onAccessibilityTap=? + ::onLayout=? + ::onMagicTap=? + ::responderHandlers=? + ::pointerEvents=? + ::removeClippedSubviews=? + ::style=? + ::testID=? + ::accessibilityComponentType=? + ::accessibilityLiveRegion=? + ::collapsable=? + ::importantForAccessibility=? + ::needsOffscreenAlphaCompositing=? + ::renderToHardwareTextureAndroid=? + ::accessibilityTraits=? + ::accessibilityViewIsModal=? + ::shouldRasterizeIOS=? => + ReasonReact.wrapJsForReason + reactClass::view + props::( + Props.extendView + Js.Undefined.( + { + "enabled": from_opt @@ UtilsRN.optBoolToOptJsBoolean enabled, + "momentary": from_opt @@ UtilsRN.optBoolToOptJsBoolean momentary, + "tintColor": from_opt tintColor, + "values": Array.of_list values, + "selectedIndex": from_opt selectedIndex, + "onChange": from_opt onChange, + "onValueChange": from_opt onValueChange + } + ) + ::?accessibilityLabel + ::?accessible + ::?hitSlop + ::?onAccessibilityTap + ::?onLayout + ::?onMagicTap + ::?responderHandlers + ::?pointerEvents + ::?removeClippedSubviews + ::?style + ::?testID + ::?accessibilityComponentType + ::?accessibilityLiveRegion + ::?collapsable + ::?importantForAccessibility + ::?needsOffscreenAlphaCompositing + ::?renderToHardwareTextureAndroid + ::?accessibilityTraits + ::?accessibilityViewIsModal + ::?shouldRasterizeIOS + ); diff --git a/src/components/segmentedControllOSRe.rei b/src/components/segmentedControllOSRe.rei new file mode 100644 index 00000000000000..bba0885c2ea897 --- /dev/null +++ b/src/components/segmentedControllOSRe.rei @@ -0,0 +1,49 @@ +let make: + values::list string => + selectedIndex::int? => + onChange::(RNEvent.t => unit)? => + enabled::bool? => + momentary::bool? => + tintColor::string? => + onValueChange::(string => unit)? => + accessibilityLabel::ReasonReact.reactElement? => + accessible::bool? => + hitSlop::TypesRN.insets? => + onAccessibilityTap::(unit => unit)? => + onLayout::(RNEvent.NativeLayoutEvent.t => unit)? => + onMagicTap::(unit => unit)? => + responderHandlers::Props.touchResponderHandlers? => + pointerEvents::[ | `auto | `none | `boxNone | `boxOnly]? => + removeClippedSubviews::bool? => + style::StyleRe.t? => + testID::string? => + accessibilityComponentType::[ | `none | `button | `radiobutton_checked | `radiobutton_unchecked]? => + accessibilityLiveRegion::[ | `none | `polite | `assertive]? => + collapsable::bool? => + importantForAccessibility::[ | `auto | `yes | `no | `noHideDescendants]? => + needsOffscreenAlphaCompositing::bool? => + renderToHardwareTextureAndroid::bool? => + accessibilityTraits:: + list [ + | `none + | `button + | `link + | `header + | `search + | `image + | `selected + | `plays + | `key + | `text + | `summary + | `disabled + | `frequentUpdates + | `startsMedia + | `adjustable + | `allowsDirectInteraction + | `pageTurn + ]? => + accessibilityViewIsModal::bool? => + shouldRasterizeIOS::bool? => + array ReasonReact.reactElement => + ReasonReact.component ReasonReact.stateless ReasonReact.noRetainedProps; diff --git a/src/reactNative.re b/src/reactNative.re index c4f0bf0e3a46cf..3ea7aa9fe6816f 100644 --- a/src/reactNative.re +++ b/src/reactNative.re @@ -91,6 +91,8 @@ module PanResponder = { module Vibration = VibrationRe; +module SegmentedControllOS = SegmentedControllOSRe; + /** * New Modules due to Reason