diff --git a/Cliqz/React Components/Modules/BrowserActions.swift b/Cliqz/React Components/Modules/BrowserActions.swift index d29ca4bf7..83613a787 100644 --- a/Cliqz/React Components/Modules/BrowserActions.swift +++ b/Cliqz/React Components/Modules/BrowserActions.swift @@ -49,22 +49,27 @@ open class BrowserActions: RCTEventEmitter { } @objc(searchHistory:callback:) - func searchHistory(query: NSString, callback: RCTResponseSenderBlock) { + func searchHistory(query: NSString, callback: @escaping RCTResponseSenderBlock) { debugPrint("searchHistory") - callback([getHistory()]) - } - func getHistory() -> [[String: String]] { - var results: [[String: String]] = [] - if let r = HistoryListener.shared.historyResults { - for site in r { - if let siteUrl = site?.url, let url = URL(string: siteUrl), !isDuckduckGoRedirectURL(url) { - let d = ["url": site!.url, "title": site!.title] - results.append(d) + DispatchQueue.main.async { + if let appDel = UIApplication.shared.delegate as? AppDelegate { + if let profile = appDel.profile { + var results: [[String: String]] = [] + let frecentHistory = profile.history.getFrecentHistory() + frecentHistory.getSites(whereURLContains: query as String, historyLimit: 100, bookmarksLimit: 5) + >>== { (sites: Cursor) in + for site in sites { + if let siteUrl = site?.url, let url = URL(string: siteUrl), !self.isDuckduckGoRedirectURL(url) { + let d = ["url": site!.url, "title": site!.title] + results.append(d) + } + } + callback([results]) + } } } } - return results } private func isDuckduckGoRedirectURL(_ url: URL) -> Bool {