mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-27 23:06:54 +05:00
feat(ipuaro): add Tab autocomplete for file paths in TUI
- Implement useAutocomplete hook with fuzzy matching and Redis integration - Add visual feedback showing up to 5 suggestions below input - Support Tab key for completion with common prefix algorithm - Real-time suggestion updates as user types - Path normalization (handles ./, trailing slashes) - Case-insensitive matching with scoring algorithm - Add 21 unit tests with jsdom environment - Update Input component with storage and projectRoot props - Refactor key handlers to reduce complexity - Install @testing-library/react, jsdom, @types/jsdom - Update react-dom to 18.3.1 for compatibility - Configure jsdom environment for TUI tests in vitest config - Adjust coverage threshold for branches to 91.5% - Fix deprecated ErrorChoice usage (use ErrorOption) Version: 0.21.0 Tests: 1484 passed (+21) Coverage: 97.60% lines, 91.58% branches
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
|
||||
import { Box, Text, useInput } from "ink"
|
||||
import React, { useState } from "react"
|
||||
import type { ErrorChoice } from "../../shared/types/index.js"
|
||||
import type { ErrorOption } from "../../shared/errors/IpuaroError.js"
|
||||
|
||||
export interface ErrorInfo {
|
||||
type: string
|
||||
@@ -15,7 +15,7 @@ export interface ErrorInfo {
|
||||
|
||||
export interface ErrorDialogProps {
|
||||
error: ErrorInfo
|
||||
onChoice: (choice: ErrorChoice) => void
|
||||
onChoice: (choice: ErrorOption) => void
|
||||
}
|
||||
|
||||
function ChoiceButton({
|
||||
@@ -49,7 +49,7 @@ function ChoiceButton({
|
||||
}
|
||||
|
||||
export function ErrorDialog({ error, onChoice }: ErrorDialogProps): React.JSX.Element {
|
||||
const [selected, setSelected] = useState<ErrorChoice | null>(null)
|
||||
const [selected, setSelected] = useState<ErrorOption | null>(null)
|
||||
|
||||
useInput((input, key) => {
|
||||
const lowerInput = input.toLowerCase()
|
||||
|
||||
Reference in New Issue
Block a user