Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion assets/locale/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,7 @@
"navBarItemHome": "Startseite",
"navBarItemSearch": "Suche",
"navBarItemMyCourse": "Meine Kurse",
"navBarItemProfile": "Profil"
"navBarItemProfile": "Profil",
"searchBarPlaceholderText": "Nach Fähigkeiten oder Technologiestapeln suchen",
"homeContinueLearningText": "Lernen fortsetzen"
}
4 changes: 3 additions & 1 deletion assets/locale/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,7 @@
"navBarItemHome": "Home",
"navBarItemSearch": "Search",
"navBarItemMyCourse": "MyCourse",
"navBarItemProfile": "Profile"
"navBarItemProfile": "Profile",
"searchBarPlaceholderText": "Search by skills or tech stacks",
"homeContinueLearningText": "Continue Learning"
}
4 changes: 3 additions & 1 deletion assets/locale/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,7 @@
"navBarItemHome": "Beranda",
"navBarItemSearch": "Cari",
"navBarItemMyCourse": "Kursus Saya",
"navBarItemProfile": "Profil"
"navBarItemProfile": "Profil",
"searchBarPlaceholderText": "Cari berdasarkan keahlian atau techstacks",
"homeContinueLearningText": "Lanjutkan Belajar"
}
4 changes: 3 additions & 1 deletion assets/locale/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,7 @@
"navBarItemHome": "ホーム",
"navBarItemSearch": "検索",
"navBarItemMyCourse": "マイコース",
"navBarItemProfile": "プロフィール"
"navBarItemProfile": "プロフィール",
"searchBarPlaceholderText": "スキルや技術スタックで検索",
"homeContinueLearningText": "学習を続ける"
}
19 changes: 1 addition & 18 deletions modules/app/lib/presentation/screens/main_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,6 @@ class _MainScreenState extends State<MainScreen> {
return const HomeScreen();
}

Widget _buildSearchScreen() {
return const Center(
child: Text("Search Screen"),
);
}

