taafee-mobile/lib/features/onboarding/presentation/onboarding.dart
2023-10-17 17:22:55 +03:00

124 lines
3.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:taafee_mobile/common/const/const.dart';
import 'package:taafee_mobile/common/widgets/button.dart';
import 'package:get/get.dart';
import 'package:taafee_mobile/core/routing/routing_manager.dart';
import 'package:taafee_mobile/features/onboarding/business_logic_layer/onboarding_controller.dart';
class Onboarding extends StatelessWidget {
Onboarding({super.key});
final OnboardingController onboardingController =
Get.find<OnboardingController>();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.backGroundColor,
body: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
height: Get.height * 0.7,
child: PageView.builder(
controller: onboardingController.pageController,
itemCount: 3,
onPageChanged: (value) {
onboardingController.changeCurrentIndex(value);
},
itemBuilder: (context, index) {
return OnBoardingWidget(
index: index,
).paddingSymmetric(horizontal: Get.width * 0.05);
},
),
),
const SizedBox(
height: 20.0,
),
Obx(() {
return Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: Get.width * 0.05,
),
ButtonWidget(
onTap: () {
onboardingController.setfirstTimeOpened();
RoutingManager.offAll(RouteName.register);
},
title: 'skip'.tr,
width: Get.width * 0.35,
textColor: AppColors.textButtonColor,
color: AppColors.backGroundColor,
),
SizedBox(
width: Get.width * 0.1,
),
ButtonWidget(
onTap: () {
if (onboardingController.currentIndex.value < 2) {
onboardingController.increaseIndex();
} else {
onboardingController.setfirstTimeOpened();
RoutingManager.offAll(RouteName.register);
}
},
title: (!onboardingController.isLast.value)
? 'next'.tr
: 'create_account'.tr,
textColor: AppColors.textButtonColor,
width: Get.width * 0.35,
),
SizedBox(
width: Get.width * 0.05,
),
],
);
})
],
),
);
}
}
// ignore: must_be_immutable
class OnBoardingWidget extends StatelessWidget {
OnBoardingWidget({
super.key,
required this.index,
});
int index;
final OnboardingController onboardingController =
Get.find<OnboardingController>();
@override
Widget build(BuildContext context) {
return Obx(
() => SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
onboardingController.picturesList[index],
SizedBox(
height: Get.height * 0.1,
),
SingleChildScrollView(
child: onboardingController.textList[index].paddingSymmetric(
horizontal: Get.width * 0.1,
),
),
SizedBox(
height: Get.height * 0.1,
),
],
),
),
);
}
}