refactor: impl

This commit is contained in:
2026-03-01 13:54:48 +08:00
parent 62780e3e56
commit bda201ae81
6 changed files with 187 additions and 62 deletions
@@ -4,20 +4,22 @@ import type {
CompletionItem,
TrackerItem,
TrackerAttribute,
TrackerCommand,
TrackerViewMode,
MdCommanderCommandMap,
TrackerCommand,
} from "../types";
import { parseInput, getCompletions } from "./completions";
import {
addTrackerItem,
getTrackerHistory,
getTrackerItems,
moveTrackerItem, removeTrackerClass,
moveTrackerItem,
removeTrackerClass,
removeTrackerItem,
updateTrackerAttribute,
updateTrackerClasses
updateTrackerClasses,
} from "../stores";
import { addEntry, getEntries, clearEntries } from "../stores/entriesStore";
// ==================== Commander Hook ====================
@@ -29,7 +31,6 @@ export interface UseCommanderReturn {
selectedCompletion: () => number;
isFocused: () => boolean;
setInputValue: (v: string) => void;
setEntries: (updater: (prev: CommanderEntry[]) => CommanderEntry[]) => void;
setShowCompletions: (v: boolean) => void;
setSelectedCompletion: (v: number | ((prev: number) => number)) => void;
setIsFocused: (v: boolean) => void;
@@ -62,7 +63,6 @@ export interface UseCommanderReturn {
export function useCommander(initialCommands?: MdCommanderCommandMap): UseCommanderReturn {
const [inputValue, setInputValue] = createSignal("");
const [entries, setEntries] = createSignal<CommanderEntry[]>([]);
const [showCompletions, setShowCompletions] = createSignal(false);
const [completions, setCompletions] = createSignal<CompletionItem[]>([]);
const [selectedCompletion, setSelectedCompletionState] = createSignal(0);
@@ -72,6 +72,9 @@ export function useCommander(initialCommands?: MdCommanderCommandMap): UseComman
const [viewMode, setViewMode] = createSignal<TrackerViewMode>("history");
const [commands, setCommands] = createSignal<MdCommanderCommandMap>(initialCommands || {});
// 从 store 获取 entries
const entries = getEntries;
// ==================== 命令执行 ====================
const handleCommand = () => {
@@ -108,14 +111,15 @@ export function useCommander(initialCommands?: MdCommanderCommandMap): UseComman
timestamp: new Date(),
};
setEntries((prev) => [...prev, newEntry]);
// 使用 store 添加记录
addEntry(newEntry);
setCommandHistory((prev) => [...prev, input]);
setHistoryIndex(-1);
setInputValue("");
setShowCompletions(false);
if (commandName === "clear") {
setEntries([]);
clearEntries();
}
};
@@ -246,7 +250,6 @@ export function useCommander(initialCommands?: MdCommanderCommandMap): UseComman
selectedCompletion,
isFocused,
setInputValue,
setEntries,
setShowCompletions,
setSelectedCompletion,
setIsFocused,