// lib/pages/team/team_detail_page.dart import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:rogapp/pages/team/team_controller.dart'; import 'package:rogapp/routes/app_pages.dart'; import 'package:rogapp/services/api_service.dart'; class TeamDetailPage extends GetView { @override Widget build(BuildContext context) { final mode = Get.arguments['mode']; final team = Get.arguments['team']; return Scaffold( appBar: AppBar( title: Text(mode == 'new' ? '新規チーム作成' : 'チーム詳細'), actions: [ if (mode == 'edit') IconButton( icon: Icon(Icons.add), onPressed: () => Get.toNamed(AppPages.MEMBER_DETAIL, arguments: {'mode': 'new', 'teamId': team.id}), ), ], ), body: Padding( padding: EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ TextField( decoration: InputDecoration(labelText: 'チーム名'), onChanged: (value) => controller.updateTeamName(value), ), DropdownButtonFormField( decoration: InputDecoration(labelText: 'カテゴリ'), value: controller.selectedCategory.value, items: controller.categories.map((category) => DropdownMenuItem( value: category, child: Text(category.categoryName), )).toList(), onChanged: (value) => controller.updateCategory(value), ), if (mode == 'edit') Text('ゼッケン番号: ${team.zekkenNumber}'), Obx(() { final currentUser = controller.currentUser.value; return Text('所有者: ${currentUser?.email ?? "未設定"}'); }), SizedBox(height: 20), Text('メンバーリスト', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), Expanded( child: Obx(() => ListView.builder( itemCount: controller.teamMembers.length, itemBuilder: (context, index) { final member = controller.teamMembers[index]; return ListTile( title: Text('${member.lastname}, ${member.firstname}'), onTap: () => Get.toNamed(AppPages.MEMBER_DETAIL, arguments: {'mode': 'edit', 'member': member}), ); }, )), ), ], ), ), ); } }