1
1
import 'package:flutter/material.dart' ;
2
+ import 'package:flutter_bloc/flutter_bloc.dart' ;
2
3
import 'package:monumento/application/popular_monuments/monument_3d_model/monument_3d_model_bloc.dart' ;
3
4
import 'package:monumento/presentation/popular_monuments/mobile/widgets/popular_monument_view_mobile_app_bar.dart' ;
4
5
import 'package:monumento/presentation/popular_monuments/mobile/widgets/populat_monuments_view_body_mobile.dart' ;
@@ -7,42 +8,39 @@ import 'package:monumento/service_locator.dart';
7
8
import 'package:monumento/utils/app_colors.dart' ;
8
9
import 'package:monumento/utils/app_text_styles.dart' ;
9
10
10
- class PopularMonumentsViewMobile extends StatefulWidget {
11
+ class PopularMonumentsViewMobile extends StatelessWidget {
11
12
const PopularMonumentsViewMobile ({super .key});
12
13
13
- @override
14
- State <PopularMonumentsViewMobile > createState () =>
15
- _PopularMonumentsViewMobileState ();
16
- }
17
-
18
- class _PopularMonumentsViewMobileState
19
- extends State <PopularMonumentsViewMobile > {
20
- @override
21
- void initState () {
22
- locator <Monument3dModelBloc >().add (const ViewMonument3DModel (
23
- monumentName: "Mount Rushmore National Memorial" ));
24
- super .initState ();
25
- }
26
-
27
14
@override
28
15
Widget build (BuildContext context) {
29
- return Scaffold (
30
- appBar: PopularMonumnetsViewMobileAppBar (),
31
- body: PopularMonumentsViewMobileBodyBlocBuilder (),
32
- floatingActionButton: FloatingActionButton .extended (
33
- onPressed: () async {
34
- await Navigator .push (context,
35
- MaterialPageRoute (builder: (_) => const ScanMonumentsScreen ()));
36
- },
37
- label: Text (
38
- "Scan Monuments" ,
39
- style: AppTextStyles .textStyle (
40
- fontType: FontType .MEDIUM , size: 14 , isBody: true ),
16
+ return BlocProvider <Monument3dModelBloc >(
17
+ create: (context) => locator <Monument3dModelBloc >()
18
+ ..add (
19
+ const ViewMonument3DModel (
20
+ monumentName: "Mount Rushmore National Memorial" ,
21
+ ),
22
+ ),
23
+ lazy:
24
+ true , //* Default is true; initializes the object only when it's needed.
25
+
26
+ child: Scaffold (
27
+ appBar: PopularMonumnetsViewMobileAppBar (),
28
+ body: PopularMonumentsViewMobileBodyBlocBuilder (),
29
+ floatingActionButton: FloatingActionButton .extended (
30
+ onPressed: () async {
31
+ await Navigator .push (context,
32
+ MaterialPageRoute (builder: (_) => const ScanMonumentsScreen ()));
33
+ },
34
+ label: Text (
35
+ "Scan Monuments" ,
36
+ style: AppTextStyles .textStyle (
37
+ fontType: FontType .MEDIUM , size: 14 , isBody: true ),
38
+ ),
39
+ backgroundColor: AppColor .appPrimary,
40
+ extendedPadding:
41
+ const EdgeInsets .symmetric (vertical: 10 , horizontal: 18 ),
42
+ shape: RoundedRectangleBorder (borderRadius: BorderRadius .circular (8 )),
41
43
),
42
- backgroundColor: AppColor .appPrimary,
43
- extendedPadding:
44
- const EdgeInsets .symmetric (vertical: 10 , horizontal: 18 ),
45
- shape: RoundedRectangleBorder (borderRadius: BorderRadius .circular (8 )),
46
44
),
47
45
);
48
46
}
0 commit comments