55 lines
2.0 KiB
Dart
55 lines
2.0 KiB
Dart
// lib/pages/team/member_detail_page.dart
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:rogapp/pages/team/member_controller.dart';
|
|
|
|
class MemberDetailPage extends GetView<MemberController> {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final mode = Get.arguments['mode'];
|
|
final member = Get.arguments['member'];
|
|
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: Text(mode == 'new' ? 'メンバー追加' : 'メンバー詳細'),
|
|
),
|
|
body: Padding(
|
|
padding: EdgeInsets.all(16.0),
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
if (mode == 'edit' && member.email != null)
|
|
Text('Email: ${member.email}'),
|
|
if (mode == 'new' || (mode == 'edit' && member.email == null))
|
|
TextField(
|
|
decoration: InputDecoration(labelText: 'Email'),
|
|
onChanged: (value) => controller.updateEmail(value),
|
|
),
|
|
TextField(
|
|
decoration: InputDecoration(labelText: '姓'),
|
|
onChanged: (value) => controller.updateLastname(value),
|
|
),
|
|
TextField(
|
|
decoration: InputDecoration(labelText: '名'),
|
|
onChanged: (value) => controller.updateFirstname(value),
|
|
),
|
|
// 誕生日選択ウィジェットを追加
|
|
if (mode == 'edit')
|
|
Text('ステータス: ${controller.getMemberStatus()}'),
|
|
if (mode == 'edit' && controller.getMemberStatus() == '招待中')
|
|
ElevatedButton(
|
|
child: Text('招待メールを再送信'),
|
|
onPressed: () => controller.resendInvitation(),
|
|
),
|
|
if (mode == 'edit')
|
|
ElevatedButton(
|
|
child: Text('メンバーから除外'),
|
|
onPressed: () => controller.deleteMember(),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
} |