diff options
Diffstat (limited to 'src/content')
| -rw-r--r-- | src/content/actions/find.js | 51 | ||||
| -rw-r--r-- | src/content/reducers/find.js | 2 | 
2 files changed, 34 insertions, 19 deletions
| diff --git a/src/content/actions/find.js b/src/content/actions/find.js index b266216..c7345cc 100644 --- a/src/content/actions/find.js +++ b/src/content/actions/find.js @@ -5,6 +5,7 @@  // NOTE: window.find is not standard API  // https://developer.mozilla.org/en-US/docs/Web/API/Window/find +import messages from 'shared/messages';  import actions from 'content/actions';  import * as consoleFrames from '../console-frames'; @@ -31,35 +32,49 @@ const find = (string, backwards) => {    return window.find(string, caseSensitive, backwards, wrapScan);  }; -const findNext = (keyword, reset, backwards) => { +const findNext = (currentKeyword, reset, backwards) => {    if (reset) {      window.getSelection().removeAllRanges();    } -  let found = find(keyword, backwards); -  if (!found) { -    window.getSelection().removeAllRanges(); -    found = find(keyword, backwards); -  } -  if (found) { -    postPatternFound(keyword); +  let promise = Promise.resolve(currentKeyword); +  if (currentKeyword) { +    browser.runtime.sendMessage({ +      type: messages.FIND_SET_KEYWORD, +      keyword: currentKeyword, +    });    } else { -    postPatternNotFound(keyword); +    promise = browser.runtime.sendMessage({ +      type: messages.FIND_GET_KEYWORD, +    });    } -  return { -    type: actions.FIND_SET_KEYWORD, -    keyword, -    found, -  }; +  return promise.then((keyword) => { +    let found = find(keyword, backwards); +    if (!found) { +      window.getSelection().removeAllRanges(); +      found = find(keyword, backwards); +    } +    if (found) { +      postPatternFound(keyword); +    } else { +      postPatternNotFound(keyword); +    } + +    return { +      type: actions.FIND_SET_KEYWORD, +      keyword, +      found, +    }; +  });  }; -const next = (keyword, reset) => { -  return findNext(keyword, reset, false); +const next = (currentKeyword, reset) => { +  return findNext(currentKeyword, reset, false);  }; -const prev = (keyword, reset) => { -  return findNext(keyword, reset, true); +const prev = (currentKeyword, reset) => { +  return findNext(currentKeyword, reset, true);  };  export { next, prev }; diff --git a/src/content/reducers/find.js b/src/content/reducers/find.js index eb43c37..8d63ee5 100644 --- a/src/content/reducers/find.js +++ b/src/content/reducers/find.js @@ -1,7 +1,7 @@  import actions from 'content/actions';  const defaultState = { -  keyword: '', +  keyword: null,    found: false,  }; | 
