import React, {useState} from 'react'; import stringWidth from 'string-width'; import {render, Box, Text, useInput, useCursor} from '../../src/index.js'; function App() { const [text, setText] = useState(''); const {setCursorPosition} = useCursor(); useInput((input, key) => { if (key.backspace || key.delete) { setText(previous => previous.slice(0, -1)); return; } if (!key.ctrl && !key.meta && input) { setText(previous => previous + input); } }); // Use stringWidth for correct cursor position with wide characters (Korean, CJK, emoji) const prompt = '> '; setCursorPosition({x: stringWidth(prompt + text), y: 1}); return ( Type Korean (Ctrl+C to exit): {prompt} {text} ); } render();