ApprovalCard
AI 에이전트의 작업을 사용자가 승인/거부할 수 있는 컴포넌트입니다. Human-in-the-Loop 패턴 구현에 사용됩니다.
Installation
bash
npx axis-cli add approval-cardInteractive Demo
위험도:
Usage
tsx
import { ApprovalCard } from '@axis-ds/agentic-ui'
const changes = [
{ label: 'Button.tsx', type: 'create', after: '새 버튼 컴포넌트' },
{ label: 'index.ts', type: 'update', before: '기존 export', after: 'export 추가' },
{ label: 'old-button.tsx', type: 'delete', after: '삭제됨' },
]
export function Example() {
const [open, setOpen] = useState(false)
return (
<>
<Button onClick={() => setOpen(true)}>변경 사항 검토</Button>
<ApprovalDialog
open={open}
onOpenChange={setOpen}
title="코드 변경 승인"
description="AI가 다음 변경 사항을 적용하려고 합니다."
impact="medium"
changes={changes}
onApprove={() => { console.log('Approved'); setOpen(false) }}
onReject={(reason) => { console.log('Rejected:', reason); setOpen(false) }}
/>
</>
)
}Impact Levels
i
low낮은 위험도 - 일반적인 작업
!
medium중간 위험도 - 주의가 필요한 작업
!
high높은 위험도 - 신중한 검토 필요
!
critical심각한 위험도 - 되돌리기 어려운 작업
Props
| Prop | Type | Default | Description |
|---|---|---|---|
openRequired | boolean | - | 다이얼로그 열림 상태 |
onOpenChange | (open: boolean) => void | - | 열림 상태 변경 콜백 |
titleRequired | string | - | 다이얼로그 제목 |
descriptionRequired | string | - | 설명 텍스트 |
impactRequired | "low" | "medium" | "high" | "critical" | - | 위험도 수준 |
changes | ChangeItem[] | - | 변경 사항 목록 |
onApproveRequired | () => void | - | 승인 콜백 |
onRejectRequired | (reason?: string) => void | - | 거부 콜백 |
openRequiredType:
boolean다이얼로그 열림 상태
onOpenChangeType:
(open: boolean) => voidDefault:
-열림 상태 변경 콜백
titleRequiredType:
string다이얼로그 제목
descriptionRequiredType:
string설명 텍스트
impactRequiredType:
"low" | "medium" | "high" | "critical"위험도 수준
changesType:
ChangeItem[]Default:
-변경 사항 목록
onApproveRequiredType:
() => void승인 콜백
onRejectRequiredType:
(reason?: string) => void거부 콜백