1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-12-17 23:27:48 +02:00
Files
joplin/packages/app-desktop/gui/NoteList/utils/useOnNoteClick.ts

33 lines
715 B
TypeScript
Raw Normal View History

2023-08-13 12:21:12 +01:00
import * as React from 'react';
import { useCallback } from 'react';
import { Dispatch } from 'redux';
const useOnNoteClick = (dispatch: Dispatch) => {
const onNoteClick = useCallback((event: React.MouseEvent<HTMLDivElement>) => {
const noteId = event.currentTarget.getAttribute('data-note-id');
if (event.ctrlKey || event.metaKey) {
event.preventDefault();
dispatch({
type: 'NOTE_SELECT_TOGGLE',
id: noteId,
});
} else if (event.shiftKey) {
event.preventDefault();
dispatch({
type: 'NOTE_SELECT_EXTEND',
id: noteId,
});
} else {
dispatch({
type: 'NOTE_SELECT',
id: noteId,
});
}
}, [dispatch]);
return onNoteClick;
};
export default useOnNoteClick;