web fixes codes
This commit is contained in:
@@ -97,6 +97,7 @@ List<SingleChildWidget> get viewModels {
|
|||||||
tenderDetailRepository: context.read(),
|
tenderDetailRepository: context.read(),
|
||||||
tendersRepository: context.read(),
|
tendersRepository: context.read(),
|
||||||
tendersViewModel: context.read(),
|
tendersViewModel: context.read(),
|
||||||
|
homeViewModel: context.read(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|||||||
@@ -8,20 +8,24 @@ import 'package:tm_app/data/services/model/tender_detail_response/tender_detail_
|
|||||||
import '../data/services/model/tender_approvals_by_id_response/tender_approvals_by_id_response.dart';
|
import '../data/services/model/tender_approvals_by_id_response/tender_approvals_by_id_response.dart';
|
||||||
import '../data/services/model/tender_approvals_data/tender_approvals_data.dart';
|
import '../data/services/model/tender_approvals_data/tender_approvals_data.dart';
|
||||||
import '../data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart';
|
import '../data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart';
|
||||||
|
import 'home_view_model.dart';
|
||||||
import 'tenders_view_model.dart';
|
import 'tenders_view_model.dart';
|
||||||
|
|
||||||
class TenderDetailViewModel with ChangeNotifier {
|
class TenderDetailViewModel with ChangeNotifier {
|
||||||
final TenderDetailRepository _tenderDetailRepository;
|
final TenderDetailRepository _tenderDetailRepository;
|
||||||
final TendersRepository _tendersRepository;
|
final TendersRepository _tendersRepository;
|
||||||
final TendersViewModel _tendersViewModel;
|
final TendersViewModel _tendersViewModel;
|
||||||
|
final HomeViewModel _homeViewModel;
|
||||||
|
|
||||||
TenderDetailViewModel({
|
TenderDetailViewModel({
|
||||||
required TenderDetailRepository tenderDetailRepository,
|
required TenderDetailRepository tenderDetailRepository,
|
||||||
required TendersRepository tendersRepository,
|
required TendersRepository tendersRepository,
|
||||||
required TendersViewModel tendersViewModel,
|
required TendersViewModel tendersViewModel,
|
||||||
|
required HomeViewModel homeViewModel,
|
||||||
}) : _tenderDetailRepository = tenderDetailRepository,
|
}) : _tenderDetailRepository = tenderDetailRepository,
|
||||||
_tendersRepository = tendersRepository,
|
_tendersRepository = tendersRepository,
|
||||||
_tendersViewModel = tendersViewModel;
|
_tendersViewModel = tendersViewModel,
|
||||||
|
_homeViewModel = homeViewModel;
|
||||||
|
|
||||||
bool _isLoading = false;
|
bool _isLoading = false;
|
||||||
bool _isSubmitApprovalLoading = false;
|
bool _isSubmitApprovalLoading = false;
|
||||||
@@ -122,6 +126,10 @@ class TenderDetailViewModel with ChangeNotifier {
|
|||||||
_tendersViewModel.getTenderApprovals(tenderId);
|
_tendersViewModel.getTenderApprovals(tenderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updateHome() async {
|
||||||
|
_homeViewModel.init();
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> getTenderApprovals(String tenderId) async {
|
Future<void> getTenderApprovals(String tenderId) async {
|
||||||
_errorMessage = null;
|
_errorMessage = null;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:tm_app/core/theme/colors.dart';
|
import 'package:tm_app/core/theme/colors.dart';
|
||||||
import 'package:tm_app/core/utils/size_config.dart';
|
import 'package:tm_app/core/utils/size_config.dart';
|
||||||
@@ -9,7 +8,7 @@ import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
|
|||||||
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
|
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
|
||||||
|
|
||||||
import '../../../core/constants/strings.dart';
|
import '../../../core/constants/strings.dart';
|
||||||
import '../../../view_models/home_view_model.dart';
|
import '../../../core/routes/app_routes.dart';
|
||||||
import '../../shared/desktop_navigation_widget.dart';
|
import '../../shared/desktop_navigation_widget.dart';
|
||||||
|
|
||||||
class TenderDetailDesktopPage extends StatefulWidget {
|
class TenderDetailDesktopPage extends StatefulWidget {
|
||||||
@@ -80,9 +79,7 @@ class _TenderDetailDesktopPageState extends State<TenderDetailDesktopPage> {
|
|||||||
return PopScope(
|
return PopScope(
|
||||||
onPopInvokedWithResult: (didPop, result) {
|
onPopInvokedWithResult: (didPop, result) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
context.read<TenderDetailViewModel>().updateTenderApprovals(
|
viewModel.updateTenderApprovals(widget.tenderId);
|
||||||
widget.tenderId,
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
@@ -112,14 +109,20 @@ class _TenderDetailDesktopPageState extends State<TenderDetailDesktopPage> {
|
|||||||
// Navigate to different screens based on index
|
// Navigate to different screens based on index
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
Router.neglect(context, () => context.go('/home'));
|
Router.neglect(
|
||||||
context.read<HomeViewModel>().init();
|
context,
|
||||||
|
() => HomeRouteData().go(context),
|
||||||
|
);
|
||||||
|
viewModel.updateHome();
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
// Navigate to profile
|
// Navigate to profile
|
||||||
Router.neglect(context, () => context.go('/profile'));
|
Router.neglect(
|
||||||
|
context,
|
||||||
|
() => ProfileRouteData().go(context),
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:tm_app/core/constants/assets.dart';
|
import 'package:tm_app/core/constants/assets.dart';
|
||||||
import 'package:tm_app/core/theme/colors.dart';
|
import 'package:tm_app/core/theme/colors.dart';
|
||||||
import 'package:tm_app/core/utils/size_config.dart';
|
import 'package:tm_app/core/utils/size_config.dart';
|
||||||
import 'package:tm_app/view_models/home_view_model.dart';
|
|
||||||
import 'package:tm_app/view_models/tender_detail_view_model.dart';
|
import 'package:tm_app/view_models/tender_detail_view_model.dart';
|
||||||
import 'package:tm_app/views/detail/widgets/tender_detail_action.dart';
|
import 'package:tm_app/views/detail/widgets/tender_detail_action.dart';
|
||||||
import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
|
import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
|
||||||
@@ -14,6 +13,7 @@ import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
|
|||||||
import 'package:tm_app/views/shared/tablet_navigation_widget.dart';
|
import 'package:tm_app/views/shared/tablet_navigation_widget.dart';
|
||||||
|
|
||||||
import '../../../core/constants/strings.dart';
|
import '../../../core/constants/strings.dart';
|
||||||
|
import '../../../core/routes/app_routes.dart';
|
||||||
|
|
||||||
class TenderDetailTabletPage extends StatefulWidget {
|
class TenderDetailTabletPage extends StatefulWidget {
|
||||||
final String tenderId;
|
final String tenderId;
|
||||||
@@ -84,9 +84,7 @@ class _TenderDetailTabletPageState extends State<TenderDetailTabletPage> {
|
|||||||
onPopInvokedWithResult: (didPop, result) {
|
onPopInvokedWithResult: (didPop, result) {
|
||||||
if (kIsWeb) {
|
if (kIsWeb) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
context.read<TenderDetailViewModel>().updateTenderApprovals(
|
viewModel.updateTenderApprovals(widget.tenderId);
|
||||||
widget.tenderId,
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -124,15 +122,15 @@ class _TenderDetailTabletPageState extends State<TenderDetailTabletPage> {
|
|||||||
// Handle navigation to other tabs
|
// Handle navigation to other tabs
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
Router.neglect(context, () => context.go('/home'));
|
Router.neglect(context, () => HomeRouteData().go(context));
|
||||||
context.read<HomeViewModel>().init();
|
viewModel.updateHome();
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
// Navigate to profile
|
// Navigate to profile
|
||||||
context.pop();
|
context.pop();
|
||||||
Router.neglect(context, () => context.go('/profile'));
|
Router.neglect(context, () => ProfileRouteData().go(context));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:tm_app/core/constants/assets.dart';
|
import 'package:tm_app/core/constants/assets.dart';
|
||||||
import 'package:tm_app/core/constants/strings.dart';
|
import 'package:tm_app/core/constants/strings.dart';
|
||||||
@@ -44,11 +43,17 @@ class DesktopHomePage extends StatelessWidget {
|
|||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
// Navigate to tenders
|
// Navigate to tenders
|
||||||
Router.neglect(context, () => context.go('/tenders'));
|
Router.neglect(
|
||||||
|
context,
|
||||||
|
() => TendersRouteData().go(context),
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
// Navigate to profile
|
// Navigate to profile
|
||||||
Router.neglect(context, () => context.go('/profile'));
|
Router.neglect(
|
||||||
|
context,
|
||||||
|
() => ProfileRouteData().go(context),
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -59,12 +59,12 @@ class TabletHomePage extends StatelessWidget {
|
|||||||
case 1:
|
case 1:
|
||||||
// Navigate to tenders
|
// Navigate to tenders
|
||||||
context.pop();
|
context.pop();
|
||||||
Router.neglect(context, () => context.go('/tenders'));
|
Router.neglect(context, () => TendersRouteData().go(context));
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
// Navigate to profile
|
// Navigate to profile
|
||||||
context.pop();
|
context.pop();
|
||||||
Router.neglect(context, () => context.go('/profile'));
|
Router.neglect(context, () => ProfileRouteData().go(context));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:tm_app/core/routes/app_routes.dart';
|
import 'package:tm_app/core/routes/app_routes.dart';
|
||||||
import 'package:tm_app/view_models/profile_view_model.dart';
|
import 'package:tm_app/view_models/profile_view_model.dart';
|
||||||
@@ -39,7 +38,7 @@ class _DesktopProfilePageState extends State<DesktopProfilePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (viewModel.loggedOut) {
|
if (viewModel.loggedOut) {
|
||||||
LoginScreenRoute().go(context);
|
Router.neglect(context, () => LoginScreenRoute().go(context));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,11 +76,17 @@ class _DesktopProfilePageState extends State<DesktopProfilePage> {
|
|||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
// Navigate to home
|
// Navigate to home
|
||||||
Router.neglect(context, () => context.go('/home'));
|
Router.neglect(
|
||||||
|
context,
|
||||||
|
() => HomeRouteData().go(context),
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
// Navigate to profile
|
// Navigate to profile
|
||||||
Router.neglect(context, () => context.go('/tenders'));
|
Router.neglect(
|
||||||
|
context,
|
||||||
|
() => TendersRouteData().go(context),
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
// Already on profile
|
// Already on profile
|
||||||
@@ -163,6 +168,7 @@ class _DesktopProfilePageState extends State<DesktopProfilePage> {
|
|||||||
alignment: Alignment.centerRight,
|
alignment: Alignment.centerRight,
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => viewModel.logout(),
|
onTap: () => viewModel.logout(),
|
||||||
|
borderRadius: BorderRadius.circular(100),
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 156,
|
width: 156,
|
||||||
height: 56.0.h(),
|
height: 56.0.h(),
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class _MobileProfilePageState extends State<MobileProfilePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (viewModel.loggedOut) {
|
if (viewModel.loggedOut) {
|
||||||
LoginScreenRoute().go(context);
|
Router.neglect(context, () => LoginScreenRoute().go(context));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,6 +143,7 @@ class _MobileProfilePageState extends State<MobileProfilePage> {
|
|||||||
Spacer(),
|
Spacer(),
|
||||||
InkWell(
|
InkWell(
|
||||||
onTap: () => viewModel.logout(),
|
onTap: () => viewModel.logout(),
|
||||||
|
borderRadius: BorderRadius.circular(100),
|
||||||
child: Container(
|
child: Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
height: 56.0.h(),
|
height: 56.0.h(),
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import 'package:provider/provider.dart';
|
|||||||
import 'package:tm_app/core/constants/assets.dart';
|
import 'package:tm_app/core/constants/assets.dart';
|
||||||
import 'package:tm_app/core/constants/strings.dart';
|
import 'package:tm_app/core/constants/strings.dart';
|
||||||
import 'package:tm_app/core/routes/app_routes.dart';
|
import 'package:tm_app/core/routes/app_routes.dart';
|
||||||
import 'package:tm_app/view_models/home_view_model.dart';
|
|
||||||
import 'package:tm_app/view_models/profile_view_model.dart';
|
import 'package:tm_app/view_models/profile_view_model.dart';
|
||||||
|
|
||||||
import '../../../core/theme/colors.dart';
|
import '../../../core/theme/colors.dart';
|
||||||
@@ -40,7 +39,7 @@ class _TabletProfilePageState extends State<TabletProfilePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (viewModel.loggedOut) {
|
if (viewModel.loggedOut) {
|
||||||
LoginScreenRoute().go(context);
|
Router.neglect(context, () => LoginScreenRoute().go(context));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,12 +102,15 @@ class _TabletProfilePageState extends State<TabletProfilePage> {
|
|||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
context.pop();
|
context.pop();
|
||||||
Router.neglect(context, () => context.go('/home'));
|
Router.neglect(context, () => HomeRouteData().go(context));
|
||||||
context.read<HomeViewModel>().init();
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
context.pop();
|
context.pop();
|
||||||
Router.neglect(context, () => context.go('/tenders'));
|
Router.neglect(
|
||||||
|
context,
|
||||||
|
() => TendersRouteData().go(context),
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -190,6 +192,7 @@ class _TabletProfilePageState extends State<TabletProfilePage> {
|
|||||||
alignment: Alignment.centerRight,
|
alignment: Alignment.centerRight,
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => viewModel.logout(),
|
onTap: () => viewModel.logout(),
|
||||||
|
borderRadius: BorderRadius.circular(100),
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 156,
|
width: 156,
|
||||||
height: 56.0.h(),
|
height: 56.0.h(),
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:tm_app/core/theme/colors.dart';
|
import 'package:tm_app/core/theme/colors.dart';
|
||||||
import 'package:tm_app/core/utils/size_config.dart';
|
import 'package:tm_app/core/utils/size_config.dart';
|
||||||
@@ -8,6 +7,7 @@ import 'package:tm_app/views/shared/desktop_navigation_widget.dart';
|
|||||||
import 'package:tm_app/views/tenders/widgets/main_tenders_slider.dart';
|
import 'package:tm_app/views/tenders/widgets/main_tenders_slider.dart';
|
||||||
|
|
||||||
import '../../../core/constants/strings.dart';
|
import '../../../core/constants/strings.dart';
|
||||||
|
import '../../../core/routes/app_routes.dart';
|
||||||
|
|
||||||
class DesktopTendersPage extends StatefulWidget {
|
class DesktopTendersPage extends StatefulWidget {
|
||||||
const DesktopTendersPage({super.key});
|
const DesktopTendersPage({super.key});
|
||||||
@@ -63,7 +63,7 @@ class _DesktopTendersPageState extends State<DesktopTendersPage> {
|
|||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
// Navigate to home
|
// Navigate to home
|
||||||
Router.neglect(context, () => context.go('/home'));
|
Router.neglect(context, () => HomeRouteData().go(context));
|
||||||
viewModel.updateHome();
|
viewModel.updateHome();
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
@@ -71,8 +71,7 @@ class _DesktopTendersPageState extends State<DesktopTendersPage> {
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
// Navigate to profile
|
// Navigate to profile
|
||||||
// context.go('/profile');
|
Router.neglect(context, () => ProfileRouteData().go(context));
|
||||||
Router.neglect(context, () => context.go('/profile'));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import 'package:tm_app/views/tenders/widgets/main_tenders_slider.dart';
|
|||||||
|
|
||||||
import '../../../core/constants/assets.dart';
|
import '../../../core/constants/assets.dart';
|
||||||
import '../../../core/constants/strings.dart';
|
import '../../../core/constants/strings.dart';
|
||||||
|
import '../../../core/routes/app_routes.dart';
|
||||||
|
|
||||||
class TabletTendersPage extends StatefulWidget {
|
class TabletTendersPage extends StatefulWidget {
|
||||||
const TabletTendersPage({super.key});
|
const TabletTendersPage({super.key});
|
||||||
@@ -64,12 +65,12 @@ class _TabletTendersPageState extends State<TabletTendersPage> {
|
|||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
context.pop();
|
context.pop();
|
||||||
Router.neglect(context, () => context.go('/home'));
|
Router.neglect(context, () => HomeRouteData().go(context));
|
||||||
viewModel.updateHome();
|
viewModel.updateHome();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
context.pop();
|
context.pop();
|
||||||
Router.neglect(context, () => context.go('/profile'));
|
Router.neglect(context, () => ProfileRouteData().go(context));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user