refactor: impl
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user