Merge pull request #3309 from omnivore-app/fix/includes-query

if the query contains includes:, we want to search in all folders
This commit is contained in:
Jackson Harper 2024-01-03 17:48:41 +08:00 committed by GitHub
commit 0b098e640f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,7 +1,7 @@
import { LiqeQuery, parse } from '@omnivore/liqe'
export const parseSearchQuery = (query: string): LiqeQuery => {
const searchQuery = query
let searchQuery = query
.replace(/\W\s":/g, '')
.replace('in:subscription', 'has:subscriptions') // compatibility with old search
.replace('in:library', 'no:subscription') // compatibility with old search
@ -10,9 +10,14 @@ export const parseSearchQuery = (query: string): LiqeQuery => {
// remove any quotes that are in the array value for example: label:"test","test2" -> label:"test,test2"
.replace(/","/g, ',')
// if the query contains includes:, we want to search in all folders
if (searchQuery.includes('includes:')) {
searchQuery = `(${searchQuery}) in:all`
}
// by default we want to search in the inbox if no in: is specified
if (!searchQuery.includes('in:')) {
return parse(`(${searchQuery}) in:inbox`)
searchQuery = `(${searchQuery}) in:inbox`
}
return parse(searchQuery)