diff --git a/src/background/components/background.js b/src/background/components/background.js index 9ba733d..3667f14 100644 --- a/src/background/components/background.js +++ b/src/background/components/background.js @@ -1,6 +1,5 @@ import messages from 'shared/messages'; import * as commandActions from 'background/actions/command'; -import * as findActions from 'background/actions/find'; import * as tabActions from 'background/actions/tab'; export default class BackgroundComponent { @@ -21,7 +20,6 @@ export default class BackgroundComponent { onMessage(message, sender) { let settings = this.store.getState().setting; - let find = this.store.getState().find; switch (message.type) { case messages.OPEN_URL: @@ -37,11 +35,6 @@ export default class BackgroundComponent { commandActions.exec(sender.tab, message.text, settings.value), ); return this.broadcastSettingsChanged(); - case messages.FIND_GET_KEYWORD: - return Promise.resolve(find.keyword); - case messages.FIND_SET_KEYWORD: - this.store.dispatch(findActions.setKeyword(message.keyword)); - return Promise.resolve({}); } } diff --git a/src/background/controllers/find.js b/src/background/controllers/find.js new file mode 100644 index 0000000..7096014 --- /dev/null +++ b/src/background/controllers/find.js @@ -0,0 +1,15 @@ +import FindInteractor from '../usecases/find'; + +export default class FindController { + constructor() { + this.findInteractor = new FindInteractor(); + } + + getKeyword() { + return this.findInteractor.getKeyword(); + } + + setKeyword(keyword) { + return this.findInteractor.setKeyword(keyword); + } +} diff --git a/src/background/infrastructures/content-message-listener.js b/src/background/infrastructures/content-message-listener.js index 6236f1c..00dba51 100644 --- a/src/background/infrastructures/content-message-listener.js +++ b/src/background/infrastructures/content-message-listener.js @@ -1,11 +1,13 @@ import messages from '../../shared/messages'; import CompletionsController from '../controllers/completions'; import SettingController from '../controllers/setting'; +import FindController from '../controllers/find'; export default class ContentMessageListener { constructor() { this.settingController = new SettingController(); this.completionsController = new CompletionsController(); + this.findController = new FindController(); } run() { @@ -29,6 +31,10 @@ export default class ContentMessageListener { return this.onSettingsQuery(); case messages.SETTINGS_RELOAD: return this.onSettingsReload(); + case messages.FIND_GET_KEYWORD: + return this.onFindGetKeyword(); + case messages.FIND_SET_KEYWORD: + return this.onFindSetKeyword(message.keyword); } } @@ -44,4 +50,12 @@ export default class ContentMessageListener { onSettingsReload() { return this.settingController.reload(); } + + onFindGetKeyword() { + return this.findController.getKeyword(); + } + + onFindSetKeyword(keyword) { + return this.findController.setKeyword(keyword); + } } diff --git a/src/background/repositories/find.js b/src/background/repositories/find.js new file mode 100644 index 0000000..9482e78 --- /dev/null +++ b/src/background/repositories/find.js @@ -0,0 +1,18 @@ +import MemoryStorage from '../infrastructures/memory-storage'; + +const FIND_KEYWORD_KEY = 'find-keyword'; + +export default class FindRepository { + constructor() { + this.cache = new MemoryStorage(); + } + + getKeyword() { + return Promise.resolve(this.cache.get(FIND_KEYWORD_KEY)); + } + + setKeyword(keyword) { + return this.cache.set(FIND_KEYWORD_KEY, keyword); + } +} + diff --git a/src/background/usecases/find.js b/src/background/usecases/find.js new file mode 100644 index 0000000..eae480d --- /dev/null +++ b/src/background/usecases/find.js @@ -0,0 +1,15 @@ +import FindRepository from '../repositories/find'; + +export default class FindInteractor { + constructor() { + this.findRepository = new FindRepository(); + } + + getKeyword() { + return this.findRepository.getKeyword(); + } + + setKeyword(keyword) { + return this.findRepository.setKeyword(keyword); + } +}