selectedItems use obs state

This commit is contained in:
csf
2023-03-09 19:55:38 +09:00
parent 5ae3d33f3c
commit f5d0275bf3
2 changed files with 101 additions and 107 deletions

View File

@@ -1052,40 +1052,32 @@ class DirectoryOptions {
class SelectedItems {
final bool isLocal;
final List<Entry> _items = [];
List<Entry> get items => _items;
int get length => _items.length;
final items = RxList<Entry>.empty(growable: true);
SelectedItems({required this.isLocal});
void add(Entry e) {
if (e.isDrive) return;
if (!_items.contains(e)) {
_items.add(e);
if (!items.contains(e)) {
items.add(e);
}
}
bool contains(Entry e) {
return _items.contains(e);
}
void remove(Entry e) {
_items.remove(e);
items.remove(e);
}
void clear() {
_items.clear();
items.clear();
}
void selectAll(List<Entry> entries) {
_items.clear();
_items.addAll(entries);
items.clear();
items.addAll(entries);
}
bool valid() {
if (length > 0) {
static bool valid(RxList<Entry> items) {
if (items.isNotEmpty) {
// exclude DirDrive type
return items.any((item) => !item.isDrive);
}