together_mobile/lib/models/apply_list_model.dart

59 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
class Apply {
int? relation;
String? applicant, recipient, hello, createdAt;
String? groupChatId;
Map<String, dynamic>? setting;
Apply.fromJson(Map<String, dynamic> json) {
relation = json['relation'];
applicant = json['applicant'];
recipient = json['recipient'];
hello = json['hello'];
groupChatId = json['groupChatId'];
setting = json['setting'];
}
}
class ApplyList extends ChangeNotifier {
List<Apply> applyList = [];
List<String> applicantIds = [];
int count = 0;
void init(dynamic json) {
for (var element in json) {
Apply apply = Apply.fromJson(element);
applyList.add(apply);
applicantIds.add(element['applicant']);
count += 1;
}
}
void removeAt(int index) {
applyList.removeAt(index);
applicantIds.removeAt(index);
count--;
notifyListeners();
}
void addJson(Map<String, dynamic> json) {
Apply apply = Apply.fromJson(json);
int index = applicantIds.indexOf(json['applicant']);
if (index != -1) {
applyList.removeAt(index);
count--;
}
applyList.add(apply);
applicantIds.add(json['applicant']);
count++;
notifyListeners();
}
void clear() {
applyList.clear();
applicantIds.clear();
count = 0;
}
}