cobrowse-sdk-react-native 2.15.0 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/.github/workflows/lint.yaml +0 -2
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/io/cobrowse/reactnative/CobrowseIOModule.java +36 -0
  4. package/cobrowse-sdk-react-native.podspec +1 -1
  5. package/ios/RCTCobrowseIO.m +8 -0
  6. package/js/CBIOBroadcastPickerView.tsx +15 -0
  7. package/js/CobrowseAccessibilityService.ts +15 -0
  8. package/js/CobrowseIO.ts +161 -0
  9. package/js/CobrowseView.tsx +150 -0
  10. package/js/{Redacted.js → Redacted.tsx} +3 -2
  11. package/js/Session.ts +128 -0
  12. package/js/SessionControl.ts +38 -0
  13. package/js/Unredacted.tsx +106 -0
  14. package/js/{index.js → index.ts} +1 -0
  15. package/js/{useSession.js → useSession.ts} +5 -4
  16. package/lib/commonjs/CBIOBroadcastPickerView.js +15 -0
  17. package/lib/commonjs/CBIOBroadcastPickerView.js.map +1 -0
  18. package/lib/commonjs/CobrowseAccessibilityService.js +22 -0
  19. package/lib/commonjs/CobrowseAccessibilityService.js.map +1 -0
  20. package/lib/commonjs/CobrowseIO.js +154 -0
  21. package/lib/commonjs/CobrowseIO.js.map +1 -0
  22. package/lib/commonjs/CobrowseView.js +146 -0
  23. package/lib/commonjs/CobrowseView.js.map +1 -0
  24. package/lib/commonjs/Redacted.js +14 -0
  25. package/lib/commonjs/Redacted.js.map +1 -0
  26. package/lib/commonjs/Session.js +100 -0
  27. package/lib/commonjs/Session.js.map +1 -0
  28. package/lib/commonjs/SessionControl.js +39 -0
  29. package/lib/commonjs/SessionControl.js.map +1 -0
  30. package/lib/commonjs/Unredacted.js +82 -0
  31. package/lib/commonjs/Unredacted.js.map +1 -0
  32. package/lib/commonjs/index.js +77 -0
  33. package/lib/commonjs/index.js.map +1 -0
  34. package/lib/commonjs/useSession.js +35 -0
  35. package/lib/commonjs/useSession.js.map +1 -0
  36. package/lib/module/CBIOBroadcastPickerView.js +8 -0
  37. package/lib/module/CBIOBroadcastPickerView.js.map +1 -0
  38. package/lib/module/CobrowseAccessibilityService.js +13 -0
  39. package/lib/module/CobrowseAccessibilityService.js.map +1 -0
  40. package/lib/module/CobrowseIO.js +146 -0
  41. package/lib/module/CobrowseIO.js.map +1 -0
  42. package/lib/module/CobrowseView.js +136 -0
  43. package/lib/module/CobrowseView.js.map +1 -0
  44. package/lib/module/Redacted.js +7 -0
  45. package/lib/module/Redacted.js.map +1 -0
  46. package/lib/module/Session.js +93 -0
  47. package/lib/module/Session.js.map +1 -0
  48. package/lib/module/SessionControl.js +31 -0
  49. package/lib/module/SessionControl.js.map +1 -0
  50. package/lib/module/Unredacted.js +71 -0
  51. package/lib/module/Unredacted.js.map +1 -0
  52. package/lib/module/index.js +9 -0
  53. package/lib/module/index.js.map +1 -0
  54. package/lib/module/useSession.js +28 -0
  55. package/lib/module/useSession.js.map +1 -0
  56. package/lib/typescript/CBIOBroadcastPickerView.d.ts +8 -0
  57. package/lib/typescript/CBIOBroadcastPickerView.d.ts.map +1 -0
  58. package/lib/typescript/CobrowseAccessibilityService.d.ts +8 -0
  59. package/lib/typescript/CobrowseAccessibilityService.d.ts.map +1 -0
  60. package/lib/typescript/CobrowseIO.d.ts +31 -0
  61. package/lib/typescript/CobrowseIO.d.ts.map +1 -0
  62. package/lib/typescript/CobrowseView.d.ts +25 -0
  63. package/lib/typescript/CobrowseView.d.ts.map +1 -0
  64. package/lib/typescript/Redacted.d.ts +4 -0
  65. package/lib/typescript/Redacted.d.ts.map +1 -0
  66. package/lib/typescript/Session.d.ts +42 -0
  67. package/lib/typescript/Session.d.ts.map +1 -0
  68. package/lib/typescript/SessionControl.d.ts +17 -0
  69. package/lib/typescript/SessionControl.d.ts.map +1 -0
  70. package/lib/typescript/Unredacted.d.ts +10 -0
  71. package/lib/typescript/Unredacted.d.ts.map +1 -0
  72. package/lib/typescript/index.d.ts +10 -0
  73. package/lib/typescript/index.d.ts.map +1 -0
  74. package/lib/typescript/useSession.d.ts +3 -0
  75. package/lib/typescript/useSession.d.ts.map +1 -0
  76. package/package.json +25 -4
  77. package/tsconfig.build.json +5 -0
  78. package/tsconfig.json +28 -0
  79. package/js/CBIOBroadcastPickerView.js +0 -11
  80. package/js/CobrowseAccessibilityService.js +0 -11
  81. package/js/CobrowseIO.js +0 -145
  82. package/js/CobrowseView.js +0 -129
  83. package/js/Session.js +0 -107
  84. package/js/SessionControl.js +0 -26
  85. package/js/Unredacted.js +0 -82
  86. package/ts/CBIOBroadcastPickerView.d.ts +0 -8
  87. package/ts/CobrowseAccessibilityService.d.ts +0 -6
  88. package/ts/CobrowseIO.d.ts +0 -29
  89. package/ts/CobrowseView.d.ts +0 -20
  90. package/ts/Redacted.d.ts +0 -8
  91. package/ts/Session.d.ts +0 -58
  92. package/ts/SessionControl.d.ts +0 -9
  93. package/ts/Unredacted.d.ts +0 -16
  94. package/ts/index.d.ts +0 -7
  95. package/ts/useSession.d.ts +0 -3
