UNPKG

react-tinymce-mention

Version:

@Mention functionality for TinyMCE, built with React and Redux.

102 lines (89 loc) 1.65 kB
import * as Types from '../constants/MentionActionTypes'; import inputValid from '../utils/inputValid'; export function finalizeSetup(editor, dataSource) { return { type: Types.FINALIZE_SETUP, payload: { editor, dataSource } }; } export function fetching(isFetching) { return { type: Types.FETCHING, payload: { fetching: isFetching } }; } export function moveDown() { return { type: Types.MOVE_DOWN }; } export function moveUp() { return { type: Types.MOVE_UP }; } export function query(input) { return (dispatch, getState) => { const { asyncDataSource } = getState().mention; if (asyncDataSource && inputValid(input)) { dispatch(fetching(true)); asyncDataSource(input).then((response) => { dispatch({ type: Types.QUERY, payload: { dataSource: response, loading: false, query: input } }); }); } else { dispatch({ type: Types.QUERY, payload: { query: input, dataSource: [] } }); } }; } export function remove(mention) { return { type: Types.REMOVE, payload: { mention } }; } export function resetMentions() { return { type: Types.RESET_MENTIONS }; } export function resetQuery() { return { type: Types.RESET_QUERY }; } export function select(index) { return { type: Types.SELECT, payload: { index } }; } export function syncEditorState(mentionIds) { return { type: Types.SYNC_EDITOR_STATE, payload: { mentionIds } }; }