diff --git a/browser/finder/index.js b/browser/finder/index.js
index 7fef8c7d..36521d1c 100644
--- a/browser/finder/index.js
+++ b/browser/finder/index.js
@@ -119,9 +119,9 @@ FinderMain.propTypes = {
function remap (state) {
let { articles, folders, status } = state
- let filters = status.search.split(' ').map(key => key.trim()).filter(key => key.length > 0 && !key.match(/^#$/)).map(key => {
- if (key.match(/^in:.+$/)) {
- return {type: FOLDER_FILTER, value: key.match(/^in:(.+)$/)[1]}
+ let filters = status.search.split(' ').map(key => key.trim()).filter(key => key.length > 0 && !key.match(/^\/$/) && !key.match(/^#$/)).map(key => {
+ if (key.match(/^\/.+$/)) {
+ return {type: FOLDER_FILTER, value: key.match(/^\/(.+)$/)[1]}
}
if (key.match(/^#(.+)/)) {
return {type: TAG_FILTER, value: key.match(/^#(.+)$/)[1]}
@@ -134,7 +134,7 @@ function remap (state) {
if (folders != null) {
let targetFolders = folders.filter(folder => {
- return _.findWhere(folderFilters, {value: folder.name})
+ return _.find(folderFilters, filter => folder.name.match(new RegExp(`^${filter.value}`)))
})
status.targetFolders = targetFolders
@@ -164,6 +164,7 @@ function remap (state) {
let activeArticle = _.findWhere(articles, {key: status.articleKey})
if (activeArticle == null) activeArticle = articles[0]
+ console.log(status.search)
return {
articles,
activeArticle,
diff --git a/browser/finder/reducer.js b/browser/finder/reducer.js
index 72b087c3..76ddde7f 100644
--- a/browser/finder/reducer.js
+++ b/browser/finder/reducer.js
@@ -14,10 +14,10 @@ function status (state = initialStatus, action) {
switch (action.type) {
case SELECT_ARTICLE:
state.articleKey = action.data.key
- return state
+ return Object.assign({}, state)
case SEARCH_ARTICLE:
state.search = action.data.input
- return state
+ return Object.assign({}, state)
default:
return state
}
diff --git a/browser/main/HomePage.js b/browser/main/HomePage.js
index 57094068..e3fe68be 100644
--- a/browser/main/HomePage.js
+++ b/browser/main/HomePage.js
@@ -143,9 +143,9 @@ function remap (state) {
})
// Filter articles
- let filters = status.search.split(' ').map(key => key.trim()).filter(key => key.length > 0 && !key.match(/^#$/)).map(key => {
- if (key.match(/^in:.+$/)) {
- return {type: FOLDER_FILTER, value: key.match(/^in:(.+)$/)[1]}
+ let filters = status.search.split(' ').map(key => key.trim()).filter(key => key.length > 0 && !key.match(/^\/$/) && !key.match(/^#$/)).map(key => {
+ if (key.match(/^\/.+/)) {
+ return {type: FOLDER_FILTER, value: key.match(/^\/(.+)$/)[1]}
}
if (key.match(/^#(.+)/)) {
return {type: TAG_FILTER, value: key.match(/^#(.+)$/)[1]}
@@ -158,7 +158,7 @@ function remap (state) {
if (folders != null) {
let targetFolders = folders.filter(folder => {
- return _.findWhere(folderFilters, {value: folder.name})
+ return _.find(folderFilters, filter => folder.name.match(new RegExp(`^${filter.value}`)))
})
status.targetFolders = targetFolders
@@ -204,7 +204,7 @@ function remap (state) {
let newArticle = _.findWhere(articles, {status: 'NEW'})
let FolderKey = folders[0].key
if (folderFilters.length > 0) {
- let targetFolder = _.findWhere(folders, {name: folderFilters[0].value})
+ let targetFolder = _.find(folders, folder => folder.name.match(new RegExp(`^${folderFilters[0].value}`)))
if (targetFolder != null) FolderKey = targetFolder.key
}
diff --git a/browser/main/HomePage/ArticleTopBar.js b/browser/main/HomePage/ArticleTopBar.js
index bfa38cae..285b95de 100644
--- a/browser/main/HomePage/ArticleTopBar.js
+++ b/browser/main/HomePage/ArticleTopBar.js
@@ -10,7 +10,7 @@ const searchTutorialElement = (
Search some posts!!
{'- Search by tag : #{string}'}
- {'- Search by folder : in:{folder_name}\n'}
+ {'- Search by folder : /{folder_name}\n'}