Installation
bash
npx axis-cli add streaming-textUsage
tsx
import { StreamingText } from '@axis-ds/agentic-ui'
export function Example() {
const [text, setText] = useState('')
const [isComplete, setIsComplete] = useState(false)
// 스트리밍 시뮬레이션
useEffect(() => {
const fullText = 'AI가 응답을 생성하고 있습니다...'
let i = 0
const interval = setInterval(() => {
if (i < fullText.length) {
setText(fullText.slice(0, i + 1))
i++
} else {
setIsComplete(true)
clearInterval(interval)
}
}, 50)
return () => clearInterval(interval)
}, [])
return (
<StreamingText
text={text}
isComplete={isComplete}
/>
)
}Interactive Demo
Props
| Prop | Type | Default | Description |
|---|---|---|---|
textRequired | string | - | 표시할 텍스트 내용 |
speed | number | 20 | 스트리밍 속도 (ms per character) |
isComplete | boolean | false | 스트리밍 완료 여부 |
showCursor | boolean | true | 커서 표시 여부 |
onComplete | () => void | - | 완료 콜백 |
textRequiredType:
string표시할 텍스트 내용
speedType:
numberDefault:
20스트리밍 속도 (ms per character)
isCompleteType:
booleanDefault:
false스트리밍 완료 여부
showCursorType:
booleanDefault:
true커서 표시 여부
onCompleteType:
() => voidDefault:
-완료 콜백
Accessibility
스트리밍 영역은 role="region" + aria-live(기본 polite)로 갱신을 전달하고, 생성 중에는 aria-busy로 상태를 표시합니다.
- aria-live 정책을 polite / assertive / off로 제어할 수 있습니다.
- 스크린리더가 점진적 출력을 인지합니다.