Skip to content

Commit

Permalink
Merge pull request #21 from ia-toki/quiz-registration
Browse files Browse the repository at this point in the history
create quiz registration page
  • Loading branch information
atnanahidiw authored Oct 18, 2023
2 parents a4d7f23 + 16de2db commit 3888660
Show file tree
Hide file tree
Showing 10 changed files with 359 additions and 6 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
env
.env
google-service.json
2 changes: 2 additions & 0 deletions app/lib/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:google_fonts/google_fonts.dart';

import 'features/onboarding/presentation/bloc/user_initialization_bloc.dart';
import 'features/quiz_registration/bloc/quiz_registration_cubit.dart';
import 'services/di.dart';
import 'services/router_service.dart';

Expand All @@ -24,6 +25,7 @@ class App extends StatelessWidget {
OnboardingAuthEvent(),
),
),
BlocProvider(create: (context) => QuizRegistrationCubit()),
],
child: MaterialApp.router(
theme: ThemeData(
Expand Down
12 changes: 8 additions & 4 deletions app/lib/core/bases/widgets/atoms/button.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ class Button extends StatelessWidget {
final double innerHorizontalPadding;
final double innerVerticalPadding;
final double fontSize;
final Color customButtonColor;
final Color customTextColor;

const Button({
required this.text,
Expand All @@ -23,6 +25,8 @@ class Button extends StatelessWidget {
this.innerHorizontalPadding = 20,
this.innerVerticalPadding = 16,
this.fontSize = 16,
this.customButtonColor = Colors.transparent,
this.customTextColor = BaseColors.black,
super.key,
});

Expand All @@ -41,12 +45,12 @@ class Button extends StatelessWidget {
buttonColor = BaseColors.white;
break;
case ButtonType.tertiary:
textColor = BaseColors.primarySwatch;
buttonColor = BaseColors.black;
textColor = BaseColors.white;
buttonColor = Colors.blueAccent;
break;
case null:
textColor = BaseColors.black;
buttonColor = Colors.transparent;
textColor = customTextColor;
buttonColor = customButtonColor;
break;
}

Expand Down
2 changes: 1 addition & 1 deletion app/lib/features/main/presentation/pages/main_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class _MainPageState extends State<MainPage> {
Button(
buttonType: ButtonType.primary,
onTap: () async {
await context.push('/construction');
await context.push('/quiz_registration');
},
text: 'Ikut Quiz',
),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import 'package:equatable/equatable.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

part 'quiz_registration_state.dart';
part 'quiz_registration_event.dart';

class QuizRegistrationCubit extends Cubit<QuizRegistrationState> {
QuizRegistrationCubit() : super(QuizRegistrationInitialState());

void selectWeek(String selectedWeek) {
emit(QuizRegistrationLoading());

emit(QuizRegistrationWeekSelected(selectedWeek));
}

void selectLevel(String selectedLevel) {
emit(QuizRegistrationLoading());

emit(QuizRegistrationLevelSelected(selectedLevel));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
part of 'quiz_registration_cubit.dart';

abstract class QuizRegistrationEvent extends Equatable {
const QuizRegistrationEvent();

@override
List<Object?> get props => [];
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
part of 'quiz_registration_cubit.dart';

abstract class QuizRegistrationState extends Equatable {
const QuizRegistrationState();

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

class QuizRegistrationInitialState extends QuizRegistrationState {}

class QuizRegistrationLoading extends QuizRegistrationState {}

class QuizRegistrationWeekSelected extends QuizRegistrationState {
final String selectedWeek;

const QuizRegistrationWeekSelected(this.selectedWeek);

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

class QuizRegistrationLevelSelected extends QuizRegistrationState {
final String selectedLevel;

const QuizRegistrationLevelSelected(this.selectedLevel);

@override
List<Object> get props => [selectedLevel];
}
10 changes: 10 additions & 0 deletions app/lib/features/quiz_registration/presentation/pages/_pages.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

import '../../../../core/bases/enum/button_type.dart';
import '../../../../core/bases/widgets/atoms/button.dart';
import '../../../../core/bases/widgets/layout/bebras_scaffold.dart';
import '../../../../core/constants/assets.dart';
import '../../bloc/quiz_registration_cubit.dart';

part 'quiz_registration_page.dart';
Loading

0 comments on commit 3888660

Please sign in to comment.