import { Command } from "../types"; import { setPluginState, transitionWidget } from "./HighlightWidgetPlugin"; import { setPluginState as setDecorationPluginState, transition as transitionHighlight } from "./HighlightDecorationPlugin"; /** * Toggle the active state of tag highlighting */ export const toggleActive: Command = (state, dispatch) => { setPluginState({ state, dispatch }, prevPluginState => ({ ...prevPluginState, widgetState: transitionWidget(prevPluginState.widgetState).toggleActive(!state.selection.empty ? state.selection : null) })); return true; }; /** * Focus Range decoration */ export const focusRange: (rangeId: string | null) => Command = rangeId => (state, dispatch) => { setDecorationPluginState({ state, dispatch }, prevPluginState => transitionHighlight(prevPluginState).with({ focusedRangeId: rangeId, doc: state.doc }) ); return true; };