-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathindex.js
100 lines (74 loc) · 3.32 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/** @format */
/**
* External dependencies
*/
import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
const { RNReactNativeGutenbergBridge } = NativeModules;
const isIOS = Platform.OS === 'ios';
const gutenbergBridgeEvents = new NativeEventEmitter( RNReactNativeGutenbergBridge );
// Console polyfill from react-native
export function nativeLoggingHook( message, logLevel ) {
RNReactNativeGutenbergBridge.editorDidEmitLog( message, logLevel );
}
// Send messages
export function sendNativeEditorDidLayout() {
// For now, this is only needed on iOS to solve layout issues with the toolbar.
// If this become necessary on Android in the future, we can try to build a registration API from Native
// to register messages it wants to receive, similar to the Native -> JS messages listener system.
if ( isIOS ) {
RNReactNativeGutenbergBridge.editorDidLayout();
}
}
// Register listeners
export function subscribeParentGetHtml( callback ) {
return gutenbergBridgeEvents.addListener( 'requestGetHtml', callback );
}
export function subscribeParentToggleHTMLMode( callback ) {
return gutenbergBridgeEvents.addListener( 'toggleHTMLMode', callback );
}
export function subscribeSetFocusOnTitle( callback ) {
return gutenbergBridgeEvents.addListener( 'setFocusOnTitle', callback );
}
export function subscribeSetTitle( callback ) {
return gutenbergBridgeEvents.addListener( 'setTitle', callback );
}
export function subscribeUpdateHtml( callback ) {
return gutenbergBridgeEvents.addListener( 'updateHtml', callback );
}
export function subscribeMediaUpload( callback ) {
return gutenbergBridgeEvents.addListener( 'mediaUpload', callback );
}
export function subscribeMediaAppend( callback ) {
return gutenbergBridgeEvents.addListener( 'mediaAppend', callback );
}
export function requestMediaPickFromMediaLibrary( filter, multiple, callback ) {
return RNReactNativeGutenbergBridge.requestMediaPickFrom( 'SITE_MEDIA_LIBRARY', filter, multiple, callback );
}
export function requestMediaPickFromDeviceLibrary( filter, multiple, callback ) {
return RNReactNativeGutenbergBridge.requestMediaPickFrom( 'DEVICE_MEDIA_LIBRARY', filter, multiple, callback );
}
export function requestMediaPickFromDeviceCamera( filter, multiple, callback ) {
return RNReactNativeGutenbergBridge.requestMediaPickFrom( 'DEVICE_CAMERA', filter, multiple, callback );
}
export function requestMediaImport( url, callback ) {
return RNReactNativeGutenbergBridge.requestMediaImport( url, callback );
}
export function mediaUploadSync() {
return RNReactNativeGutenbergBridge.mediaUploadSync();
}
export function requestImageFailedRetryDialog( mediaId ) {
return RNReactNativeGutenbergBridge.requestImageFailedRetryDialog( mediaId );
}
export function requestImageUploadCancelDialog( mediaId ) {
return RNReactNativeGutenbergBridge.requestImageUploadCancelDialog( mediaId );
}
export function requestImageUploadCancel( mediaId ) {
return RNReactNativeGutenbergBridge.requestImageUploadCancel( mediaId );
}
export function getOtherMediaOptions( filter, callback ) {
return RNReactNativeGutenbergBridge.getOtherMediaOptions( filter, callback );
}
export function requestOtherMediaPickFrom( mediaSource, multiple, callback ) {
return RNReactNativeGutenbergBridge.requestOtherMediaPickFrom( mediaSource, multiple, callback );
}
export default RNReactNativeGutenbergBridge;