Skip to content

Commit

Permalink
feat: Implement search feature
Browse files Browse the repository at this point in the history
  • Loading branch information
Ldoppea committed Jan 16, 2025
1 parent 4a6f07b commit d83be71
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ import LauncherView from '/screens/konnectors/LauncherView'
import { makeImportantFilesAvailableOfflineInBackground } from '/app/domain/io.cozy.files/importantFiles'
import { useOfflineReplicationOnRealtime } from '/app/domain/offline/hooks/useOfflineReplicationOnRealtime'
import { useShareFiles } from '/app/domain/osReceive/services/shareFilesService'
import { initSearchEngine } from '/app/domain/search/search'
import { ClouderyOffer } from '/app/view/IAP/ClouderyOffer'
import { useDimensions } from '/libs/dimensions'
import { configureFileLogger } from '/app/domain/logger/fileLogger'
Expand Down Expand Up @@ -135,6 +136,12 @@ const App = ({ setClient }) => {
useOfflineDebugUniversalLinks(client)
usePerformancesUniversalLinks(client)

useEffect(() => {
if (client) {
initSearchEngine(client)
}
}, [client])

const {
LauncherDialog,
canDisplayLauncher,
Expand Down
20 changes: 20 additions & 0 deletions src/app/domain/search/search.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import CozyClient from 'cozy-client'
import { SearchEngine } from 'cozy-dataproxy-lib/dist/api'
import type { SearchOptions } from 'cozy-dataproxy-lib/dist/search/types'
import Minilog from 'cozy-minilog'

const log = Minilog('📱🗂️ Search')

let searchEngine: SearchEngine | undefined = undefined

export const initSearchEngine = (client: CozyClient): void => {
log.debug('Init SearchEngine')
searchEngine = new SearchEngine(client)
}

export const search = (query: string, options: SearchOptions): unknown => {
log.debug('Search for', query)
if (!searchEngine) return undefined

return searchEngine.search(query, options)
}
13 changes: 13 additions & 0 deletions src/libs/intents/localMethods.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { getDeviceName } from 'react-native-device-info'

import CozyClient, { QueryDefinition } from 'cozy-client'
import type { FileDocument } from 'cozy-client/types/types'
import type { SearchOptions } from 'cozy-dataproxy-lib/dist/search/types'
import {
FlagshipUI,
NativeMethodsRegisterWithOptions,
Expand All @@ -17,6 +18,7 @@ import {
isScannerAvailable
} from '/app/domain/scanner/services/scanner'
import { processOcr, isOcrAvailable } from '/app/domain/ocr/services/ocr'
import { search as doSearch } from '/app/domain/search/search'
import { setColorScheme } from '/app/theme/colorScheme'
import { printBase64Doc as print } from '/libs/intents/printBase64Doc'
import { setHomeThemeIntent } from '/libs/intents/setHomeThemeIntent'
Expand Down Expand Up @@ -95,6 +97,10 @@ export const backToHome = (): Promise<null> => {
return Promise.resolve(null)
}

const search = (query: string, options: SearchOptions): unknown => {
return doSearch(query, options)
}

const isAvailable = (featureName: string): Promise<boolean> => {
if (featureName === 'geolocationTracking') {
return Promise.resolve(true)
Expand All @@ -116,6 +122,8 @@ const isAvailable = (featureName: string): Promise<boolean> => {
return Promise.resolve(true)
} else if (featureName === 'downloadFile') {
return Promise.resolve(true)
} else if (featureName === 'search') {
return Promise.resolve(true)
}

return Promise.resolve(false)
Expand Down Expand Up @@ -407,6 +415,11 @@ export const localMethods = (
flagshipLinkRequest(operation as QueryDefinition, client),
downloadFile: (_options, file) =>
downloadFileAndPreview(file as FileDocument, client),
search: (
_options: PostMeMessageOptions,
query: string,
options: SearchOptions
) => search(query, options),
...mergedMethods
}
}

0 comments on commit d83be71

Please sign in to comment.