diff --git a/app/src/config/util/snippets.ts b/app/src/config/util/snippets.ts
index e04651782..ae9d29672 100644
--- a/app/src/config/util/snippets.ts
+++ b/app/src/config/util/snippets.ts
@@ -65,7 +65,7 @@ export const openSnippets = () => {
-
+
@@ -81,7 +81,7 @@ export const openSnippets = () => {
-
+
@@ -162,28 +162,34 @@ export const openSnippets = () => {
}
});
dialog.element.querySelectorAll('[data-action="search"]').forEach((inputItem: HTMLInputElement) => {
- inputItem.addEventListener("keydown", (event: KeyboardEvent) => {
- if (event.key === "Enter" && !event.isComposing) {
- fetchPost("/api/snippet/getSnippet", {
- type: "all",
- enabled: 2,
- keyword: inputItem.value
- }, (searchResponse) => {
- dialog.element.querySelectorAll(`.fn__flex-1 > div > [data-type="${inputItem.dataset.type}"]`).forEach((snipeetPanel: Element) => {
- snipeetPanel.classList.add("fn__none");
- });
- searchResponse.data.snippets.forEach((snippetItem: ISnippet) => {
- if (snippetItem.type === inputItem.dataset.type) {
- dialog.element.querySelector(`[data-id="${snippetItem.id}"]`).classList.remove("fn__none");
- }
- });
- });
+ inputItem.addEventListener("input", (event: KeyboardEvent) => {
+ if (event.isComposing) {
+ return
}
+ filterSnippet(dialog, inputItem)
+ });
+ inputItem.addEventListener("compositionend", () => {
+ filterSnippet(dialog, inputItem)
});
});
});
};
+const filterSnippet = (dialog: Dialog, inputItem: HTMLInputElement) => {
+ dialog.element.querySelectorAll(`.fn__flex-1 > div > [data-type="${inputItem.dataset.type}"]`).forEach((snippetPanel: Element) => {
+ const snippetName = snippetPanel.querySelector("input").value.toLowerCase();
+ const snippetContent = snippetPanel.querySelector("textarea").value.toLowerCase();
+ const searchValue = inputItem.value.toLowerCase();
+ if (!searchValue ||
+ (snippetName && (searchValue.includes(snippetName) || snippetName.includes(searchValue))) ||
+ (snippetContent && (snippetContent.includes(searchValue) || searchValue.includes(snippetContent)))) {
+ snippetPanel.classList.remove("fn__none");
+ } else {
+ snippetPanel.classList.add("fn__none");
+ }
+ });
+}
+
const genSnippet = (options: ISnippet) => {
return `