mirror of
https://github.com/zadam/trilium.git
synced 2025-12-04 14:34:24 +01:00
refactor(suggestion): improve naming
This commit is contained in:
parent
4e5c26371e
commit
8ee59e9daa
@ -57,10 +57,10 @@ export enum SuggestionAction {
|
||||
Command = "command",
|
||||
}
|
||||
|
||||
export enum CreateMode {
|
||||
None = "none",
|
||||
CreateOnly = "create-only",
|
||||
CreateAndLink = "create-and-link"
|
||||
export enum SuggestionMode {
|
||||
SuggestNothing = "nothing",
|
||||
SuggestCreateOnly = "create-only",
|
||||
SuggestCreateAndLink = "create-and-link"
|
||||
}
|
||||
|
||||
// NOTE: Previously marked for deduplication with a server-side type,
|
||||
@ -86,7 +86,7 @@ export interface Suggestion {
|
||||
export interface Options {
|
||||
container?: HTMLElement | null;
|
||||
fastSearch?: boolean;
|
||||
createMode?: CreateMode;
|
||||
suggestionMode?: SuggestionMode;
|
||||
allowJumpToSearchNotes?: boolean;
|
||||
allowExternalLinks?: boolean;
|
||||
/** If set, hides the right-side button corresponding to go to selected note. */
|
||||
@ -99,7 +99,7 @@ export interface Options {
|
||||
|
||||
async function autocompleteSourceForCKEditor(
|
||||
queryText: string,
|
||||
createMode: CreateMode
|
||||
suggestionMode: SuggestionMode
|
||||
): Promise<MentionFeedObjectItem[]> {
|
||||
// Wrap the callback-based autocompleteSource in a Promise for async/await
|
||||
const rows = await new Promise<Suggestion[]>((resolve) => {
|
||||
@ -107,7 +107,7 @@ async function autocompleteSourceForCKEditor(
|
||||
queryText,
|
||||
(suggestions) => resolve(suggestions),
|
||||
{
|
||||
createMode,
|
||||
suggestionMode,
|
||||
}
|
||||
);
|
||||
});
|
||||
@ -179,8 +179,8 @@ async function autocompleteSource(
|
||||
|
||||
// --- Create Note suggestions ---
|
||||
if (trimmedTerm.length >= 1) {
|
||||
switch (options.createMode) {
|
||||
case CreateMode.CreateOnly: {
|
||||
switch (options.suggestionMode) {
|
||||
case SuggestionMode.SuggestCreateOnly: {
|
||||
results = [
|
||||
{
|
||||
action: SuggestionAction.CreateNote,
|
||||
@ -199,7 +199,7 @@ async function autocompleteSource(
|
||||
break;
|
||||
}
|
||||
|
||||
case CreateMode.CreateAndLink: {
|
||||
case SuggestionMode.SuggestCreateAndLink: {
|
||||
results = [
|
||||
{
|
||||
action: SuggestionAction.CreateAndLinkNote,
|
||||
|
||||
@ -3,7 +3,7 @@ import server from "../../services/server.js";
|
||||
import froca from "../../services/froca.js";
|
||||
import linkService from "../../services/link.js";
|
||||
import attributeAutocompleteService from "../../services/attribute_autocomplete.js";
|
||||
import noteAutocompleteService, { CreateMode } from "../../services/note_autocomplete.js";
|
||||
import noteAutocompleteService, { SuggestionMode } from "../../services/note_autocomplete.js";
|
||||
import promotedAttributeDefinitionParser from "../../services/promoted_attribute_definition_parser.js";
|
||||
import NoteContextAwareWidget from "../note_context_aware_widget.js";
|
||||
import SpacedUpdate from "../../services/spaced_update.js";
|
||||
@ -429,7 +429,7 @@ export default class AttributeDetailWidget extends NoteContextAwareWidget {
|
||||
this.$rowTargetNote = this.$widget.find(".attr-row-target-note");
|
||||
this.$inputTargetNote = this.$widget.find(".attr-input-target-note");
|
||||
|
||||
noteAutocompleteService.initNoteAutocomplete(this.$inputTargetNote, { createMode: CreateMode.CreateAndLink }).on("autocomplete:noteselected", (event, suggestion, dataset) => {
|
||||
noteAutocompleteService.initNoteAutocomplete(this.$inputTargetNote, { suggestionMode: SuggestionMode.SuggestCreateAndLink }).on("autocomplete:noteselected", (event, suggestion, dataset) => {
|
||||
if (!suggestion.notePath) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@ import FormTextArea from "../../react/FormTextArea";
|
||||
import FNote from "../../../entities/fnote";
|
||||
import NoteAutocomplete from "../../react/NoteAutocomplete";
|
||||
import toast from "../../../services/toast";
|
||||
import { CreateMode } from "../../../services/note_autocomplete";
|
||||
import { SuggestionMode } from "../../../services/note_autocomplete";
|
||||
|
||||
export interface BoardViewData {
|
||||
columns?: BoardColumnData[];
|
||||
@ -299,7 +299,7 @@ export function TitleEditor({ currentValue, placeholder, save, dismiss, mode, is
|
||||
noteId={currentValue ?? ""}
|
||||
opts={{
|
||||
hideAllButtons: true,
|
||||
createMode: CreateMode.CreateAndLink
|
||||
suggestionMode: SuggestionMode.SuggestCreateAndLink
|
||||
}}
|
||||
onKeyDown={(e) => {
|
||||
if (e.key === "Escape") {
|
||||
|
||||
@ -6,7 +6,7 @@ import Icon from "../../react/Icon.jsx";
|
||||
import { useEffect, useRef, useState } from "preact/hooks";
|
||||
import froca from "../../../services/froca.js";
|
||||
import NoteAutocomplete from "../../react/NoteAutocomplete.jsx";
|
||||
import { CreateMode } from "../../../services/note_autocomplete.js";
|
||||
import { SuggestionMode } from "../../../services/note_autocomplete.js";
|
||||
|
||||
type ColumnType = LabelType | "relation";
|
||||
|
||||
@ -228,7 +228,7 @@ function RelationEditor({ cell, success }: EditorOpts) {
|
||||
inputRef={inputRef}
|
||||
noteId={cell.getValue()}
|
||||
opts={{
|
||||
createMode: CreateMode.CreateAndLink,
|
||||
suggestionMode: SuggestionMode.SuggestCreateAndLink,
|
||||
hideAllButtons: true
|
||||
}}
|
||||
noteIdChanged={success}
|
||||
|
||||
@ -5,7 +5,7 @@ import FormRadioGroup from "../react/FormRadioGroup";
|
||||
import NoteAutocomplete from "../react/NoteAutocomplete";
|
||||
import { useRef, useState, useEffect } from "preact/hooks";
|
||||
import tree from "../../services/tree";
|
||||
import note_autocomplete, { CreateMode, Suggestion } from "../../services/note_autocomplete";
|
||||
import note_autocomplete, { SuggestionMode, Suggestion } from "../../services/note_autocomplete";
|
||||
import { logError } from "../../services/ws";
|
||||
import FormGroup from "../react/FormGroup.js";
|
||||
import { refToJQuerySelector } from "../react/react_utils";
|
||||
@ -133,7 +133,7 @@ export default function AddLinkDialog() {
|
||||
onChange={setSuggestion}
|
||||
opts={{
|
||||
allowExternalLinks: true,
|
||||
createMode: CreateMode.CreateAndLink,
|
||||
suggestionMode: SuggestionMode.SuggestCreateAndLink,
|
||||
}}
|
||||
/>
|
||||
</FormGroup>
|
||||
|
||||
@ -5,7 +5,7 @@ import FormRadioGroup from "../react/FormRadioGroup";
|
||||
import Modal from "../react/Modal";
|
||||
import NoteAutocomplete from "../react/NoteAutocomplete";
|
||||
import Button from "../react/Button";
|
||||
import { CreateMode, Suggestion, triggerRecentNotes } from "../../services/note_autocomplete.js";
|
||||
import { SuggestionMode, Suggestion, triggerRecentNotes } from "../../services/note_autocomplete.js";
|
||||
import tree from "../../services/tree";
|
||||
import froca from "../../services/froca";
|
||||
import { useTriliumEvent } from "../react/hooks";
|
||||
@ -50,7 +50,7 @@ export default function IncludeNoteDialog() {
|
||||
inputRef={autoCompleteRef}
|
||||
opts={{
|
||||
hideGoToSelectedNoteButton: true,
|
||||
createMode: CreateMode.CreateOnly,
|
||||
suggestionMode: SuggestionMode.SuggestCreateOnly,
|
||||
}}
|
||||
/>
|
||||
</FormGroup>
|
||||
|
||||
@ -3,7 +3,7 @@ import Button from "../react/Button";
|
||||
import NoteAutocomplete from "../react/NoteAutocomplete";
|
||||
import { t } from "../../services/i18n";
|
||||
import { useRef, useState } from "preact/hooks";
|
||||
import note_autocomplete, { CreateMode, Suggestion } from "../../services/note_autocomplete.js";
|
||||
import note_autocomplete, { SuggestionMode, Suggestion } from "../../services/note_autocomplete.js";
|
||||
import appContext from "../../components/app_context";
|
||||
import commandRegistry from "../../services/command_registry";
|
||||
import { refToJQuerySelector } from "../react/react_utils";
|
||||
@ -135,7 +135,7 @@ export default function JumpToNoteDialogComponent() {
|
||||
container={containerRef}
|
||||
text={initialText}
|
||||
opts={{
|
||||
createMode: CreateMode.CreateOnly,
|
||||
suggestionMode: SuggestionMode.SuggestCreateOnly,
|
||||
hideGoToSelectedNoteButton: true,
|
||||
allowJumpToSearchNotes: true,
|
||||
isCommandPalette: true
|
||||
|
||||
@ -7,7 +7,7 @@ import { useEffect, useState } from "preact/hooks";
|
||||
import note_types from "../../services/note_types";
|
||||
import { MenuCommandItem, MenuItem } from "../../menus/context_menu";
|
||||
import { TreeCommandNames } from "../../menus/tree_context_menu";
|
||||
import { CreateMode, Suggestion } from "../../services/note_autocomplete.js";
|
||||
import { SuggestionMode, Suggestion } from "../../services/note_autocomplete.js";
|
||||
import Badge from "../react/Badge";
|
||||
import { useTriliumEvent } from "../react/hooks";
|
||||
|
||||
@ -86,7 +86,7 @@ export default function NoteTypeChooserDialogComponent() {
|
||||
onChange={setParentNote}
|
||||
placeholder={t("note_type_chooser.search_placeholder")}
|
||||
opts={{
|
||||
createMode: CreateMode.None,
|
||||
suggestionMode: SuggestionMode.SuggestNothing,
|
||||
hideGoToSelectedNoteButton: true,
|
||||
allowJumpToSearchNotes: false,
|
||||
}}
|
||||
|
||||
@ -5,7 +5,7 @@ import BasicWidget from "../basic_widget.js";
|
||||
import toastService from "../../services/toast.js";
|
||||
import appContext from "../../components/app_context.js";
|
||||
import server from "../../services/server.js";
|
||||
import noteAutocompleteService, { CreateMode } from "../../services/note_autocomplete.js";
|
||||
import noteAutocompleteService, { SuggestionMode } from "../../services/note_autocomplete.js";
|
||||
|
||||
import { TPL, addMessageToChat, showSources, hideSources, showLoadingIndicator, hideLoadingIndicator } from "./ui.js";
|
||||
import { formatMarkdown } from "./utils.js";
|
||||
@ -163,7 +163,7 @@ export default class LlmChatPanel extends BasicWidget {
|
||||
const mentionSetup: MentionFeed[] = [
|
||||
{
|
||||
marker: "@",
|
||||
feed: (queryText: string) => noteAutocompleteService.autocompleteSourceForCKEditor(queryText, CreateMode.CreateAndLink),
|
||||
feed: (queryText: string) => noteAutocompleteService.autocompleteSourceForCKEditor(queryText, SuggestionMode.SuggestCreateAndLink),
|
||||
itemRenderer: (item) => {
|
||||
const suggestion = item as Suggestion;
|
||||
const itemElement = document.createElement("button");
|
||||
|
||||
@ -2,7 +2,7 @@ import { MutableRef, useEffect, useImperativeHandle, useMemo, useRef, useState }
|
||||
import { AttributeEditor as CKEditorAttributeEditor, MentionFeed, ModelElement, ModelNode, ModelPosition } from "@triliumnext/ckeditor5";
|
||||
import { t } from "../../../services/i18n";
|
||||
import server from "../../../services/server";
|
||||
import note_autocomplete, { CreateMode, Suggestion } from "../../../services/note_autocomplete.js";
|
||||
import note_autocomplete, { SuggestionMode, Suggestion } from "../../../services/note_autocomplete.js";
|
||||
import CKEditor, { CKEditorApi } from "../../react/CKEditor";
|
||||
import { useLegacyImperativeHandlers, useLegacyWidget, useTooltip, useTriliumEvent, useTriliumOption } from "../../react/hooks";
|
||||
import FAttribute from "../../../entities/fattribute";
|
||||
@ -34,7 +34,7 @@ const HELP_TEXT = `
|
||||
const mentionSetup: MentionFeed[] = [
|
||||
{
|
||||
marker: "@",
|
||||
feed: (queryText) => note_autocomplete.autocompleteSourceForCKEditor(queryText, CreateMode.CreateAndLink),
|
||||
feed: (queryText) => note_autocomplete.autocompleteSourceForCKEditor(queryText, SuggestionMode.SuggestCreateAndLink),
|
||||
itemRenderer: (_item) => {
|
||||
const item = _item as Suggestion;
|
||||
const itemElement = document.createElement("button");
|
||||
|
||||
@ -4,7 +4,7 @@ import FormGroup from "../react/FormGroup";
|
||||
import NoteAutocomplete from "../react/NoteAutocomplete";
|
||||
import "./Empty.css";
|
||||
import { ParentComponent, refToJQuerySelector } from "../react/react_utils";
|
||||
import note_autocomplete, { CreateMode } from "../../services/note_autocomplete";
|
||||
import note_autocomplete, { SuggestionMode } from "../../services/note_autocomplete";
|
||||
import appContext from "../../components/app_context";
|
||||
import FNote from "../../entities/fnote";
|
||||
import search from "../../services/search";
|
||||
@ -38,7 +38,7 @@ function NoteSearch() {
|
||||
inputRef={autocompleteRef}
|
||||
opts={{
|
||||
hideGoToSelectedNoteButton: true,
|
||||
createMode: CreateMode.CreateOnly,
|
||||
suggestionMode: SuggestionMode.SuggestCreateOnly,
|
||||
allowJumpToSearchNotes: true,
|
||||
}}
|
||||
onChange={suggestion => {
|
||||
|
||||
@ -7,7 +7,7 @@ import emojiDefinitionsUrl from "@triliumnext/ckeditor5/src/emoji_definitions/en
|
||||
import { copyTextWithToast } from "../../../services/clipboard_ext.js";
|
||||
import { t } from "../../../services/i18n.js";
|
||||
import { getMermaidConfig } from "../../../services/mermaid.js";
|
||||
import noteAutocompleteService, { CreateMode, type Suggestion } from "../../../services/note_autocomplete.js";
|
||||
import noteAutocompleteService, { SuggestionMode, type Suggestion } from "../../../services/note_autocomplete.js";
|
||||
import mimeTypesService from "../../../services/mime_types.js";
|
||||
import { normalizeMimeTypeForCKEditor } from "@triliumnext/commons";
|
||||
import { buildToolbarConfig } from "./toolbar.js";
|
||||
@ -181,7 +181,7 @@ export async function buildConfig(opts: BuildEditorOptions): Promise<EditorConfi
|
||||
feeds: [
|
||||
{
|
||||
marker: "@",
|
||||
feed: (queryText: string) => noteAutocompleteService.autocompleteSourceForCKEditor(queryText, CreateMode.CreateAndLink),
|
||||
feed: (queryText: string) => noteAutocompleteService.autocompleteSourceForCKEditor(queryText, SuggestionMode.SuggestCreateAndLink),
|
||||
itemRenderer: (item) => {
|
||||
const itemElement = document.createElement("button");
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user