mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-30 10:36:35 +02:00
Desktop: Resolves #5184: GotoAnything sometimes is not working on first try
This commit is contained in:
parent
69f0578ca9
commit
5b7a5de826
@ -18,6 +18,9 @@ const { surroundKeywords, nextWhitespaceIndex, removeDiacritics } = require('@jo
|
|||||||
const { mergeOverlappingIntervals } = require('@joplin/lib/ArrayUtils.js');
|
const { mergeOverlappingIntervals } = require('@joplin/lib/ArrayUtils.js');
|
||||||
import markupLanguageUtils from '../utils/markupLanguageUtils';
|
import markupLanguageUtils from '../utils/markupLanguageUtils';
|
||||||
import focusEditorIfEditorCommand from '@joplin/lib/services/commands/focusEditorIfEditorCommand';
|
import focusEditorIfEditorCommand from '@joplin/lib/services/commands/focusEditorIfEditorCommand';
|
||||||
|
import Logger from '../../lib/Logger';
|
||||||
|
|
||||||
|
const logger = Logger.create('GotoAnything');
|
||||||
|
|
||||||
const PLUGIN_NAME = 'gotoAnything';
|
const PLUGIN_NAME = 'gotoAnything';
|
||||||
|
|
||||||
@ -381,7 +384,7 @@ class Dialog extends React.PureComponent<Props, State> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// make list scroll to top in every search
|
// make list scroll to top in every search
|
||||||
this.itemListRef.current.makeItemIndexVisible(0);
|
this.makeItemIndexVisible(0);
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
listType: listType,
|
listType: listType,
|
||||||
@ -394,6 +397,17 @@ class Dialog extends React.PureComponent<Props, State> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private makeItemIndexVisible(index: number) {
|
||||||
|
// Looks like it's not always defined
|
||||||
|
// https://github.com/laurent22/joplin/issues/5184#issuecomment-879714850
|
||||||
|
if (!this.itemListRef || !this.itemListRef.current) {
|
||||||
|
logger.warn('Trying to set item index but the item list is not defined. Index: ', index);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.itemListRef.current.makeItemIndexVisible(index);
|
||||||
|
}
|
||||||
|
|
||||||
async gotoItem(item: any) {
|
async gotoItem(item: any) {
|
||||||
this.props.dispatch({
|
this.props.dispatch({
|
||||||
pluginName: PLUGIN_NAME,
|
pluginName: PLUGIN_NAME,
|
||||||
@ -517,7 +531,7 @@ class Dialog extends React.PureComponent<Props, State> {
|
|||||||
|
|
||||||
const newId = this.state.results[index].id;
|
const newId = this.state.results[index].id;
|
||||||
|
|
||||||
this.itemListRef.current.makeItemIndexVisible(index);
|
this.makeItemIndexVisible(index);
|
||||||
|
|
||||||
this.setState({ selectedItemId: newId });
|
this.setState({ selectedItemId: newId });
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user