fix(tui): rely on native cursor for input

This commit is contained in:
Brooklyn Nicholson 2026-04-26 03:47:05 -05:00
parent cd7c5e5606
commit 1c964ed43f

View file

@ -336,21 +336,23 @@ export function TextInput({
active: focus && termFocus && !selected active: focus && termFocus && !selected
}) })
const nativeCursor = focus && termFocus && !selected
const rendered = useMemo(() => { const rendered = useMemo(() => {
if (!focus) { if (!focus) {
return display || dim(placeholder) return display || dim(placeholder)
} }
if (!display && placeholder) { if (!display && placeholder) {
return invert(placeholder[0] ?? ' ') + dim(placeholder.slice(1)) return nativeCursor ? dim(placeholder) : invert(placeholder[0] ?? ' ') + dim(placeholder.slice(1))
} }
if (selected) { if (selected) {
return renderWithSelection(display, selected.start, selected.end) return renderWithSelection(display, selected.start, selected.end)
} }
return renderWithCursor(display, cur) return nativeCursor ? display || ' ' : renderWithCursor(display, cur)
}, [cur, display, focus, placeholder, selected]) }, [cur, display, focus, nativeCursor, placeholder, selected])
useEffect(() => { useEffect(() => {
if (self.current) { if (self.current) {