delete like from liked screens
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:tm_app/core/routes/app_shell/desktop_shell_page.dart';
|
||||
import 'package:tm_app/core/routes/app_shell/mobile_shell_page.dart';
|
||||
import 'package:tm_app/core/routes/app_shell/tablet_shell_page.dart';
|
||||
import 'package:tm_app/view_models/home_view_model.dart';
|
||||
import 'package:tm_app/view_models/tenders_view_model.dart';
|
||||
import 'package:tm_app/views/shared/responsive_builder.dart';
|
||||
|
||||
class AppShellScreen extends StatelessWidget {
|
||||
@@ -16,13 +17,22 @@ class AppShellScreen extends StatelessWidget {
|
||||
if (index == navigationShell.currentIndex) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Navigate first
|
||||
navigationShell.goBranch(
|
||||
index,
|
||||
initialLocation: index == navigationShell.currentIndex,
|
||||
);
|
||||
|
||||
// Then trigger data loading after navigation is complete
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (index == 0) {
|
||||
context.read<HomeViewModel>().init();
|
||||
}
|
||||
if (index == 1) {
|
||||
context.read<TendersViewModel>().getTenders();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -93,8 +93,8 @@ class TendersViewModel with ChangeNotifier {
|
||||
}
|
||||
|
||||
Future<void> getTenders() async {
|
||||
clearAll(); // Clear all data before fetching new tenders
|
||||
_isLoading = true;
|
||||
_errorMessage = null;
|
||||
_currentOffset = 0;
|
||||
_hasMoreData = true;
|
||||
notifyListeners();
|
||||
@@ -466,4 +466,33 @@ class TendersViewModel with ChangeNotifier {
|
||||
void updateHome() {
|
||||
_homeViewModel.init();
|
||||
}
|
||||
|
||||
/// Clear all feedbacks
|
||||
void clearFeedbacks() {
|
||||
feedbacks.clear();
|
||||
_feedbackData = null;
|
||||
_feedbackErrorMessage = null;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// Clear all tenders
|
||||
void clearTenders() {
|
||||
_tendersResponse = null;
|
||||
_errorMessage = null;
|
||||
_currentOffset = 0;
|
||||
_hasMoreData = true;
|
||||
currentPage = 1;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// Clear all data (tenders, feedbacks, and approvals)
|
||||
void clearAll() {
|
||||
clearTenders();
|
||||
clearFeedbacks();
|
||||
tenderApprovals.clear();
|
||||
_tenderApprovalData = null;
|
||||
_tenderApprovalToggleData = null;
|
||||
_tenderApprovalErrorMessage = null;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ class _LikedTendersDesktopPageState extends State<LikedTendersDesktopPage> {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(bottom: 20.0.h()),
|
||||
child: Dismissible(
|
||||
key: ValueKey(item.id ?? index),
|
||||
key: ValueKey(item.tenderId ?? index),
|
||||
direction: DismissDirection.endToStart,
|
||||
background: Container(
|
||||
alignment: Alignment.centerRight,
|
||||
@@ -99,8 +99,10 @@ class _LikedTendersDesktopPageState extends State<LikedTendersDesktopPage> {
|
||||
),
|
||||
),
|
||||
onDismissed: (_) {
|
||||
if (item.id != null) {
|
||||
viewModel.removeTenderById(item.id!);
|
||||
if (item.tenderId != null) {
|
||||
viewModel.removeTenderById(
|
||||
item.tenderId!,
|
||||
);
|
||||
}
|
||||
},
|
||||
child: LikedListItem(tender: item.tender!),
|
||||
|
||||
@@ -94,7 +94,7 @@ class _LikedTendersTabletPageState extends State<LikedTendersTabletPage> {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(bottom: 20.0.h()),
|
||||
child: Dismissible(
|
||||
key: ValueKey(item.id ?? index),
|
||||
key: ValueKey(item.tenderId ?? index),
|
||||
direction: DismissDirection.endToStart,
|
||||
background: Container(
|
||||
alignment: Alignment.centerRight,
|
||||
@@ -106,8 +106,10 @@ class _LikedTendersTabletPageState extends State<LikedTendersTabletPage> {
|
||||
),
|
||||
),
|
||||
onDismissed: (_) {
|
||||
if (item.id != null) {
|
||||
viewModel.removeTenderById(item.id!);
|
||||
if (item.tenderId != null) {
|
||||
viewModel.removeTenderById(
|
||||
item.tenderId!,
|
||||
);
|
||||
}
|
||||
},
|
||||
child: LikedListItem(tender: item.tender!),
|
||||
|
||||
Reference in New Issue
Block a user