mirror of
https://github.com/andy-stack/vaultkeeper-ai.git
synced 2026-07-22 16:30:27 +00:00
- Remove 3-character minimum search query requirement - Add dynamic padding to search results container - Style search results with icons, grid layout, and hover states - Fix missing semicolons in ChatInput event handlers - Implement auto-scroll for selected search result - Initialize vault cache after metadata resolution - Update tests to reflect removed query length validation
46 lines
No EOL
1.6 KiB
TypeScript
46 lines
No EOL
1.6 KiB
TypeScript
import { SearchTrigger } from "Enums/SearchTrigger";
|
|
import { Resolve } from "./DependencyService";
|
|
import { Services } from "./Services";
|
|
import type { VaultCacheService } from "./VaultCacheService";
|
|
import type { SearchStateStore } from "Stores/SearchStateStore";
|
|
import { get } from "svelte/store";
|
|
|
|
export class UserInputService {
|
|
|
|
private readonly vaultCacheService: VaultCacheService;
|
|
private readonly searchStateStore: SearchStateStore;
|
|
|
|
public constructor() {
|
|
this.vaultCacheService = Resolve<VaultCacheService>(Services.VaultCacheService);
|
|
this.searchStateStore = Resolve<SearchStateStore>(Services.SearchStateStore);
|
|
}
|
|
|
|
public get searchState() {
|
|
return this.searchStateStore.searchState;
|
|
}
|
|
|
|
public performSearch() {
|
|
const state = get(this.searchStateStore.searchState);
|
|
|
|
if (!state.active || state.trigger == null) {
|
|
this.searchStateStore.setResults([]);
|
|
return;
|
|
}
|
|
|
|
let results: string[] = [];
|
|
|
|
switch (state.trigger) {
|
|
case SearchTrigger.Tag:
|
|
results = this.vaultCacheService.matchTag(state.query).map(result => result.obj.tag);
|
|
break;
|
|
case SearchTrigger.File:
|
|
results = this.vaultCacheService.matchFile(state.query).map(result => result.obj.file.path);
|
|
break;
|
|
case SearchTrigger.Folder:
|
|
results = this.vaultCacheService.matchFolder(state.query).map(result => result.obj.folder.path);
|
|
break;
|
|
}
|
|
|
|
this.searchStateStore.setResults(results);
|
|
}
|
|
} |