@@ -0,0 +1,93 @@
1
+ import { NativeEventEmitter, NativeModules } from 'react-native';
2
+ const CobrowseIONative = NativeModules.CobrowseIO;
3
+ const emitter = new NativeEventEmitter(CobrowseIONative);
4
+ export default class Session {
5
+ constructor() {
6
+ let session = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ this.session = session;
8
+ this._listen();
9
+ }
10
+ _update(session, onMatch) {
11
+ if (this.session.id === undefined || session != null && this.session.id === session.id) {
12
+ this.session = session;
13
+ if (typeof onMatch === 'function') onMatch();
14
+ }
15
+ }
16
+ _listen() {
17
+ const updates = emitter.addListener('session.updated', session => this._update(session));
18
+ const ended = emitter.addListener('session.ended', session => {
19
+ this._update(session, () => {
20
+ updates.remove();
21
+ ended.remove();
22
+ });
23
+ });
24
+ }
25
+ addListener(eventType, listener) {
26
+ let mappedEventsType;
27
+ // TODO: this class should extend EventEmitter and forward
28
+ // on the non-namespaced versions of these events
29
+ switch (eventType) {
30
+ case 'ended':
31
+ mappedEventsType = 'session.updated';
32
+ break;
33
+ case 'updated':
34
+ mappedEventsType = 'session.ended';
35
+ break;
36
+ }
37
+ return emitter.addListener(mappedEventsType ?? eventType, session => {
38
+ this._update(session, () => {
39
+ listener(this);
40
+ });
41
+ });
42
+ }
43
+ get id() {
44
+ return this.session.id;
45
+ }
46
+ get code() {
47
+ return this.session.code;
48
+ }
49
+ get state() {
50
+ return this.session.state;
51
+ }
52
+ get full_device() {
53
+ return this.session.full_device ?? false;
54
+ }
55
+ get full_device_state() {
56
+ return this.session.full_device_state ?? 'off';
57
+ }
58
+ get remote_control() {
59
+ return this.session.remote_control;
60
+ }
61
+ get agent() {
62
+ return this.session.agent;
63
+ }
64
+ async activate() {
65
+ return CobrowseIONative.activateSession().then(() => {});
66
+ }
67
+ async end() {
68
+ return CobrowseIONative.endSession();
69
+ }
70
+ isActive() {
71
+ return this.session.state === 'active';
72
+ }
73
+ isAuthorizing() {
74
+ return this.session.state === 'authorizing';
75
+ }
76
+ isPending() {
77
+ return this.session.state === 'pending';
78
+ }
79
+ isEnded() {
80
+ return this.session.state === 'ended';
81
+ }
82
+ async setFullDevice(state) {
83
+ return CobrowseIONative.updateSession({
84
+ full_device: state
85
+ });
86
+ }
87
+ async setRemoteControl(state) {
88
+ return CobrowseIONative.updateSession({
89
+ remote_control: state
90
+ });
91
+ }
92
+ }
93
+ //# sourceMappingURL=Session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeEventEmitter","NativeModules","CobrowseIONative","CobrowseIO","emitter","Session","constructor","session","arguments","length","undefined","_listen","_update","onMatch","id","updates","addListener","ended","remove","eventType","listener","mappedEventsType","code","state","full_device","full_device_state","remote_control","agent","activate","activateSession","then","end","endSession","isActive","isAuthorizing","isPending","isEnded","setFullDevice","updateSession","setRemoteControl"],"sourceRoot":"../../js","sources":["Session.ts"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Component } from 'react';
2
+ import CobrowseIO from './CobrowseIO';
3
+ export default class SessionControl extends Component {
4
+ _updateListener = null;
5
+ constructor(props) {
6
+ super(props);
7
+ this.state = {
8
+ session: null
9
+ };
10
+ }
11
+ async componentDidMount() {
12
+ this.setState({
13
+ session: await CobrowseIO.currentSession()
14
+ });
15
+ this._updateListener = CobrowseIO.addListener(CobrowseIO.SESSION_UPDATED, session => {
16
+ this.setState({
17
+ session
18
+ });
19
+ });
20
+ }
21
+ componentWillUnmount() {
22
+ if (this._updateListener != null) this._updateListener.remove();
23
+ }
24
+ render() {
25
+ const {
26
+ session
27
+ } = this.state;
28
+ if ((session === null || session === void 0 ? void 0 : session.isActive()) === true) return this.props.children;else return null;
29
+ }
30
+ }
31
+ //# sourceMappingURL=SessionControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Component","CobrowseIO","SessionControl","_updateListener","constructor","props","state","session","componentDidMount","setState","currentSession","addListener","SESSION_UPDATED","componentWillUnmount","remove","render","isActive","children"],"sourceRoot":"../../js","sources":["SessionControl.ts"],"mappings":"AAAA,SAAgBA,SAAS,QAAQ,OAAO;AACxC,OAAOC,UAAU,MAAM,cAAc;AAYrC,eAAe,MAAMC,cAAc,SAASF,SAAS,CAA2C;EACtFG,eAAe,GAA+B,IAAI;EAE1DC,WAAWA,CAAEC,KAA0B,EAAE;IACvC,KAAK,CAACA,KAAK,CAAC;IACZ,IAAI,CAACC,KAAK,GAAG;MAAEC,OAAO,EAAE;IAAK,CAAC;EAChC;EAEA,MAAMC,iBAAiBA,CAAA,EAAmB;IACxC,IAAI,CAACC,QAAQ,CAAC;MAAEF,OAAO,EAAE,MAAMN,UAAU,CAACS,cAAc,CAAC;IAAE,CAAC,CAAC;IAC7D,IAAI,CAACP,eAAe,GAAGF,UAAU,CAACU,WAAW,CAACV,UAAU,CAACW,eAAe,EAAGL,OAAO,IAAK;MACrF,IAAI,CAACE,QAAQ,CAAC;QAAEF;MAAQ,CAAC,CAAC;IAC5B,CAAC,CAAC;EACJ;EAEAM,oBAAoBA,CAAA,EAAU;IAC5B,IAAI,IAAI,CAACV,eAAe,IAAI,IAAI,EAAE,IAAI,CAACA,eAAe,CAACW,MAAM,CAAC,CAAC;EACjE;EAEAC,MAAMA,CAAA,EAA4B;IAChC,MAAM;MAAER;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAC9B,IAAI,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAES,QAAQ,CAAC,CAAC,MAAK,IAAI,EAAE,OAAO,IAAI,CAACX,KAAK,CAACY,QAAQ,MACvD,OAAO,IAAI;EAClB;AACF"}
@@ -0,0 +1,71 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ import React, { forwardRef, useMemo, useRef, useCallback, useEffect } from 'react';
3
+ import { View, findNodeHandle, NativeModules } from 'react-native';
4
+ import { throttle } from 'lodash';
5
+ const CobrowseIONative = NativeModules.CobrowseIO;
6
+ function mergeRefs(refs) {
7
+ return value => {
8
+ refs.forEach(ref => {
9
+ if (typeof ref === 'function') {
10
+ ref(value);
11
+ } else if (ref != null) {
12
+ ref.current = value;
13
+ }
14
+ });
15
+ };
16
+ }
17
+ const unredactedTags = new Set();
18
+ const sendUnredactionUpdates = throttle(() => {
19
+ CobrowseIONative.setUnredactedTags([...unredactedTags]);
20
+ }, 50, {
21
+ leading: false
22
+ });
23
+ function removeUnredactedView(view) {
24
+ if (view != null) {
25
+ unredactedTags.delete(view);
26
+ sendUnredactionUpdates();
27
+ }
28
+ }
29
+ export function useUnredaction() {
30
+ let shouldWarnUnhandledRefs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
31
+ let componentName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
32
+ const ref = useRef(null);
33
+ const setRef = useCallback(node => {
34
+ let hasRemovedRef = false;
35
+ if (ref.current != null) {
36
+ hasRemovedRef = true;
37
+ removeUnredactedView(ref.current);
38
+ }
39
+ if (node != null) {
40
+ const view = findNodeHandle(node);
41
+ if (view != null) {
42
+ unredactedTags.add(view);
43
+ sendUnredactionUpdates();
44
+ ref.current = view;
45
+ } else {
46
+ console.warn(`Failed to apply unredact() to ${componentName} due to view not found`);
47
+ }
48
+ } else if (!hasRemovedRef) {
49
+ console.warn(`Failed to apply unredact() to ${componentName} due to null node handle – make sure you are forwarding refs`);
50
+ }
51
+ }, []);
52
+ useEffect(() => {
53
+ if (shouldWarnUnhandledRefs && ref.current == null) {
54
+ console.warn(`Failed to apply unredact() to ${componentName} due to null node handle – make sure the setRef function is called with the ref`);
55
+ }
56
+ return () => removeUnredactedView(ref.current);
57
+ }, []);
58
+ return setRef;
59
+ }
60
+ export function unredact(Component) {
61
+ return /*#__PURE__*/forwardRef(function ComponentFromHOC(props, ref) {
62
+ const localRef = useUnredaction(true, Component === null || Component === void 0 ? void 0 : Component.displayName);
63
+ const refs = useMemo(() => mergeRefs([localRef, ref]), [localRef, ref]);
64
+ return /*#__PURE__*/React.createElement(Component, _extends({}, props, {
65
+ ref: refs
66
+ }));
67
+ });
68
+ }
69
+ const Unredacted = unredact(View);
70
+ export default Unredacted;
71
+ //# sourceMappingURL=Unredacted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","forwardRef","useMemo","useRef","useCallback","useEffect","View","findNodeHandle","NativeModules","throttle","CobrowseIONative","CobrowseIO","mergeRefs","refs","value","forEach","ref","current","unredactedTags","Set","sendUnredactionUpdates","setUnredactedTags","leading","removeUnredactedView","view","delete","useUnredaction","shouldWarnUnhandledRefs","arguments","length","undefined","componentName","setRef","node","hasRemovedRef","add","console","warn","unredact","Component","ComponentFromHOC","props","localRef","displayName","createElement","_extends","Unredacted"],"sourceRoot":"../../js","sources":["Unredacted.tsx"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { default } from './CobrowseIO';
2
+ export { default as CobrowseView } from './CobrowseView';
3
+ export { default as Redacted } from './Redacted';
4
+ export { default as Unredacted, unredact, useUnredaction } from './Unredacted';
5
+ export { default as SessionControl } from './SessionControl';
6
+ export { default as CobrowseAccessibilityService } from './CobrowseAccessibilityService';
7
+ export { default as CBIOBroadcastPickerView } from './CBIOBroadcastPickerView';
8
+ export { useSession } from './useSession';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","CobrowseView","Redacted","Unredacted","unredact","useUnredaction","SessionControl","CobrowseAccessibilityService","CBIOBroadcastPickerView","useSession"],"sourceRoot":"../../js","sources":["index.ts"],"mappings":"AAAA,SAASA,OAAO,QAAQ,cAAc;AACtC,SAASA,OAAO,IAAIC,YAAY,QAAQ,gBAAgB;AACxD,SAASD,OAAO,IAAIE,QAAQ,QAAQ,YAAY;AAChD,SAASF,OAAO,IAAIG,UAAU,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,cAAc;AAC9E,SAASL,OAAO,IAAIM,cAAc,QAAQ,kBAAkB;AAC5D,SAASN,OAAO,IAAIO,4BAA4B,QAAQ,gCAAgC;AACxF,SAASP,OAAO,IAAIQ,uBAAuB,QAAQ,2BAA2B;AAC9E,SAASC,UAAU,QAAQ,cAAc"}
@@ -0,0 +1,28 @@
1
+ import { useEffect, useState } from 'react';
2
+ import CobrowseIO from './CobrowseIO';
3
+ export function useSession() {
4
+ const [session, setSession] = useState(null);
5
+
6
+ // initial value
7
+ useEffect(() => {
8
+ let isMounted = true;
9
+ async function getSession() {
10
+ const session = await CobrowseIO.currentSession();
11
+ if (isMounted) {
12
+ setSession(session);
13
+ }
14
+ }
15
+ void getSession();
16
+ return () => {
17
+ isMounted = false;
18
+ };
19
+ }, []);
20
+
21
+ // listen to session updates
22
+ useEffect(() => {
23
+ const subscription = CobrowseIO.addListener(CobrowseIO.SESSION_UPDATED, setSession);
24
+ return () => subscription.remove();
25
+ }, []);
26
+ return session;
27
+ }
28
+ //# sourceMappingURL=useSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","CobrowseIO","useSession","session","setSession","isMounted","getSession","currentSession","subscription","addListener","SESSION_UPDATED","remove"],"sourceRoot":"../../js","sources":["useSession.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,OAAOC,UAAU,MAAM,cAAc;AAGrC,OAAO,SAASC,UAAUA,CAAA,EAAoB;EAC5C,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGJ,QAAQ,CAAiB,IAAI,CAAC;;EAE5D;EACAD,SAAS,CAAC,MAAM;IACd,IAAIM,SAAS,GAAG,IAAI;IACpB,eAAeC,UAAUA,CAAA,EAAmB;MAC1C,MAAMH,OAAO,GAAG,MAAMF,UAAU,CAACM,cAAc,CAAC,CAAC;MAEjD,IAAIF,SAAS,EAAE;QACbD,UAAU,CAACD,OAAO,CAAC;MACrB;IACF;IAEA,KAAKG,UAAU,CAAC,CAAC;IAEjB,OAAO,MAAM;MACXD,SAAS,GAAG,KAAK;IACnB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;;EAEN;EACAN,SAAS,CAAC,MAAM;IACd,MAAMS,YAAY,GAAGP,UAAU,CAACQ,WAAW,CAACR,UAAU,CAACS,eAAe,EAAEN,UAAU,CAAC;IAEnF,OAAO,MAAMI,YAAY,CAACG,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOR,OAAO;AAChB"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { type ViewProps } from 'react-native';
3
+ declare type CBIOBroadcastPickerViewProps = {
4
+ buttonColor: string;
5
+ } & ViewProps;
6
+ export default function CBIOBroadcastPickerView(props: CBIOBroadcastPickerViewProps): JSX.Element | null;
7
+ export {};
8
+ //# sourceMappingURL=CBIOBroadcastPickerView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CBIOBroadcastPickerView.d.ts","sourceRoot":"","sources":["../../js/CBIOBroadcastPickerView.tsx"],"names":[],"mappings":";AACA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAM/E,aAAK,4BAA4B,GAAG;IAClC,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,SAAS,CAAA;AAEb,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAE,KAAK,EAAE,4BAA4B,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAGxG"}
@@ -0,0 +1,8 @@
1
+ export declare function showSetup(): void;
2
+ export declare function isRunning(): boolean;
3
+ declare const _default: {
4
+ showSetup: typeof showSetup;
5
+ isRunning: typeof isRunning;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=CobrowseAccessibilityService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CobrowseAccessibilityService.d.ts","sourceRoot":"","sources":["../../js/CobrowseAccessibilityService.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,IAAK,IAAI,CAEjC;AAED,wBAAgB,SAAS,IAAK,OAAO,CAEpC;;;;;AAED,wBAGC"}
@@ -0,0 +1,31 @@
1
+ import { EmitterSubscription } from 'react-native';
2
+ import Session, { type CobrowseSessionEvents } from './Session';
3
+ export default class CobrowseIO {
4
+ private static sessionRequestShown;
5
+ private static remoteControlRequestShown;
6
+ /** @deprecated */
7
+ static get SESSION_UPDATED(): 'session.updated';
8
+ /** @deprecated */
9
+ static get SESSION_ENDED(): 'session.ended';
10
+ static handleSessionRequest(session: Session): void;
11
+ static handleRemoteControlRequest(session: Session): void;
12
+ static addListener(event: CobrowseSessionEvents | 'session.requested', cb: (session: Session) => void): EmitterSubscription;
13
+ static start(): void;
14
+ static stop(): void;
15
+ static set api(api: string);
16
+ static set license(license: string);
17
+ static set customData(customData: Record<string, unknown>);
18
+ static set capabilities(capabilities: Array<'drawing' | 'full_device' | 'keypress' | 'laser' | 'pointer'>);
19
+ static set webviewRedactedViews(redactionSelectors: string[]);
20
+ static set deviceToken(token: string);
21
+ static currentSession(): Session | null;
22
+ static createSession(): Session | null;
23
+ static getSession(codeOrId: string): Session | null;
24
+ /** @deprecated */
25
+ static activateSession(): Session | null;
26
+ /** @deprecated */
27
+ static endSession(): void;
28
+ static showSessionControls: Boolean | null;
29
+ static handleFullDeviceRequest: null | ((s: Session) => void);
30
+ }
31
+ //# sourceMappingURL=CobrowseIO.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CobrowseIO.d.ts","sourceRoot":"","sources":["../../js/CobrowseIO.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,mBAAmB,EAAiB,MAAM,cAAc,CAAA;AACtG,OAAO,OAAO,EAAE,EAAE,KAAK,qBAAqB,EAAoB,MAAM,WAAW,CAAA;AAMjF,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAQ;IAC1C,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAQ;IAEhD,kBAAkB;IAClB,MAAM,KAAK,eAAe,IAAK,iBAAiB,CAE/C;IAED,kBAAkB;IAClB,MAAM,KAAK,aAAa,IAAK,eAAe,CAE3C;IAED,MAAM,CAAC,oBAAoB,CAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAsBpD,MAAM,CAAC,0BAA0B,CAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAsB1D,MAAM,CAAC,WAAW,CAAE,KAAK,EAAE,qBAAqB,GAAG,mBAAmB,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,mBAAmB;IAI5H,MAAM,CAAC,KAAK,IAAK,IAAI;IAIrB,MAAM,CAAC,IAAI,IAAK,IAAI;IAKpB,MAAM,KAAK,GAAG,CAAE,GAAG,EAAE,MAAM,EAE1B;IAGD,MAAM,KAAK,OAAO,CAAE,OAAO,EAAE,MAAM,EAElC;IAGD,MAAM,KAAK,UAAU,CAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEzD;IAGD,MAAM,KAAK,YAAY,CAAE,YAAY,EAAE,KAAK,CAAC,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC,EAEzG;IAGD,MAAM,KAAK,oBAAoB,CAAE,kBAAkB,EAAE,MAAM,EAAE,EAE5D;IAGD,MAAM,KAAK,WAAW,CAAE,KAAK,EAAE,MAAM,EAEpC;IAED,MAAM,CAAC,cAAc,IAAK,OAAO,GAAG,IAAI;IAIxC,MAAM,CAAC,aAAa,IAAK,OAAO,GAAG,IAAI;IAIvC,MAAM,CAAC,UAAU,CAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAIpD,kBAAkB;IAClB,MAAM,CAAC,eAAe,IAAK,OAAO,GAAG,IAAI;IAIzC,kBAAkB;IAClB,MAAM,CAAC,UAAU,IAAK,IAAI;IAI1B,MAAM,CAAC,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAO;IACjD,MAAM,CAAC,uBAAuB,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,CAAO;CACrE"}
@@ -0,0 +1,25 @@
1
+ import { Component } from 'react';
2
+ import type Session from './Session';
3
+ interface CobrowseViewProps {
4
+ license?: string;
5
+ onEnded?: () => void;
6
+ }
7
+ interface CobrowseViewState {
8
+ error: Error | null;
9
+ session: Session | null;
10
+ }
11
+ export default class CobrowseView extends Component<CobrowseViewProps, CobrowseViewState> {
12
+ private _updateListener;
13
+ private _endListener;
14
+ constructor(props: CobrowseViewProps);
15
+ componentDidMount(): Promise<void>;
16
+ componentWillUnmount(): void;
17
+ endSession(): Promise<void>;
18
+ renderError(error: Error): JSX.Element;
19
+ renderCode(): JSX.Element;
20
+ renderManageSession(): JSX.Element;
21
+ renderContent(): JSX.Element;
22
+ render(): JSX.Element;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=CobrowseView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CobrowseView.d.ts","sourceRoot":"","sources":["../../js/CobrowseView.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAUxC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AA0BpC,UAAU,iBAAiB;IAEzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACvF,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,YAAY,CAAmC;gBAE1C,KAAK,EAAE,iBAAiB;IAK/B,iBAAiB,IAAK,OAAO,CAAC,IAAI,CAAC;IA0BzC,oBAAoB,IAAK,IAAI;IAKvB,UAAU,IAAK,OAAO,CAAC,IAAI,CAAC;IAelC,WAAW,CAAE,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO;IAMvC,UAAU,IAAK,GAAG,CAAC,OAAO;IAY1B,mBAAmB,IAAK,GAAG,CAAC,OAAO;IAWnC,aAAa,IAAK,GAAG,CAAC,OAAO;IAW7B,MAAM,IAAK,GAAG,CAAC,OAAO;CAOvB"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { type ViewProps } from 'react-native';
3
+ export default function Redacted(props: ViewProps): JSX.Element;
4
+ //# sourceMappingURL=Redacted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Redacted.d.ts","sourceRoot":"","sources":["../../js/Redacted.tsx"],"names":[],"mappings":";AACA,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAIrE,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAE,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAE/D"}
@@ -0,0 +1,42 @@
1
+ import { EmitterSubscription } from 'react-native';
2
+ export declare type SessionEvent = 'updated' | 'ended';
3
+ export declare type CobrowseSessionEvents = `session.${SessionEvent}`;
4
+ export declare type SessionState = 'active' | 'authorizing' | 'ended' | 'pending';
5
+ export declare type RemoteControlState = 'on' | 'requested' | 'rejected' | 'off';
6
+ export declare type FullDeviceState = 'on' | 'requested' | 'rejected' | 'off';
7
+ export interface Agent {
8
+ id: string;
9
+ name: string;
10
+ }
11
+ export interface SessionLike {
12
+ id: string;
13
+ code: string;
14
+ state: SessionState;
15
+ full_device: boolean;
16
+ remote_control: RemoteControlState;
17
+ agent: Agent;
18
+ full_device_state: FullDeviceState;
19
+ }
20
+ export default class Session {
21
+ private session;
22
+ constructor(session?: SessionLike | Record<string, never>);
23
+ private _update;
24
+ _listen(): void;
25
+ addListener(eventType: SessionEvent, listener: (session: Session) => void): EmitterSubscription;
26
+ get id(): string | null;
27
+ get code(): string | null;
28
+ get state(): SessionState | null;
29
+ get full_device(): boolean;
30
+ get full_device_state(): FullDeviceState;
31
+ get remote_control(): RemoteControlState | null;
32
+ get agent(): Agent | null;
33
+ activate(): Promise<void>;
34
+ end(): Promise<void>;
35
+ isActive(): boolean;
36
+ isAuthorizing(): boolean;
37
+ isPending(): boolean;
38
+ isEnded(): boolean;
39
+ setFullDevice(state: boolean | FullDeviceState): Promise<void>;
40
+ setRemoteControl(state: RemoteControlState): Promise<void>;
41
+ }
42
+ //# sourceMappingURL=Session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../js/Session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAqC,MAAM,cAAc,CAAA;AAKrF,oBAAY,YAAY,GAAG,SAAS,GAAG,OAAO,CAAA;AAC9C,oBAAY,qBAAqB,GAAG,WAAW,YAAY,EAAE,CAAA;AAC7D,oBAAY,YAAY,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAA;AACzE,oBAAY,kBAAkB,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,CAAA;AACxE,oBAAY,eAAe,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,CAAA;AAErE,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,cAAc,EAAE,kBAAkB,CAAA;IAClC,KAAK,EAAE,KAAK,CAAA;IACZ,iBAAiB,EAAE,eAAe,CAAA;CACnC;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;IACb,OAAO,CAAC,OAAO;gBAAP,OAAO,GAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM;IAItE,OAAO,CAAC,OAAO;IAOf,OAAO,IAAK,IAAI;IAUhB,WAAW,CAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,mBAAmB;IAoBhG,IAAI,EAAE,IAAK,MAAM,GAAG,IAAI,CAEvB;IAED,IAAI,IAAI,IAAK,MAAM,GAAG,IAAI,CAEzB;IAED,IAAI,KAAK,IAAK,YAAY,GAAG,IAAI,CAEhC;IAED,IAAI,WAAW,IAAK,OAAO,CAE1B;IAED,IAAI,iBAAiB,IAAK,eAAe,CAExC;IAED,IAAI,cAAc,IAAK,kBAAkB,GAAG,IAAI,CAE/C;IAED,IAAI,KAAK,IAAK,KAAK,GAAG,IAAI,CAEzB;IAEK,QAAQ,IAAK,OAAO,CAAC,IAAI,CAAC;IAI1B,GAAG,IAAK,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAK,OAAO;IAIpB,aAAa,IAAK,OAAO;IAIzB,SAAS,IAAK,OAAO;IAIrB,OAAO,IAAK,OAAO;IAIb,aAAa,CAAE,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,gBAAgB,CAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlE"}
@@ -0,0 +1,17 @@
1
+ import React, { Component } from 'react';
2
+ import type Session from './Session';
3
+ interface SessionControlProps {
4
+ children: React.ReactNode;
5
+ }
6
+ interface SessionControlState {
7
+ session: Session | null;
8
+ }
9
+ export default class SessionControl extends Component<SessionControlProps, SessionControlState> {
10
+ private _updateListener;
11
+ constructor(props: SessionControlProps);
12
+ componentDidMount(): Promise<void>;
13
+ componentWillUnmount(): void;
14
+ render(): React.ReactNode | null;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=SessionControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionControl.d.ts","sourceRoot":"","sources":["../../js/SessionControl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGxC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC7F,OAAO,CAAC,eAAe,CAAmC;gBAE7C,KAAK,EAAE,mBAAmB;IAKjC,iBAAiB,IAAK,OAAO,CAAC,IAAI,CAAC;IAOzC,oBAAoB,IAAK,IAAI;IAI7B,MAAM,IAAK,KAAK,CAAC,SAAS,GAAG,IAAI;CAKlC"}
@@ -0,0 +1,10 @@
1
+ import React, { Component as ReactComponentType, PropsWithoutRef, type ForwardRefExoticComponent, type RefAttributes, type ComponentClass, type Ref, type PropsWithChildren, type ForwardedRef } from 'react';
2
+ import { ScrollView, Text, View, SectionList, FlatList, Image } from 'react-native';
3
+ declare type RefHandlingComponent<T, P> = ComponentClass<P & {
4
+ ref?: Ref<T>;
5
+ }, any> | ForwardRefExoticComponent<PropsWithChildren<P> & RefAttributes<T>>;
6
+ export declare function useUnredaction<C extends ComponentClass | ReactComponentType = View | ScrollView | Text | Image | FlatList | SectionList>(shouldWarnUnhandledRefs?: boolean, componentName?: string): ForwardedRef<C>;
7
+ export declare function unredact<T, P extends {}>(Component: RefHandlingComponent<T, P>): ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>>;
8
+ declare const Unredacted: React.ForwardRefExoticComponent<import("react-native").ViewProps & React.RefAttributes<unknown>>;
9
+ export default Unredacted;
10
+ //# sourceMappingURL=Unredacted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Unredacted.d.ts","sourceRoot":"","sources":["../../js/Unredacted.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAMZ,SAAS,IAAI,kBAAkB,EAC/B,eAAe,EACf,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,GAAG,EACR,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAiC,MAAM,cAAc,CAAA;AAKlH,aAAK,oBAAoB,CAAC,CAAC,EAAE,CAAC,IAC1B,cAAc,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;CAAE,EAAE,GAAG,CAAC,GACzC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AA0BtE,wBAAgB,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,kBAAkB,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,EAAG,uBAAuB,UAAO,EAAE,aAAa,SAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAuC9M;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,EACtC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAWlE;AAED,QAAA,MAAM,UAAU,kGAAiB,CAAA;AACjC,eAAe,UAAU,CAAA"}
@@ -0,0 +1,10 @@
1
+ export { default } from './CobrowseIO';
2
+ export { default as CobrowseView } from './CobrowseView';
3
+ export { default as Redacted } from './Redacted';
4
+ export { default as Unredacted, unredact, useUnredaction } from './Unredacted';
5
+ export { default as SessionControl } from './SessionControl';
6
+ export { default as CobrowseAccessibilityService } from './CobrowseAccessibilityService';
7
+ export { default as CBIOBroadcastPickerView } from './CBIOBroadcastPickerView';
8
+ export { useSession } from './useSession';
9
+ export type { default as Session, CobrowseSessionEvents } from './Session';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../js/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,OAAO,IAAI,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type Session from './Session';
2
+ export declare function useSession(): Session | null;
3
+ //# sourceMappingURL=useSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSession.d.ts","sourceRoot":"","sources":["../../js/useSession.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC,wBAAgB,UAAU,IAAK,OAAO,GAAG,IAAI,CA6B5C"}
package/package.json CHANGED
@@ -1,14 +1,16 @@
1
1
  {
2
2
  "name": "cobrowse-sdk-react-native",
3
- "version": "2.15.0",
3
+ "version": "2.17.0",
4
4
  "description": "Cobrowse SDK for React Native",
5
- "main": "js/index.js",
6
- "types": "ts/index.d.ts",
5
+ "main": "lib/module/index",
6
+ "module": "lib/module/index",
7
+ "types": "lib/typescript/index.d.ts",
8
+ "react-native": "js/index",
7
9
  "scripts": {
8
10
  "lint": "ts-standard",
9
11
  "lint:fix": "npm run lint -- --fix",
10
12
  "start:dev": "nodemon --exec ./scripts/copy.sh",
11
- "test:types": "tsc -p tsconfig.eslint.json --noEmit"
13
+ "prepack": "bob build"
12
14
  },
13
15
  "author": {
14
16
  "name": "Andy Pritchard"
@@ -36,9 +38,11 @@
36
38
  "lodash": "^4.17.21"
37
39
  },
38
40
  "devDependencies": {
41
+ "@types/lodash": "^4.14.194",
39
42
  "@types/react": "^18.0.24",
40
43
  "@types/react-native": "^0.70.6",
41
44
  "nodemon": "^2.0.20",
45
+ "react-native-builder-bob": "^0.20.4",
42
46
  "ts-standard": "^12.0.2",
43
47
  "typescript": "^4.8.4"
44
48
  },
@@ -46,6 +50,23 @@
46
50
  "project": "tsconfig.eslint.json",
47
51
  "env": [
48
52
  "jest"
53
+ ],
54
+ "ignore": [
55
+ "lib"
56
+ ]
57
+ },
58
+ "react-native-builder-bob": {
59
+ "source": "js",
60
+ "output": "lib",
61
+ "targets": [
62
+ "commonjs",
63
+ "module",
64
+ [
65
+ "typescript",
66
+ {
67
+ "project": "tsconfig.build.json"
68
+ }
69
+ ]
49
70
  ]
50
71
  }
51
72
  }
@@ -0,0 +1,5 @@
1
+
2
+ {
3
+ "extends": "./tsconfig",
4
+ "exclude": ["Example"]
5
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": "./*",
4
+ "paths": {
5
+ "cobrowse-sdk-react-native": ["./js/index"]
6
+ },
7
+ "allowUnreachableCode": false,
8
+ "allowUnusedLabels": false,
9
+ "esModuleInterop": true,
10
+ "importsNotUsedAsValues": "error",
11
+ "forceConsistentCasingInFileNames": true,
12
+ "jsx": "react",
13
+ "lib": ["esnext"],
14
+ "module": "esnext",
15
+ "moduleResolution": "node",
16
+ "noFallthroughCasesInSwitch": true,
17
+ "noImplicitReturns": true,
18
+ "noImplicitUseStrict": false,
19
+ "noStrictGenericChecks": false,
20
+ "noUncheckedIndexedAccess": true,
21
+ "noUnusedLocals": true,
22
+ "noUnusedParameters": true,
23
+ "resolveJsonModule": true,
24
+ "skipLibCheck": true,
25
+ "strict": true,
26
+ "target": "esnext"
27
+ }
28
+ }
@@ -1,11 +0,0 @@
1
- import React from 'react'
2
- import { Platform, requireNativeComponent } from 'react-native'
3
-
4
- const CBIOBroadcastPickerView = requireNativeComponent(
5
- 'CBIOBroadcastPickerView'
6
- )
7
-
8
- export default function (props) {
9
- // this native component is only available on iOS
10
- return Platform.OS === 'ios' ? <CBIOBroadcastPickerView {...props} /> : null
11
- }
@@ -1,11 +0,0 @@
1
- const CobrowseIONative = require('react-native').NativeModules.CobrowseIO
2
-
3
- export default class CobrowseAccessibilityService {
4
- static showSetup () {
5
- return CobrowseIONative.accessibilityServiceShowSetup()
6
- }
7
-
8
- static isRunning () {
9
- return CobrowseIONative.accessibilityServiceIsRunning()
10
- }
11
- }