1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-06-30 23:44:55 +02:00

All: Add support for application plugins (#3257)

This commit is contained in:
Laurent
2020-10-09 18:35:46 +01:00
committed by GitHub
parent 833fb1264f
commit fe41d37f8f
804 changed files with 95622 additions and 5307 deletions

View File

@ -13,15 +13,18 @@ import useMessageHandler from './utils/useMessageHandler';
import useWindowCommandHandler from './utils/useWindowCommandHandler';
import useDropHandler from './utils/useDropHandler';
import useMarkupToHtml from './utils/useMarkupToHtml';
import useNoteToolbarButtons from './utils/useNoteToolbarButtons';
import useFormNote, { OnLoadEvent } from './utils/useFormNote';
import useFolder from './utils/useFolder';
import styles_ from './styles';
import { NoteEditorProps, FormNote, ScrollOptions, ScrollOptionTypes, OnChangeEvent, NoteBodyEditorProps } from './utils/types';
import ResourceEditWatcher from '../../lib/services/ResourceEditWatcher/index';
import ResourceEditWatcher from 'lib/services/ResourceEditWatcher/index';
import CommandService from 'lib/services/CommandService';
import ToolbarButton from '../ToolbarButton/ToolbarButton';
import Button, { ButtonLevel } from '../Button/Button';
import eventManager from 'lib/eventManager';
import { AppState } from '../../app';
import ToolbarButtonUtils from 'lib/services/commands/ToolbarButtonUtils';
import { _ } from 'lib/locale';
const { themeStyle } = require('lib/theme');
const { substrWithEllipsis } = require('lib/string-utils');
@ -30,12 +33,10 @@ const { reg } = require('lib/registry.js');
const { time } = require('lib/time-utils.js');
const markupLanguageUtils = require('lib/markupLanguageUtils');
const usePrevious = require('lib/hooks/usePrevious').default;
const Setting = require('lib/models/Setting');
const { _ } = require('lib/locale');
const Setting = require('lib/models/Setting').default;
const Note = require('lib/models/Note.js');
const { bridge } = require('electron').remote.require('./bridge');
const bridge = require('electron').remote.require('./bridge').default;
const ExternalEditWatcher = require('lib/services/ExternalEditWatcher');
const eventManager = require('lib/eventManager');
const NoteRevisionViewer = require('../NoteRevisionViewer.min');
const TagList = require('../TagList.min.js');
@ -43,6 +44,12 @@ const commands = [
require('./commands/showRevisions'),
];
const toolbarStyle = {
marginBottom: 0,
};
const toolbarButtonUtils = new ToolbarButtonUtils(CommandService.instance());
function NoteEditor(props: NoteEditorProps) {
const [showRevisions, setShowRevisions] = useState(false);
const [titleHasBeenManuallyChanged, setTitleHasBeenManuallyChanged] = useState(false);
@ -116,6 +123,8 @@ function NoteEditor(props: NoteEditorProps) {
type: 'EDITOR_NOTE_STATUS_REMOVE',
id: formNote.id,
});
eventManager.emit('noteContentChange', { note: savedNote });
};
};
@ -338,22 +347,17 @@ function NoteEditor(props: NoteEditorProps) {
}
function renderNoteToolbar() {
const toolbarStyle = {
marginBottom: 0,
};
return <NoteToolbar
themeId={props.themeId}
note={formNote}
// note={formNote}
style={toolbarStyle}
/>;
}
function renderTagButton() {
const info = CommandService.instance().commandToToolbarButton('setTags');
return <ToolbarButton
themeId={props.themeId}
toolbarButtonInfo={info}
toolbarButtonInfo={props.setTagsToolbarButtonInfo}
/>;
}
@ -407,7 +411,7 @@ function NoteEditor(props: NoteEditorProps) {
disabled: false,
themeId: props.themeId,
dispatch: props.dispatch,
noteToolbar: null,// renderNoteToolbar(),
noteToolbar: null,
onScroll: onScroll,
setLocalSearchResultCount: setLocalSearchResultCount,
searchMarkers: searchMarkers,
@ -415,7 +419,8 @@ function NoteEditor(props: NoteEditorProps) {
keyboardMode: Setting.value('editor.keyboardMode'),
locale: Setting.value('locale'),
onDrop: onDrop,
noteToolbarButtonInfos: useNoteToolbarButtons(),
noteToolbarButtonInfos: props.toolbarButtonInfos,
plugins: props.plugins,
};
let editor = null;
@ -463,6 +468,7 @@ function NoteEditor(props: NoteEditorProps) {
notes={props.notes}
dispatch={props.dispatch}
watchedNoteFiles={props.watchedNoteFiles}
plugins={props.plugins}
/>;
}
@ -557,7 +563,7 @@ export {
NoteEditor as NoteEditorComponent,
};
const mapStateToProps = (state: any) => {
const mapStateToProps = (state: AppState) => {
const noteId = state.selectedNoteIds.length === 1 ? state.selectedNoteIds[0] : null;
return {
@ -580,6 +586,16 @@ const mapStateToProps = (state: any) => {
noteVisiblePanes: state.noteVisiblePanes,
watchedResources: state.watchedResources,
highlightedWords: state.highlightedWords,
plugins: state.pluginService.plugins,
toolbarButtonInfos: toolbarButtonUtils.commandsToToolbarButtons(state, [
'historyBackward',
'historyForward',
'toggleEditors',
'startExternalEditing',
]),
setTagsToolbarButtonInfo: toolbarButtonUtils.commandsToToolbarButtons(state, [
'setTags',
])[0],
};
};