UNPKG

react-native-fbsdk-next

Version:
97 lines (89 loc) 2.78 kB
/** * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. * * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, * copy, modify, and distribute this software in source code or binary form for use * in connection with the web services and APIs provided by Facebook. * * As with any software that integrates with the Facebook platform, your use of * this software is subject to the Facebook Developer Principles and Policies * [http://developers.facebook.com/policy/]. This copyright notice shall be * included in all copies or substantial portions of the software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * @format */ import {RNFBSDKCallback} from './models/FBSDKCallback'; import {ShareContent} from './models/FBShareContent'; import {NativeModules} from 'react-native'; const ShareDialog = NativeModules.FBShareDialog; export type ShareDialogMode = ShareDialogModeIOS | ShareDialogModeAndroid; export type ShareDialogModeAndroid = /** * The mode is determined automatically. */ | 'automatic' /** * The native dialog is used. */ | 'native' /** * The web dialog is used. */ | 'web' /** * The feed dialog is used. */ | 'feed'; export type ShareDialogModeIOS = /* * Acts with the most appropriate mode that is available. */ | 'automatic' /* * Displays the dialog in Safari. */ | 'browser' /* * Displays the dialog in a UIWebView within the app. */ | 'webview' /** * The native dialog is used. */ | 'native'; export type ShareDialogResult = RNFBSDKCallback & { postId: string; }; export default { /** * Check if the dialog can be shown. */ canShow(shareContent: ShareContent): Promise<boolean> { return ShareDialog.canShow(shareContent); }, /** * Shows the dialog using the specified content. */ show(shareContent: ShareContent): Promise<ShareDialogResult> { return ShareDialog.show(shareContent); }, /** * Sets the mode for the share dialog. */ setMode(mode: ShareDialogMode) { ShareDialog.setMode(mode); }, /** * Sets whether or not the native share dialog should fail when it encounters a data error. */ setShouldFailOnDataError(shouldFailOnDataError: boolean) { ShareDialog.setShouldFailOnDataError(shouldFailOnDataError); }, };