UNPKG

@atlaskit/editor-plugin-find-replace

Version:

find replace plugin for @atlaskit/editor-core

65 lines 1.96 kB
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals'; import { FindReplaceActionTypes } from './actions'; const reducer = getInitialState => (state, action) => { switch (action.type) { case FindReplaceActionTypes.ACTIVATE: case FindReplaceActionTypes.FIND: return { ...state, isActive: true, shouldFocus: action.type === FindReplaceActionTypes.ACTIVATE, findText: action.findText !== undefined ? action.findText : state.findText, matches: action.matches || state.matches, index: action.index !== undefined ? action.index : state.index }; case FindReplaceActionTypes.UPDATE_DECORATIONS: return { ...state, decorationSet: action.decorationSet }; case FindReplaceActionTypes.FIND_NEXT: return { ...state, index: action.index, decorationSet: action.decorationSet }; case FindReplaceActionTypes.FIND_PREVIOUS: return { ...state, index: action.index, decorationSet: action.decorationSet }; case FindReplaceActionTypes.REPLACE: case FindReplaceActionTypes.REPLACE_ALL: return { ...state, replaceText: action.replaceText, decorationSet: action.decorationSet, matches: action.matches, index: action.index }; case FindReplaceActionTypes.CANCEL: const { getIntl, api } = state; return expValEquals('platform_editor_find_and_replace_improvements', 'isEnabled', true) ? { ...getInitialState(), getIntl, api } : getInitialState(); case FindReplaceActionTypes.BLUR: return { ...state, shouldFocus: false }; case FindReplaceActionTypes.TOGGLE_MATCH_CASE: return { ...state, shouldMatchCase: !state.shouldMatchCase }; default: return state; } }; export default reducer;