import 'package:flutter/material.dart'; import '../../core/ui/tab_placeholder.dart'; import '../auth/auth_repository.dart'; /// MY 탭 루트 — S-M-HOME 마이 페이지. /// /// 화면 구현 전이라도 로그아웃은 여기서 할 수 있어야 한다 — 다른 계정 · 다른 로그인 /// 방법으로 다시 들어가 볼 길이 없으면 소셜 로그인 4종을 한 기기에서 확인할 수 없다. /// 로그아웃하면 인증 상태가 바뀌고 라우터가 로그인 화면으로 보낸다. class MyScreen extends StatelessWidget { const MyScreen({super.key, required this.auth}); final AuthRepository auth; Future _logout(BuildContext context) async { final ok = await showDialog( context: context, builder: (context) => AlertDialog( content: const Text('로그아웃 하시겠습니까?'), actions: [ TextButton( onPressed: () => Navigator.of(context).pop(false), child: const Text('취소'), ), FilledButton( onPressed: () => Navigator.of(context).pop(true), child: const Text('로그아웃'), ), ], ), ); if (ok == true) await auth.signOut(); } @override Widget build(BuildContext context) => TabPlaceholder( tab: 'MY', screenId: 'S-M-HOME', screenName: '마이 페이지', footer: Builder( builder: (context) => OutlinedButton( onPressed: () => _logout(context), child: const Text('로그아웃'), ), ), ); }