feat: add search functionality for snippets with input field in UI

This commit is contained in:
2025-01-25 20:05:51 +02:00
parent fa08f2f8b9
commit dd56d4adc2
3 changed files with 32 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ export class UIManager {
constructor(snippetManager) {
this.snippetManager = snippetManager;
this.setupEventListeners();
this.setupSearchInput();
}
setupEventListeners() {
@@ -147,4 +148,25 @@ export class UIManager {
'View Saved' :
'View Draft';
}
setupSearchInput() {
const searchInput = document.getElementById('snippet-search');
searchInput.addEventListener('input', (e) => {
const query = e.target.value;
let filteredSnippets;
try {
const regex = new RegExp(query, 'i');
filteredSnippets = this.snippetManager.snippets.filter(snippet => {
const snippetText = JSON.stringify(snippet);
return regex.test(snippetText);
});
} catch (err) {
filteredSnippets = this.snippetManager.snippets.filter(snippet => {
const snippetText = JSON.stringify(snippet).toLowerCase();
return snippetText.includes(query.toLowerCase());
});
}
this.renderSnippetList(filteredSnippets, this.snippetManager.currentSnippetId);
});
}
}