feat: add equality operators, make history screen paginated, random performance updates
This commit is contained in:
@@ -24,4 +24,33 @@ class ClosedTab {
|
||||
|
||||
String get formattedTotal =>
|
||||
NumberFormat.simpleCurrency().format(totalInCents / 100);
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is ClosedTab &&
|
||||
id == other.id &&
|
||||
originalTabId == other.originalTabId &&
|
||||
customerName == other.customerName &&
|
||||
closedAt == other.closedAt &&
|
||||
_listEquals(items, other.items);
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(
|
||||
id,
|
||||
originalTabId,
|
||||
customerName,
|
||||
closedAt,
|
||||
Object.hashAll(items),
|
||||
);
|
||||
}
|
||||
|
||||
bool _listEquals<T>(List<T>? a, List<T>? b) {
|
||||
if (identical(a, b)) return true;
|
||||
if (a == null || b == null) return a == b;
|
||||
if (a.length != b.length) return false;
|
||||
for (int i = 0; i < a.length; i++) {
|
||||
if (a[i] != b[i]) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user