generated from jwson-automation/blueberry_template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1cfdcc4
commit b15e678
Showing
19 changed files
with
395 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import 'package:blueberry_flutter_template/feature/user/provider/GetUserEmailProviderProvider.dart'; | ||
import 'package:blueberry_flutter_template/utils/AppStrings.dart'; | ||
import 'package:flutter_riverpod/flutter_riverpod.dart'; | ||
import 'package:flutter/material.dart'; | ||
|
||
class EmailTextWidget extends ConsumerWidget { | ||
const EmailTextWidget({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context, WidgetRef ref) { | ||
final userEmail = ref.watch(getUserEmailProvider); | ||
return userEmail.when( | ||
data: (email) => Text( | ||
email, | ||
), | ||
loading: () => const Text(''), | ||
error: (e, s) => const Text(AppStrings.emailTextWidgetError), | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import 'package:blueberry_flutter_template/feature/user/provider/GetUserSignUpDataProvider.dart'; | ||
import 'package:blueberry_flutter_template/utils/AppStrings.dart'; | ||
import 'package:flutter_riverpod/flutter_riverpod.dart'; | ||
import 'package:flutter/material.dart'; | ||
|
||
class UserSignUpTextWidget extends ConsumerWidget { | ||
const UserSignUpTextWidget({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context, WidgetRef ref) { | ||
final userSignUpDate = ref.watch(getUserSignUpProvider); | ||
return userSignUpDate.when( | ||
data: (date) => Text( | ||
date, | ||
), | ||
loading: () => const Text(''), | ||
error: (e, s) => const Text(AppStrings.dateTextWidgetError), | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
19 changes: 19 additions & 0 deletions
19
lib/feature/user/provider/GetUserDeletionDateProvider.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import 'package:blueberry_flutter_template/utils/AppStrings.dart'; | ||
import 'package:blueberry_flutter_template/utils/Formatter.dart'; | ||
import 'package:cloud_firestore/cloud_firestore.dart'; | ||
import 'package:firebase_auth/firebase_auth.dart'; | ||
import 'package:flutter_riverpod/flutter_riverpod.dart'; | ||
|
||
final getUserDeletionDateProvider = StreamProvider<String>((ref) { | ||
final firestore = FirebaseFirestore.instance; | ||
final userId = FirebaseAuth.instance.currentUser!.uid; | ||
|
||
return firestore.collection('users').doc(userId).snapshots().map((snapshot) { | ||
final deletionRequestedAt = snapshot.get('scheduledDeletionTime'); | ||
if (deletionRequestedAt is Timestamp) { | ||
return formatTimestamp(deletionRequestedAt); | ||
} else { | ||
return AppStrings.dateTextWidgetError; | ||
} | ||
}); | ||
}); |
20 changes: 20 additions & 0 deletions
20
lib/feature/user/provider/GetUserDeletionRequestDateProvider.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import 'package:blueberry_flutter_template/utils/AppStrings.dart'; | ||
import 'package:blueberry_flutter_template/utils/Formatter.dart'; | ||
import 'package:blueberry_flutter_template/utils/Talker.dart'; | ||
import 'package:cloud_firestore/cloud_firestore.dart'; | ||
import 'package:firebase_auth/firebase_auth.dart'; | ||
import 'package:flutter_riverpod/flutter_riverpod.dart'; | ||
|
||
final getUserDeletionRequestDateProvider = StreamProvider<String>((ref) { | ||
final firestore = FirebaseFirestore.instance; | ||
final userId = FirebaseAuth.instance.currentUser!.uid; | ||
|
||
return firestore.collection('users').doc(userId).snapshots().map((snapshot) { | ||
final deletionRequestedAt = snapshot.get('deletionRequestedAt'); | ||
if (deletionRequestedAt is Timestamp) { | ||
return formatTimestamp(deletionRequestedAt); | ||
} else { | ||
return AppStrings.dateTextWidgetError; | ||
} | ||
}); | ||
}); |
12 changes: 12 additions & 0 deletions
12
lib/feature/user/provider/GetUserEmailProviderProvider.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import 'package:cloud_firestore/cloud_firestore.dart'; | ||
import 'package:firebase_auth/firebase_auth.dart'; | ||
import 'package:flutter_riverpod/flutter_riverpod.dart'; | ||
|
||
final getUserEmailProvider = StreamProvider<String>((ref) { | ||
final firestore = FirebaseFirestore.instance; | ||
final userId = FirebaseAuth.instance.currentUser!.uid; | ||
|
||
return firestore.collection('users').doc(userId).snapshots().map((snapshot) { | ||
return snapshot['email'] as String; | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import 'package:blueberry_flutter_template/utils/AppStrings.dart'; | ||
import 'package:blueberry_flutter_template/utils/Formatter.dart'; | ||
import 'package:cloud_firestore/cloud_firestore.dart'; | ||
import 'package:firebase_auth/firebase_auth.dart'; | ||
import 'package:flutter_riverpod/flutter_riverpod.dart'; | ||
|
||
final getUserSignUpProvider = StreamProvider<String>((ref) { | ||
final firestore = FirebaseFirestore.instance; | ||
final userId = FirebaseAuth.instance.currentUser!.uid; | ||
|
||
return firestore.collection('users').doc(userId).snapshots().map((snapshot) { | ||
final createdAt = snapshot.get('createdAt'); | ||
if (createdAt is Timestamp) { | ||
return formatTimestamp(createdAt); | ||
} else { | ||
return AppStrings.dateTextWidgetError; | ||
} | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import 'package:blueberry_flutter_template/feature/user/restore/widget/DeletedUserDataWidget.dart'; | ||
import 'package:flutter/material.dart'; | ||
|
||
class RestoreDeletedUserScreen extends StatelessWidget { | ||
static const String name = '/RestoreDeletedUserScreen'; | ||
const RestoreDeletedUserScreen({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return const DeletedUserDataWidget(); | ||
} | ||
} |
28 changes: 28 additions & 0 deletions
28
lib/feature/user/restore/widget/DeletedUserDataWidget.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
import 'package:blueberry_flutter_template/feature/user/restore/widget/DeletionRequestUserInfoTextWidget.dart'; | ||
import 'package:blueberry_flutter_template/feature/user/restore/widget/RestoreDeletionUserBottomButtonWidget.dart'; | ||
import 'package:flutter/material.dart'; | ||
|
||
|
||
class DeletedUserDataWidget extends StatelessWidget { | ||
const DeletedUserDataWidget({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return Scaffold( | ||
appBar: AppBar( | ||
automaticallyImplyLeading: false, | ||
// ignore the back button | ||
), | ||
body: const Column( | ||
mainAxisAlignment: MainAxisAlignment.center, | ||
crossAxisAlignment: CrossAxisAlignment.start, | ||
children: [ | ||
Expanded( | ||
child: DeletionRequestUserInfoListWidget() | ||
), | ||
RestoreDeletionUserBottomButtonWidget(), | ||
], | ||
), | ||
); | ||
} | ||
} |
40 changes: 40 additions & 0 deletions
40
lib/feature/user/restore/widget/DeletionRequestUserInfoTextWidget.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
import 'package:blueberry_flutter_template/core/widget/EmailTextWidget.dart'; | ||
import 'package:blueberry_flutter_template/core/widget/UserSignUpDataTextWidget.dart'; | ||
import 'package:blueberry_flutter_template/feature/user/restore/widget/UserDeletionDateTextWidget.dart'; | ||
import 'package:blueberry_flutter_template/feature/user/restore/widget/UserDeletionRequestDateTextWidget.dart'; | ||
import 'package:flutter/material.dart'; | ||
|
||
class DeletionRequestUserInfoListWidget extends StatelessWidget { | ||
const DeletionRequestUserInfoListWidget({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
final List<Map<String, Widget>> userInfoItems = [ | ||
{'아이디: ': const EmailTextWidget()}, | ||
{'최초 계정 생성 일: ': const UserSignUpTextWidget()}, | ||
{'탈퇴 요청 일: ': const UserDeletionRequestDateTextWidget()}, | ||
{'탈퇴 예정 일: ': const UserDeletionDateTextWidget()}, | ||
]; | ||
|
||
return Padding( | ||
padding: const EdgeInsets.all(16.0), | ||
child: ListView.builder( | ||
shrinkWrap: true, | ||
physics: const NeverScrollableScrollPhysics(), | ||
itemCount: userInfoItems.length, | ||
itemBuilder: (context, index) { | ||
final item = userInfoItems[index]; | ||
return Padding( | ||
padding: const EdgeInsets.only(bottom: 16), | ||
child: Row( | ||
children: [ | ||
Text(item.keys.first), | ||
item.values.first, | ||
], | ||
), | ||
); | ||
}, | ||
), | ||
); | ||
} | ||
} |
44 changes: 44 additions & 0 deletions
44
lib/feature/user/restore/widget/RestoreDeletionUserBottomButtonWidget.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import 'package:blueberry_flutter_template/services/FirebaseAuthServiceProvider.dart'; | ||
import 'package:blueberry_flutter_template/services/FirebaseService.dart'; | ||
import 'package:flutter/material.dart'; | ||
import 'package:flutter_riverpod/flutter_riverpod.dart'; | ||
|
||
class RestoreDeletionUserBottomButtonWidget extends ConsumerWidget { | ||
const RestoreDeletionUserBottomButtonWidget({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context, WidgetRef ref) { | ||
return Padding( | ||
padding: const EdgeInsets.all(16.0), | ||
child: Row( | ||
children: [ | ||
Expanded( | ||
child: RestoreBtn(), | ||
), | ||
const SizedBox(width: 16), | ||
Expanded( | ||
child: cancelBtn(ref), | ||
), | ||
], | ||
), | ||
); | ||
} | ||
|
||
ElevatedButton cancelBtn(WidgetRef ref) { | ||
return ElevatedButton( | ||
onPressed: () async { | ||
ref.read(firebaseAuthServiceProvider).signOut(); | ||
}, | ||
child: const Text('나가기'), | ||
); | ||
} | ||
|
||
ElevatedButton RestoreBtn() { | ||
return ElevatedButton( | ||
onPressed: () async { | ||
await FirebaseService().cancelAccountDeletion(); | ||
}, | ||
child: const Text('복원 하기'), | ||
); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
lib/feature/user/restore/widget/UserDeletionDateTextWidget.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import 'package:blueberry_flutter_template/feature/user/provider/GetUserDeletionDateProvider.dart'; | ||
import 'package:blueberry_flutter_template/utils/AppStrings.dart'; | ||
import 'package:flutter_riverpod/flutter_riverpod.dart'; | ||
import 'package:flutter/material.dart'; | ||
|
||
class UserDeletionDateTextWidget extends ConsumerWidget { | ||
const UserDeletionDateTextWidget({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context, WidgetRef ref) { | ||
final userDeletionDate = ref.watch(getUserDeletionDateProvider); | ||
return userDeletionDate.when( | ||
data: (date) => Text( | ||
date, | ||
), | ||
loading: () => const Text(''), | ||
error: (e, s) => const Text(AppStrings.dateTextWidgetError), | ||
); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
lib/feature/user/restore/widget/UserDeletionRequestDateTextWidget.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import 'package:blueberry_flutter_template/feature/user/provider/GetUserDeletionRequestDateProvider.dart'; | ||
import 'package:blueberry_flutter_template/utils/AppStrings.dart'; | ||
import 'package:flutter_riverpod/flutter_riverpod.dart'; | ||
import 'package:flutter/material.dart'; | ||
|
||
class UserDeletionRequestDateTextWidget extends ConsumerWidget { | ||
const UserDeletionRequestDateTextWidget({super.key}); | ||
|
||
@override | ||
Widget build(BuildContext context, WidgetRef ref) { | ||
final userDeletionRequestDate = ref.watch(getUserDeletionRequestDateProvider); | ||
return userDeletionRequestDate.when( | ||
data: (date) => Text( | ||
date, | ||
), | ||
loading: () => const Text(''), | ||
error: (e, s) => const Text(AppStrings.dateTextWidgetError), | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.