diff --git a/apps/files/src/filters/FilenameFilter.ts b/apps/files/src/filters/FilenameFilter.ts index 5019ca42d83..7914142f6ca 100644 --- a/apps/files/src/filters/FilenameFilter.ts +++ b/apps/files/src/filters/FilenameFilter.ts @@ -4,17 +4,31 @@ */ import type { IFileListFilterChip, INode } from '@nextcloud/files' -import { FileListFilter } from '@nextcloud/files' + +import { subscribe } from '@nextcloud/event-bus' +import { FileListFilter, registerFileListFilter } from '@nextcloud/files' + +/** + * Register the filename filter + */ +export function registerFilenameFilter() { + registerFileListFilter(new FilenameFilter()) +} /** * Simple file list filter controlled by the Navigation search box */ -export class FilenameFilter extends FileListFilter { +class FilenameFilter extends FileListFilter { private searchQuery = '' constructor() { super('files:filename', 5) + subscribe('files:search:updated', ({ query, scope }) => { + if (scope === 'filter') { + this.updateQuery(query) + } + }) } public filter(nodes: INode[]): INode[] { diff --git a/apps/files/src/init.ts b/apps/files/src/init.ts index 492ffbb1915..e627e31bc98 100644 --- a/apps/files/src/init.ts +++ b/apps/files/src/init.ts @@ -33,6 +33,7 @@ import registerPreviewServiceWorker from './services/ServiceWorker.js' import { initLivePhotos } from './services/LivePhotos' import { isPublicShare } from '@nextcloud/sharing/public' import { registerConvertActions } from './actions/convertAction.ts' +import { registerFilenameFilter } from './filters/FilenameFilter.ts' // Register file actions registerConvertActions() @@ -65,6 +66,7 @@ if (isPublicShare() === false) { registerHiddenFilesFilter() registerTypeFilter() registerModifiedFilter() +registerFilenameFilter() // Register preview service worker registerPreviewServiceWorker()