refactor: fix missing function def

This commit is contained in:
JYC333 2026-03-09 17:17:12 +00:00
parent fb3826552a
commit 5223e2ac86
3 changed files with 23 additions and 6 deletions

View File

@ -2,6 +2,7 @@ import type { AutocompleteApi as CoreAutocompleteApi, BaseItem } from "@algolia/
import { createAutocomplete } from "@algolia/autocomplete-core";
import type { AttributeType } from "../entities/fattribute.js";
import { withHeadlessSourceDefaults } from "./autocomplete_core.js";
import server from "./server.js";
// ---------------------------------------------------------------------------
@ -133,7 +134,7 @@ function initAttributeNameAutocomplete({ $el, attributeType, open, onValueChange
getSources({ query }) {
return [
{
withHeadlessSourceDefaults<NameItem>({
sourceId: "attribute-names",
getItems() {
const type = typeof attributeType === "function" ? attributeType() : attributeType;
@ -150,7 +151,7 @@ function initAttributeNameAutocomplete({ $el, attributeType, open, onValueChange
autocomplete.setIsOpen(false);
onValueChange?.(item.name);
},
},
}),
];
},
@ -325,7 +326,7 @@ function initLabelValueAutocomplete({ $el, open, nameCallback, onValueChange }:
getSources({ query }) {
return [
{
withHeadlessSourceDefaults<NameItem>({
sourceId: "attribute-values",
async getItems() {
const attributeName = nameCallback ? nameCallback() : "";
@ -348,7 +349,7 @@ function initLabelValueAutocomplete({ $el, open, nameCallback, onValueChange }:
onSelect({ item }) {
handleSelect(item);
},
},
}),
];
},

View File

@ -0,0 +1,15 @@
import type { AutocompleteSource, BaseItem } from "@algolia/autocomplete-core";
export function withHeadlessSourceDefaults<TItem extends BaseItem>(
source: AutocompleteSource<TItem>
): AutocompleteSource<TItem> {
return {
getItemUrl() {
return undefined;
},
onActive() {
// Headless consumers handle highlight side effects themselves.
},
...source
};
}

View File

@ -3,6 +3,7 @@ import { createAutocomplete } from "@algolia/autocomplete-core";
import type { MentionFeedObjectItem } from "@triliumnext/ckeditor5";
import appContext from "../components/app_context.js";
import { withHeadlessSourceDefaults } from "./autocomplete_core.js";
import commandRegistry from "./command_registry.js";
import froca from "./froca.js";
import { t } from "./i18n.js";
@ -201,7 +202,7 @@ function renderSuggestion(item: Suggestion): string {
}
function createSuggestionSource(options: Options, onSelectItem: (item: Suggestion) => void) {
return {
return withHeadlessSourceDefaults<Suggestion>({
sourceId: "note-suggestions",
async getItems({ query }: { query: string }) {
return await fetchResolvedSuggestions(query, options);
@ -212,7 +213,7 @@ function createSuggestionSource(options: Options, onSelectItem: (item: Suggestio
onSelect({ item }: { item: Suggestion }) {
void onSelectItem(item);
}
};
});
}
function renderItems(