Skip to content

Instantly share code, notes, and snippets.

@fakenickels
Created July 26, 2019 02:00
Show Gist options
  • Save fakenickels/3e44f13d4240458808f6e6b899169685 to your computer and use it in GitHub Desktop.
Save fakenickels/3e44f13d4240458808f6e6b899169685 to your computer and use it in GitHub Desktop.
Bindings
module Region = {
[@bs.deriving abstract]
type t = {
latitude: float,
longitude: float,
latitudeDelta: float,
longitudeDelta: float,
};
};
module EdgePadding = {
[@bs.deriving abstract]
type t = {
top: int,
right: int,
bottom: int,
left: int,
};
};
[@bs.module "react-native-maps"] [@react.component]
external make:
(
~provider: string=?,
~region: Region.t=?,
~initialRegion: Region.t=?,
~mapPadding: EdgePadding.t=?,
~paddingAdjustmentBehavior: [@bs.string] [
| `always
| `automatic
| `never
]
=?,
~liteMode: bool=?,
~mapType: string=?,
~customMapStyle: array(ReactNative.Style.t)=?,
~showUserLocation: bool=?,
~userLocationAnnotationTitle: string=?,
~followsUserLocation: bool=?,
~showsMyLocationButton: bool=?,
~showsPointsOfInterest: bool=?,
~showCompass: bool=?,
~showsScale: bool=?,
~showsBuildings: bool=?,
~showsTraffic: bool=?,
~showsIndoors: bool=?,
~showsIndoorLevelPicker: bool=?,
~zoomEnabled: bool=?,
~minZoomLeel: int=?,
~maxZoomLebel: int=?,
~rotateEnabled: bool=?,
~scrollEnabled: bool=?,
~pitchEnabled: bool=?,
~loadingEnabled: bool=?,
~loadingIndicatorColor: string=?,
~loadingBackgroundColor: string=?,
~moveOnMarkerPress: bool=?,
~kmlSrc: string=?,
~style: ReactNative.Style.t=?
) =>
React.element =
"default";
[@genType]
type barcode = [
| `aztec
| `code128
| `code39
| `code39mod43
| `code93
| `ean13
| `ean8
| `pdf417
| `qr
| `upce
| `interleaved2of5
| `itf14
| `datamatrix
];
[@genType]
type eventOnBarcodeRead = {data: string};
[@bs.module "react-native-camera"] [@react.component]
external make:
(
~onBarCodeRead: eventOnBarcodeRead => unit=?,
~style: ReactNative.Style.t=?,
~children: React.element
) =>
React.element =
"RNCamera";
open BsReactNative;
[@bs.module "@haskkor/react-native-pincode"]
external hasUserSetPinCode: unit => Js.Promise.t(bool) = "hasUserSetPinCode";
[@react.component] [@bs.module "@haskkor/react-native-pincode"]
external make:
(
~onFail: unit => unit,
~finishProcess: unit => unit,
~titleConfirm: string=?,
~titleChoose: string=?,
~subtitleChoose: string=?,
~subtitleError: string=?,
~textDescriptionLockedPage: string=?,
~textButtonLockedPage: string=?,
~textTitleLockedPage: string=?,
~titleAttemptFailed: string=?,
~titleConfirmFailed: string=?,
~status: [@bs.string] [ | `choose | `enter | `locked],
~titleEnter: string=?,
~buttonDeleteText: string=?,
~touchIDSentence: string=?,
~touchIDTitle: string=?,
~colorCircleButtons: string=?,
~stylePinCodeButtonNumber: string=?,
~numbersButtonOverlayColor: string=?,
~stylePinCodeColorTitle: string=?,
~stylePinCodeColorSubtitle: string=?,
~stylePinCodeDeleteButtonColorHideUnderlay: string=?,
~stylePinCodeDeleteButtonColorShowUnderlay: string=?,
~stylePinCodeButtonCircle: Style.t=?,
~stylePinCodeRowButtons: Style.t=?,
~stylePinCodeEnterContainer: Style.t=?,
~styleMainContainer: Style.t=?,
unit
) =>
React.element =
"default";
[@bs.deriving jsConverter]
type socialValues = [
| `whatsapp
| `pagesmanager
| `facebook
| `instagram
| `googleplus
| `email
| `pinterest
];
[@bs.deriving abstract]
type openOptions = {
[@bs.optional]
url: string,
[@bs.optional]
urls: array(string),
[@bs.optional] [@bs.as "type"]
contentType: string,
[@bs.optional]
message: string,
[@bs.optional]
title: string,
[@bs.optional]
subject: string,
[@bs.optional]
excludedActivityTypes: string,
failOnCancel: bool,
[@bs.optional]
showAppsToView: string,
};
[@bs.deriving abstract]
type singleShareOptions = {
url: string,
message: string,
social: string,
[@bs.optional] [@bs.as "type"]
contentType: string,
[@bs.optional]
title: string,
[@bs.optional]
subject: string,
};
[@bs.module "react-native-share"]
external openDialog: openOptions => Js.Promise.t(Js.Json.t) = "open";
[@bs.module "react-native-share"]
external shareSingle: singleShareOptions => Js.Promise.t(Js.Json.t) =
"shareSingle";
[@bs.module "react-native-share"]
external socialValues: Js.Dict.t(string) = "Social";
let getSocial = (value: socialValues) =>
Js.Dict.get(socialValues, socialValuesToJs(value))
->Belt.Option.getWithDefault("");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment