Line data Source code
1 : import 'dart:developer' as dev; 2 : 3 : import 'package:example/feature/home/home_repository.dart'; 4 : import 'package:example/feature/home/home_view_model.dart'; 5 : import 'package:example/viewmodel/i_home_viewmodel.dart'; 6 : import 'package:flutter/material.dart'; 7 : import 'package:flutter/widgets.dart'; 8 : import 'package:stacked_mvvm/stacked_mvvm.dart'; 9 : 10 : import 'home_view.dart'; 11 : 12 : class HomePage extends IPage<IHomeViewModel> { 13 : static const ROUTE_NAME = "/"; 14 : 15 1 : HomePage({Key? key, required HomeViewModel viewModel}) 16 1 : : super(key: key, viewModel: viewModel); 17 : 18 1 : static Route<dynamic> route(RouteSettings settings) { 19 1 : return MaterialPageRoute( 20 : settings: settings, 21 2 : builder: (context) => HomePage( 22 1 : key: LabeledGlobalKey("HomePage"), 23 2 : viewModel: HomeViewModel(repository: HomeRepository()), 24 : ), 25 : ); 26 : } 27 : 28 1 : @override 29 : String get screenName => "splash"; 30 : 31 : @override 32 1 : Future logScreenOpen(String screenName) async {} 33 : 34 1 : @override 35 : IView<IHomeViewModel> body( 36 : BuildContext context, IHomeViewModel viewModel, Widget? child) { 37 2 : return HomeView(key: LabeledGlobalKey("HomeView")); 38 : } 39 : 40 1 : @override 41 : void onListen(BuildContext context, IHomeViewModel viewModel) { 42 3 : dev.log("count = ${viewModel.count}", name: "HomePage"); 43 1 : super.onListen(context, viewModel); 44 : } 45 : }