Skip to content

Commit cb35464

Browse files
Merge pull request #184 from acterglobal/anisha/users-firebase
Integrated users with firebase.
2 parents a7ce714 + 3583749 commit cb35464

29 files changed

Lines changed: 740 additions & 799 deletions

lib/constants/firestore_collection_constants.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
class FirestoreCollections {
22
static const String sheets = 'sheets';
3+
static const String users = 'users';
34
static const String lists = 'lists';
45
static const String texts = 'texts';
56
static const String events = 'events';

lib/constants/firestore_field_constants.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,5 @@ class FirestoreFieldConstants {
2323
static const String question = 'question';
2424
static const String answer = 'answer';
2525
static const String isMultipleChoice = 'isMultipleChoice';
26+
static const String name = 'name';
2627
}

lib/features/auth/models/auth_user_model.dart

Lines changed: 0 additions & 30 deletions
This file was deleted.

lib/features/auth/providers/auth_providers.dart

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import 'package:logging/logging.dart';
22
import 'package:riverpod_annotation/riverpod_annotation.dart';
3+
import 'package:zoe/features/users/models/user_model.dart';
4+
import 'package:zoe/features/users/providers/user_providers.dart';
35
import '../../../common/providers/service_providers.dart';
4-
import '../models/auth_user_model.dart';
56
import '../services/auth_service.dart';
67

78
part 'auth_providers.g.dart';
@@ -12,7 +13,7 @@ class AuthState extends _$AuthState {
1213
final Logger _logger = Logger('AuthState');
1314

1415
@override
15-
Future<AuthUserModel?> build() async {
16+
Future<UserModel?> build() async {
1617
final authService = ref.watch(authServiceProvider);
1718
final prefsService = ref.watch(preferencesServiceProvider);
1819

@@ -43,7 +44,7 @@ class AuthState extends _$AuthState {
4344
if (!ref.mounted) return;
4445

4546
state = AsyncValue.data(
46-
user == null ? null : AuthUserModel.fromFirebaseUser(user),
47+
user == null ? null : UserModel.fromFirebaseUser(user),
4748
);
4849
},
4950
onError: (e, s) {
@@ -59,7 +60,7 @@ class AuthState extends _$AuthState {
5960
// Return initial state
6061
return firebaseUser == null
6162
? null
62-
: AuthUserModel.fromFirebaseUser(firebaseUser);
63+
: UserModel.fromFirebaseUser(firebaseUser);
6364
}
6465

6566
/// Sign up with email and password
@@ -76,7 +77,12 @@ class AuthState extends _$AuthState {
7677
password: password,
7778
displayName: name.trim(),
7879
);
79-
// State will be updated by authStateChanges listener
80+
81+
final firebaseUser = authService.currentUser;
82+
if (firebaseUser != null) {
83+
final newUser = UserModel.fromFirebaseUser(firebaseUser);
84+
await ref.read(userListProvider.notifier).addUser(newUser);
85+
}
8086
} catch (e, st) {
8187
_logger.severe('Sign up error: $e');
8288
state = AsyncValue.error(e, st);

lib/features/auth/providers/auth_providers.g.dart

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/features/events/providers/event_providers.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import 'package:zoe/constants/firestore_collection_constants.dart';
99
import 'package:zoe/constants/firestore_field_constants.dart';
1010
import 'package:zoe/features/events/models/events_model.dart';
1111
import 'package:zoe/features/sheet/models/sheet_model.dart';
12-
import 'package:zoe/features/sheet/providers/sheet_providers.dart';
1312
import 'package:zoe/features/users/providers/user_providers.dart';
1413

1514
part 'event_providers.g.dart';

lib/features/home/widgets/welcome_section/welcome_section_widget.dart

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ class WelcomeSectionWidget extends ConsumerWidget {
1818
return currentUserAsync.when(
1919
data: (user) {
2020
final userName = user?.name ?? L10n.of(context).guest;
21-
final firstName = userName.split(' ').first;
2221

2322
return Container(
2423
width: double.infinity,
@@ -43,7 +42,7 @@ class WelcomeSectionWidget extends ConsumerWidget {
4342
children: [
4443
Expanded(
4544
flex: 3,
46-
child: _buildWelcomeTextWidget(context, theme, firstName),
45+
child: _buildWelcomeTextWidget(context, theme, userName),
4746
),
4847
const SizedBox(width: 16),
4948
Expanded(flex: 2, child: WelcomeAnimationWidget()),
@@ -59,7 +58,7 @@ class WelcomeSectionWidget extends ConsumerWidget {
5958
Widget _buildWelcomeTextWidget(
6059
BuildContext context,
6160
ThemeData theme,
62-
String firstName,
61+
String userName,
6362
) {
6463
return Column(
6564
crossAxisAlignment: CrossAxisAlignment.start,
@@ -73,7 +72,9 @@ class WelcomeSectionWidget extends ConsumerWidget {
7372
),
7473
const SizedBox(height: 4),
7574
Text(
76-
firstName,
75+
userName,
76+
maxLines: 2,
77+
overflow: TextOverflow.ellipsis,
7778
style: theme.textTheme.headlineLarge?.copyWith(
7879
color: Colors.white,
7980
fontWeight: FontWeight.w800,

lib/features/profile/actions/select_profile_actions.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ void _updateUserAvatar(WidgetRef ref, String userId, String? imagePath) {
3939
id: currentUser.id,
4040
name: currentUser.name,
4141
bio: currentUser.bio,
42+
email: currentUser.email,
4243
avatar: imagePath,
4344
);
4445
ref.read(userListProvider.notifier).updateUser(userId, updatedUser);

lib/features/sheet/providers/sheet_providers.dart

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -199,17 +199,3 @@ List<String> listOfUsersBySheetId(Ref ref, String sheetId) {
199199
?.users ??
200200
[];
201201
}
202-
203-
/// Provider to check if a sheet exists
204-
@riverpod
205-
bool sheetExists(Ref ref, String sheetId) {
206-
final sheet = ref.watch(sheetProvider(sheetId));
207-
return sheet != null;
208-
}
209-
210-
/// Provider for sheets sorted by title (filtered by membership)
211-
@riverpod
212-
List<SheetModel> sortedSheets(Ref ref) {
213-
final sheets = ref.watch(sheetListProvider);
214-
return [...sheets]..sort((a, b) => a.title.compareTo(b.title));
215-
}

lib/features/sheet/providers/sheet_providers.g.dart

Lines changed: 1 addition & 137 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)