giga-code
Version:
A personal AI CLI assistant powered by Grok for local development.
27 lines • 1.84 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CommandSuggestions = void 0;
const react_1 = __importDefault(require("react"));
const ink_1 = require("ink");
const fuzzy_search_1 = require("../../utils/fuzzy-search");
function CommandSuggestions({ suggestions, input, selectedIndex, isVisible, }) {
if (!isVisible)
return null;
const filteredSuggestions = input.startsWith("/")
? (0, fuzzy_search_1.fuzzySearch)(input.substring(1), // Remove the "/" for fuzzy matching
suggestions.filter(s => s.command.startsWith("/")), (suggestion) => suggestion.command.substring(1), // Remove "/" for matching
8)
: (0, fuzzy_search_1.fuzzySearch)(input, suggestions, (suggestion) => suggestion.command, 8);
return (react_1.default.createElement(ink_1.Box, { marginTop: 1, flexDirection: "column" },
filteredSuggestions.map((suggestion, index) => (react_1.default.createElement(ink_1.Box, { key: index, paddingLeft: 1 },
react_1.default.createElement(ink_1.Text, { color: index === selectedIndex ? "black" : "white", backgroundColor: index === selectedIndex ? "cyan" : undefined }, suggestion.command),
react_1.default.createElement(ink_1.Box, { marginLeft: 1 },
react_1.default.createElement(ink_1.Text, { color: "gray" }, suggestion.description))))),
react_1.default.createElement(ink_1.Box, { marginTop: 1 },
react_1.default.createElement(ink_1.Text, { color: "gray", dimColor: true }, "\u2191\u2193 navigate \u2022 Enter/Tab select \u2022 Esc cancel"))));
}
exports.CommandSuggestions = CommandSuggestions;
//# sourceMappingURL=command-suggestions.js.map