Yimaru-Mobile/lib/ui/views/failure/failure_view.dart

68 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_carousel_widget/flutter_carousel_widget.dart';
import 'package:flutter_svg/svg.dart';
import 'package:stacked/stacked.dart';
import 'package:yimaru_app/ui/views/failure/screens/first_failure_screen.dart';
import 'package:yimaru_app/ui/views/failure/screens/second_failure_screen.dart';
import 'package:yimaru_app/ui/views/failure/screens/third_failure_screen.dart';
import '../../common/app_colors.dart';
import '../../common/ui_helpers.dart';
import '../../widgets/custom_circular_progress_indicator.dart';
import 'failure_viewmodel.dart';
class FailureView extends StackedView<FailureViewModel> {
final String label;
final GestureTapCallback onTap;
const FailureView({Key? key, required this.onTap, required this.label})
: super(key: key);
@override
FailureViewModel viewModelBuilder(BuildContext context) => FailureViewModel();
@override
Widget builder(
BuildContext context,
FailureViewModel viewModel,
Widget? child,
) =>
_buildScaffoldWrapper();
Widget _buildScaffoldWrapper() => Scaffold(
backgroundColor: kcPrimaryColor,
body: _buildStartupScreens(),
);
Widget _buildStartupScreens() => FlutterCarousel(
options: FlutterCarouselOptions(
autoPlay: true,
viewportFraction: 1,
showIndicator: false,
height: double.maxFinite,
),
items: _buildScreens(),
);
List<Widget> _buildScreens() => [
_buildFirstFailure(),
_buildSecondFailure(),
_buildThirdFailure(),
];
Widget _buildFirstFailure() => FirstFailureScreen(
label: label,
onTap: onTap,
);
Widget _buildSecondFailure() => SecondFailureScreen(
label: label,
onTap: onTap,
);
Widget _buildThirdFailure() => ThirdFailureScreen(
label: label,
onTap: onTap,
);
}