instabug-reactnative
Version:
React Native plugin for integrating the Instabug SDK
71 lines (60 loc) • 2.36 kB
text/typescript
import { NativeEventEmitter, NativeModule } from 'react-native';
import type {
DismissType,
ExtendedBugReportMode,
FloatingButtonPosition,
InvocationEvent,
InvocationOption,
RecordingButtonPosition,
ReportType,
userConsentActionType,
} from '../utils/Enums';
import { NativeModules } from './NativePackage';
export interface BugReportingNativeModule extends NativeModule {
// Essential APIs //
setEnabled(isEnabled: boolean): void;
show(type: ReportType, options: InvocationOption[]): void;
// Customization APIs //
setInvocationEvents(events: InvocationEvent[]): void;
setOptions(options: InvocationOption[]): void;
setExtendedBugReportMode(mode: ExtendedBugReportMode): void;
setReportTypes(types: ReportType[]): void;
setDisclaimerText(text: string): void;
setCommentMinimumCharacterCount(limit: number, reportTypes: ReportType[]): void;
setFloatingButtonEdge(edge: FloatingButtonPosition, offset: number): void;
setVideoRecordingFloatingButtonPosition(buttonPosition: RecordingButtonPosition): void;
setEnabledAttachmentTypes(
screenshot: boolean,
extraScreenshot: boolean,
galleryImage: boolean,
screenRecording: boolean,
): void;
// Screen Recording APIs //
setAutoScreenRecordingEnabled(isEnabled: boolean): void;
setAutoScreenRecordingDuration(maxDuration: number): void;
setViewHierarchyEnabled(isEnabled: boolean): void;
// Shaking Threshold APIs //
setShakingThresholdForiPhone(threshold: number): void;
setShakingThresholdForiPad(threshold: number): void;
setShakingThresholdForAndroid(threshold: number): void;
// Callbacks //
setOnInvokeHandler(handler: () => void): void;
setDidSelectPromptOptionHandler(handler: (promptOption: string) => void): void;
setOnSDKDismissedHandler(
handler: (dismissType: DismissType, reportType: ReportType) => void,
): void;
addUserConsent(
key: string,
description: string,
mandatory: boolean,
checked: boolean,
actionType?: userConsentActionType,
): void;
}
export const NativeBugReporting = NativeModules.IBGBugReporting;
export enum NativeEvents {
ON_INVOKE_HANDLER = 'IBGpreInvocationHandler',
ON_DISMISS_HANDLER = 'IBGpostInvocationHandler',
DID_SELECT_PROMPT_OPTION_HANDLER = 'IBGDidSelectPromptOptionHandler',
}
export const emitter = new NativeEventEmitter(NativeBugReporting);