Tinyrack

AlertDialog

명시적인 선택이 필요한 모달에서 위험하거나 되돌릴 수 없는 작업을 확인해요.

명시적인 선택이 필요한 모달에서 위험하거나 되돌릴 수 없는 작업을 확인해요.

핵심 속성

속성설명
액션TRButton만 전달하고 가장 안전한 액션부터 가장 위험한 액션 순서로 배치해요.
닫기배경 탭은 차단하며 Escape와 시스템 뒤로 가기는 route를 닫아요.
결과와 포커스Navigator.pop은 타입 있는 결과를 반환하고 포커스는 연 컨트롤로 돌아가요.
넘침본문 콘텐츠를 그대로 넘기세요. AlertDialog가 액션을 보이게 유지하고 문자 방향에 따른 표면 끝에서 넘치는 본문을 스크롤해요.

취소는 neutral outline, 위험한 확인은 TRIntent.danger를 사용하세요.

설치

패키지를 추가한 뒤 공개 라이브러리를 가져오세요.

flutter pub add tinyrack_ui
import 'package:tinyrack_ui/tinyrack_ui.dart';

플레이그라운드

사용법

import 'package:material_ui/material_ui.dart';
import 'package:tinyrack_ui/tinyrack_ui.dart';

Widget deleteRackButton(BuildContext context, VoidCallback onDelete) {
  return TRButton(
    intent: TRIntent.danger,
    onPressed: () async {
      final confirmed = await showTRAlertDialog<bool>(
        context: context,
        builder: (dialogContext) => TRAlertDialog(
          title: const Text('랙을 삭제할까요?'),
          description: const Text('이 작업은 되돌릴 수 없어요.'),
          actions: [
            TRButton(
              appearance: TRAppearance.outline,
              onPressed: () => Navigator.pop(dialogContext, false),
              child: const Text('취소'),
            ),
            TRButton(
              intent: TRIntent.danger,
              onPressed: () => Navigator.pop(dialogContext, true),
              child: const Text('랙 삭제'),
            ),
          ],
        ),
      );
      if (confirmed == true) onDelete();
    },
    child: const Text('랙 삭제'),
  );
}

예시

위험한 작업 확인 고유 링크

안전한 취소 액션을 먼저, danger 확인 액션을 마지막에 배치하세요. route는 Navigator.pop에 전달한 타입 있는 값을 반환해요.

레이블, 비활성 상태와 포커스 고유 링크

폭이 좁으면 긴 레이블이 줄바꿈되고 비활성 트리거는 route를 열지 않아요. Escape 또는 취소로 닫으면 포커스가 트리거로 돌아가요.

긴 본문 고유 링크

AlertDialog도 넘치는 본문의 스크롤을 소유하므로 호출부는 스크롤 뷰를 중첩하지 않고 콘텐츠를 그대로 전달해요. 결정 액션은 소프트웨어 키보드 위에 계속 보여요.

API

TRAlertDialog

Prop타입 / 기본값용도
actionsList<TRButton> = const []토큰 간격, 줄바꿈과 끝 정렬을 적용할 버튼 목록이에요.

showTRAlertDialog<T>

Prop타입 / 기본값용도
route optionsuseSafeArea, useRootNavigator, requestFocus, routeSettings, anchorPointsafe area 배치, navigator 소유권, 초기 포커스, route 메타데이터와 폴더블 기준점을 제어해요.