86 lines
2.2 KiB
Dart
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();
|
|
}
|
|
}
|