ilokesto

핵심 개념

Toaster가 런타임을 관리합니다

각 Toaster는 자신의 toasterId(기본값 "default")로 런타임을 만들고 등록합니다. toast.success(message, { toasterId }) 같은 호출은 해당 런타임을 찾습니다. 서로 다른 ID를 사용하면 항목, 타이머, 위치, 설정이 서로 격리됩니다.

추가, 갱신, 닫기, 제거

퍼사드를 호출하면 화면에 표시되는 항목이 생성되고 문자열 ID가 반환됩니다. 기존 id를 다시 사용하면 해당 알림을 갱신하고 생성 시각과 타이머를 초기화하며 예정된 제거를 취소합니다. toast.promise는 이 동작을 이용해 하나의 로딩 항목을 성공 또는 오류 상태로 바꾸고, 원래 Promise의 결과를 반환하거나 오류를 다시 던집니다.

toast.dismiss(id)는 항목을 closing 상태로 바꾸고 removeDelay 뒤에 제거되도록 예약합니다. toast.remove(id)는 즉시 제거합니다. id를 생략하면 선택한 런타임의 모든 항목에 적용됩니다.

타이머와 표시 항목

유한한 표시 시간은 생성 시점부터 계산됩니다. 포인터가 알림 영역 위에 있으면 멈추고, 일시 정지된 시간을 제외한 뒤 다시 진행됩니다. 로딩 알림은 Infinity를 사용합니다. 런타임은 원본 항목을 유지하지만 설정된 활성 위치와 일치하는 항목만 limit 개까지 노출합니다.

렌더링과 접근성

Toaster는 스택을 배치하고 ToastBar는 각 기본 행을 렌더링합니다. 일반, 성공, 로딩, 사용자 지정 알림은 기본적으로 role="status"를 사용해 방해하지 않는 방식으로 알리고, 오류 알림은 role="alert"를 사용해 즉시 알립니다. 메시지의 긴급도가 다를 때만 ariaProps를 변경하세요.

이러한 알림 정책이 적합하다면 이 패키지를 선택하세요. 새로운 레이어 계열에는 @ilokesto/overlay를, 사용자의 작업을 막고 결정을 받아야 하는 흐름에는 @ilokesto/modal을 사용하세요.

목차