@hua-labs/ui
v1.1.0
bash
npm install @hua-labs/huatsx
import { ConfirmModal } from "@hua-labs/hua";isOpen* | boolean | - | docs:components.confirmModal.props.isOpen |
onClose* | () => void | - | docs:components.confirmModal.props.onClose |
onConfirm* | () => void | - | docs:components.confirmModal.props.onConfirm |
title* | string | - | docs:components.confirmModal.props.title |
message* | string | - | docs:components.confirmModal.props.message |
type | "danger" | "warning" | "info" | "success" | "error" | "danger" | docs:components.confirmModal.props.type |
warning | string | - | docs:components.confirmModal.props.warning |
confirmText | string | "확인" | docs:components.confirmModal.props.confirmText |
cancelText | string | "취소" | docs:components.confirmModal.props.cancelText |
loading | boolean | false | docs:components.confirmModal.props.loading |
showInput | boolean | false | docs:components.confirmModal.props.showInput |
size | "sm" | "md" | "lg" | "xl" | "2xl" | "md" | Modal size |
confirmButtonText | string | - | Confirm button text (alias for confirmText) |
disabled | boolean | false | Disable confirm button |
showCancel | boolean | true | Show cancel button |
inputValue | string | - | Input value when showInput is true |
onInputChange | (value: string) => void | - | Input change handler |
inputPlaceholder | string | - | Input placeholder text |
inputLabel | string | - | Input label text |
requiredInputValue | string | - | docs:components.confirmModal.props.requiredInputValue |
docs:common.basicUsagetsx
1// Via framework (recommended)2import { ConfirmModal, Button } from '@hua-labs/hua';3// Or direct import4// import { ConfirmModal } from '@hua-labs/ui/overlay';5import { useState } from 'react';6 7const [isOpen, setIsOpen] = useState(false);8 9<Button onClick={() => setIsOpen(true)}>Delete</Button>10 11<ConfirmModal12 isOpen={isOpen}13 onClose={() => setIsOpen(false)}14 onConfirm={() => {15 console.log('Confirmed!');16 setIsOpen(false);17 }}18 title="Delete Item"19 message="Are you sure you want to delete this item?"20/>docs:common.warningtsx
1<ConfirmModal2 isOpen={isOpen}3 onClose={() => setIsOpen(false)}4 onConfirm={handleConfirm}5 type="warning"6 title="Warning"7 message="This action may affect other items."8 warning="Proceed with caution."9/>docs:components.confirmModal.demo.withInputConfirmationtsx
1const [inputValue, setInputValue] = useState('');2 3<ConfirmModal4 isOpen={isOpen}5 onClose={() => setIsOpen(false)}6 onConfirm={handleDelete}7 title="Delete Account"8 message="Type 'DELETE' to confirm."9 showInput10 inputLabel="Confirmation"11 inputPlaceholder="Type DELETE"12 requiredInputValue="DELETE"13 inputValue={inputValue}14 onInputChange={setInputValue}15/>docs:common.loadingStatetsx
1const [isLoading, setIsLoading] = useState(false);2 3<ConfirmModal4 isOpen={isOpen}5 onClose={() => setIsOpen(false)}6 onConfirm={async () => {7 setIsLoading(true);8 await performAction();9 setIsLoading(false);10 setIsOpen(false);11 }}12 title="Processing"13 message="Please wait..."14 loading={isLoading}15/>- •
danger- - •
warning- - •
info- - •
success- - •
error-
- •docs:components.confirmModal.accessibility.focusTrap: docs:components.confirmModal.accessibility.focusTrapDesc
- •docs:components.confirmModal.accessibility.escapeKey: docs:components.confirmModal.accessibility.escapeKeyDesc
- •docs:components.confirmModal.accessibility.inputValidation: docs:components.confirmModal.accessibility.inputValidationDesc