Files
tm_app/lib/view_models/tenders_view_model.dart
T
2025-08-10 16:05:03 +03:30

86 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:tm_app/views/tenders/models/tender_model.dart';
class TendersViewModel with ChangeNotifier {
List<Tender> likedTenders = [];
List<Tender> dislikedTenders = [];
int currentPage = 1;
List<Tender> rejectedTenders = [];
List<Tender> submittedTenders = [];
void onDislike(Tender tender) {
if (likedTenders.contains(tender)) {
likedTenders.remove(tender);
if (submittedTenders.contains(tender)) {
submittedTenders.remove(tender);
}
}
if (!dislikedTenders.contains(tender)) {
dislikedTenders.add(tender);
if (submittedTenders.contains(tender)) {
submittedTenders.remove(tender);
}
} else {
dislikedTenders.remove(tender);
}
notifyListeners();
}
void onLike(Tender tender) {
if (dislikedTenders.contains(tender)) {
dislikedTenders.remove(tender);
if (rejectedTenders.contains(tender)) {
rejectedTenders.remove(tender);
}
}
if (!likedTenders.contains(tender)) {
likedTenders.add(tender);
if (rejectedTenders.contains(tender)) {
rejectedTenders.remove(tender);
}
} else {
likedTenders.remove(tender);
}
notifyListeners();
}
void onReject(Tender tender) {
if (rejectedTenders.contains(tender)) {
rejectedTenders.remove(tender);
} else if (submittedTenders.contains(tender)) {
submittedTenders.remove(tender);
rejectedTenders.add(tender);
if (likedTenders.contains(tender)) {
likedTenders.remove(tender);
}
} else {
rejectedTenders.add(tender);
if (likedTenders.contains(tender)) {
likedTenders.remove(tender);
}
}
notifyListeners();
}
void onSubmit(Tender tender) {
if (submittedTenders.contains(tender)) {
submittedTenders.remove(tender);
} else if (rejectedTenders.contains(tender)) {
rejectedTenders.remove(tender);
submittedTenders.add(tender);
if (dislikedTenders.contains(tender)) {
dislikedTenders.remove(tender);
}
} else {
submittedTenders.add(tender);
if (dislikedTenders.contains(tender)) {
dislikedTenders.remove(tender);
}
}
notifyListeners();
}
}