Widget _buildMyCourseScreen() {
return const Center(
child: Text("My Course Screen"),
Expand All @@ -47,10 +41,8 @@ class _MainScreenState extends State<MainScreen> {
case 0:
return _buildHomeScreen();
case 1:
return _buildSearchScreen();
case 2:
return _buildMyCourseScreen();
case 3:
case 2:
return _buildProfileScreen();
}
return null;
Expand Down Expand Up @@ -79,15 +71,6 @@ class _MainScreenState extends State<MainScreen> {
),
label: 'navBarItemHome'.tr(),
),
BottomNavigationBarItem(
icon: Container(
padding: EdgeInsets.only(top: 6.h),
child: const Icon(
Icons.explore_outlined,
),
),
label: 'navBarItemSearch'.tr(),
),
BottomNavigationBarItem(
icon: Container(
padding: EdgeInsets.only(top: 6.h),
Expand Down
15 changes: 0 additions & 15 deletions modules/app/test/screens/main_screen_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,6 @@ void main() {
expect(find.byType(HomeScreen), findsOneWidget);
});

testWidgets('Switching to search screen via bottom navigation bar',
(WidgetTester tester) async {
await tester.pumpWidget(
const LocalizationTestApp(
child: MainScreen(),
),
);

await tester.pumpAndSettle();

await tester.tap(find.byIcon(Icons.explore_outlined));
await tester.pumpAndSettle();
expect(find.text("Search Screen"), findsOneWidget);
});

testWidgets('Switching to my course screen via bottom navigation bar',
(WidgetTester tester) async {
await tester.pumpWidget(
Expand Down
1 change: 1 addition & 0 deletions modules/auth/lib/auth.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ library auth;

export 'presentation/index.dart';
export 'data/data.dart';
export 'bloc/bloc.dart';
Original file line number Diff line number Diff line change
@@ -1,27 +1,68 @@
import 'package:auth/data/dto/auth/sign_in_dto.dart';
import 'package:auth/data/dto/user/user_initialization_dto.dart';
import 'package:auth/data/remote/auth_services.dart';
import 'package:auth/data/remote/user_services.dart';
import 'package:auth/auth.dart';
import 'package:cwa_core/core.dart';

import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';

part 'auth_event.dart';
part 'auth_state.dart';

part 'sign_in_event.dart';
part 'sign_in_state.dart';

class SignInBloc extends Bloc<SignInEvent, SignInState> {
class AuthBloc extends Bloc<AuthEvent, AuthState> {
final AuthService services;
final UserService userService;

SignInBloc({
AuthBloc({
required this.services,
required this.userService,
}) : super(SignInInitial()) {
}) : super(AuthInitial()) {
// Sign Up Events
on<SignUpRequest>(onSignUp);
on<SignUpByGoogleRequest>(onSignUpByGoogle);
// Sign In Events
on<SignInRequest>(onSignIn);
on<ForgotPasswordRequest>(onForgotPassword);
on<SignInByGoogleRequest>(onSignInByGoogle);
}

Future<void> onSignUp(SignUpRequest event, emit) async {
try {
emit(SignUpLoading());

final user = await services.signUp(event.dto);
await userService.initializeUser(UserInitializationDTO(
id: user.uid,
name: event.dto.name,
email: event.dto.email,
profilePicture: user.photoURL ?? getAvatarUrl(event.dto.name),
));

emit(SignUpSuccess());
} catch (e) {
emit(SignUpFailed(error: e.toString()));
}
}

Future<void> onSignUpByGoogle(SignUpByGoogleRequest event, emit) async {
try {
emit(SignUpLoading());

final user = await services.signInWithGoogle();
await userService.initializeUser(UserInitializationDTO(
id: user.uid,
name: user.displayName!,
email: user.email!,
profilePicture: user.photoURL!,
));

emit(SignUpSuccess());
} catch (e) {
emit(
SignUpFailed(
error: e.toString(),
),
);
}
}

Future<void> onSignIn(SignInRequest event, emit) async {
try {
emit(SignInLoading());
Expand Down
39 changes: 39 additions & 0 deletions modules/auth/lib/bloc/auth/auth_event.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
part of 'auth_bloc.dart';

sealed class AuthEvent extends Equatable {
const AuthEvent();

@override
List<Object> get props => [];
}

class SignUpRequest extends AuthEvent {
final SignUpDTO dto;

const SignUpRequest({required this.dto});

@override
List<Object> get props => [dto];
}

class SignUpByGoogleRequest extends AuthEvent {}

class SignInRequest extends AuthEvent {
final SignInDTO signInDTO;

const SignInRequest({required this.signInDTO});

@override
List<Object> get props => [signInDTO];
}

class ForgotPasswordRequest extends AuthEvent {
final String email;

const ForgotPasswordRequest({required this.email});

@override
List<Object> get props => [email];
}

class SignInByGoogleRequest extends AuthEvent {}
51 changes: 51 additions & 0 deletions modules/auth/lib/bloc/auth/auth_state.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
part of 'auth_bloc.dart';

sealed class AuthState extends Equatable {
const AuthState();

@override
List<Object> get props => [];
}

final class AuthInitial extends AuthState {}

// Sign Up States
final class SignUpLoading extends AuthState {}

final class SignUpFailed extends AuthState {
final String error;

const SignUpFailed({required this.error});

@override
List<Object> get props => [error];
}

// Sign In States
final class SignUpSuccess extends AuthState {}

final class SignInLoading extends AuthState {}

final class SignInFailed extends AuthState {
final String error;

const SignInFailed({required this.error});

@override
List<Object> get props => [error];
}

final class SignInSuccess extends AuthState {}

final class ForgotPasswordLoading extends AuthState {}

final class ForgotPasswordFailed extends AuthState {
final String error;

const ForgotPasswordFailed({required this.error});

@override
List<Object> get props => [error];
}

final class ForgotPasswordSuccess extends AuthState {}
1 change: 1 addition & 0 deletions modules/auth/lib/bloc/bloc.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export 'auth/auth_bloc.dart';
28 changes: 0 additions & 28 deletions modules/auth/lib/bloc/sign_in/sign_in_event.dart

This file was deleted.

30 changes: 0 additions & 30 deletions modules/auth/lib/bloc/sign_in/sign_in_state.dart

This file was deleted.

Loading