You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-07-13 00:10:37 +02:00
This commit is contained in:
@ -8,7 +8,7 @@ import ExtendedWebView from '../ExtendedWebView';
|
|||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import { forwardRef, useImperativeHandle } from 'react';
|
import { forwardRef, useImperativeHandle } from 'react';
|
||||||
import { useMemo, useState, useCallback, useRef } from 'react';
|
import { useMemo, useState, useCallback, useRef } from 'react';
|
||||||
import { LayoutChangeEvent, View, ViewStyle } from 'react-native';
|
import { LayoutChangeEvent, NativeSyntheticEvent, View, ViewStyle } from 'react-native';
|
||||||
const { editorFont } = require('../global-style');
|
const { editorFont } = require('../global-style');
|
||||||
|
|
||||||
import { EditorControl, EditorSettings, SelectionRange } from './types';
|
import { EditorControl, EditorSettings, SelectionRange } from './types';
|
||||||
@ -18,12 +18,16 @@ import { ChangeEvent, EditorEvent, EditorEventType, SelectionRangeChangeEvent, U
|
|||||||
import { EditorCommandType, EditorKeymap, EditorLanguageType, PluginData, SearchState } from '@joplin/editor/types';
|
import { EditorCommandType, EditorKeymap, EditorLanguageType, PluginData, SearchState } from '@joplin/editor/types';
|
||||||
import supportsCommand from '@joplin/editor/CodeMirror/editorCommands/supportsCommand';
|
import supportsCommand from '@joplin/editor/CodeMirror/editorCommands/supportsCommand';
|
||||||
import SelectionFormatting, { defaultSelectionFormatting } from '@joplin/editor/SelectionFormatting';
|
import SelectionFormatting, { defaultSelectionFormatting } from '@joplin/editor/SelectionFormatting';
|
||||||
|
import Logger from '@joplin/utils/Logger';
|
||||||
|
import { WebViewErrorEvent } from 'react-native-webview/lib/RNCWebViewNativeComponent';
|
||||||
|
|
||||||
type ChangeEventHandler = (event: ChangeEvent)=> void;
|
type ChangeEventHandler = (event: ChangeEvent)=> void;
|
||||||
type UndoRedoDepthChangeHandler = (event: UndoRedoDepthChangeEvent)=> void;
|
type UndoRedoDepthChangeHandler = (event: UndoRedoDepthChangeEvent)=> void;
|
||||||
type SelectionChangeEventHandler = (event: SelectionRangeChangeEvent)=> void;
|
type SelectionChangeEventHandler = (event: SelectionRangeChangeEvent)=> void;
|
||||||
type OnAttachCallback = ()=> void;
|
type OnAttachCallback = ()=> void;
|
||||||
|
|
||||||
|
const logger = Logger.create('NoteEditor');
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
themeId: number;
|
themeId: number;
|
||||||
initialText: string;
|
initialText: string;
|
||||||
@ -317,7 +321,6 @@ function NoteEditor(props: Props, ref: any) {
|
|||||||
"error: " + message + " in file://" + source + ", line " + lineno
|
"error: " + message + " in file://" + source + ", line " + lineno
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
window.onunhandledrejection = (event) => {
|
window.onunhandledrejection = (event) => {
|
||||||
window.ReactNativeWebView.postMessage(
|
window.ReactNativeWebView.postMessage(
|
||||||
"error: Unhandled promise rejection: " + event
|
"error: Unhandled promise rejection: " + event
|
||||||
@ -374,7 +377,7 @@ function NoteEditor(props: Props, ref: any) {
|
|||||||
const data = event.nativeEvent.data;
|
const data = event.nativeEvent.data;
|
||||||
|
|
||||||
if (data.indexOf('error:') === 0) {
|
if (data.indexOf('error:') === 0) {
|
||||||
console.error('CodeMirror:', data);
|
logger.error('CodeMirror:', data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,8 +386,7 @@ function NoteEditor(props: Props, ref: any) {
|
|||||||
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
|
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
|
||||||
const handlers: Record<string, Function> = {
|
const handlers: Record<string, Function> = {
|
||||||
onLog: (event: any) => {
|
onLog: (event: any) => {
|
||||||
// eslint-disable-next-line no-console
|
logger.info('CodeMirror:', ...event.value);
|
||||||
console.info('CodeMirror:', ...event.value);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onEditorEvent: (event: EditorEvent) => {
|
onEditorEvent: (event: EditorEvent) => {
|
||||||
@ -428,13 +430,12 @@ function NoteEditor(props: Props, ref: any) {
|
|||||||
if (handlers[msg.name]) {
|
if (handlers[msg.name]) {
|
||||||
handlers[msg.name](msg.data);
|
handlers[msg.name](msg.data);
|
||||||
} else {
|
} else {
|
||||||
// eslint-disable-next-line no-console
|
logger.warn('Unsupported CodeMirror message:', msg);
|
||||||
console.info('Unsupported CodeMirror message:', msg);
|
|
||||||
}
|
}
|
||||||
}, [props.onSelectionChange, props.onUndoRedoDepthChange, props.onChange, editorControl]);
|
}, [props.onSelectionChange, props.onUndoRedoDepthChange, props.onChange, editorControl]);
|
||||||
|
|
||||||
const onError = useCallback(() => {
|
const onError = useCallback((event: NativeSyntheticEvent<WebViewErrorEvent>) => {
|
||||||
console.error('NoteEditor: webview error');
|
logger.error(`Load error: Code ${event.nativeEvent.code}: ${event.nativeEvent.description}`);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const [hasSpaceForToolbar, setHasSpaceForToolbar] = useState(true);
|
const [hasSpaceForToolbar, setHasSpaceForToolbar] = useState(true);
|
||||||
|
Reference in New Issue
Block a user