Files
tm_app/lib/views/tenders/pages/tenders_screen.dart
T

58 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/services/tab_navigation_service.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/views/shared/responsive_builder.dart';
import '../../../view_models/tenders_view_model.dart';
import 'd_tenders_page.dart';
import 'm_tenders_page.dart';
import 't_tenders_page.dart';
class TendersScreen extends StatefulWidget {
const TendersScreen({super.key});
@override
State<TendersScreen> createState() => _TendersScreenState();
}
class _TendersScreenState extends State<TendersScreen> {
late final TendersViewModel _viewModel;
late final TabNavigationService _tabService;
@override
void initState() {
super.initState();
_viewModel = context.read<TendersViewModel>();
_tabService = context.read<TabNavigationService>();
_tabService.addListener(_onTabChanged);
WidgetsBinding.instance.addPostFrameCallback((_) {
_viewModel.init(context);
});
}
@override
void dispose() {
_tabService.removeListener(_onTabChanged);
super.dispose();
}
void _onTabChanged() {
// Tab index 1 is Tenders
if (_tabService.currentTabIndex == 1 && mounted) {
_viewModel.init(context);
}
}
@override
Widget build(BuildContext context) {
SizeConfig.init(context);
return const ResponsiveBuilder(
mobile: MobileTendersPage(),
tablet: TabletTendersPage(),
desktop: DesktopTendersPage(),
);
}
}