fix: filter-by-tracker failed after the tracker list changed (#7761)

This commit is contained in:
Charles Kerr
2025-11-05 14:25:45 -06:00
committed by GitHub
parent c35af04606
commit 152e468e3a

View File

@@ -16,11 +16,18 @@ export class Torrent extends EventTarget {
this.fieldObservers = {};
this.fields = {};
this.refresh(data);
this.setLazyCollatedField('name', 'collatedName');
this.setLazyCollatedField('trackers', 'collatedTrackers');
}
setLazyCollatedField(name, collated_name) {
this.notifyOnFieldChange(name, () => delete this.fields[collated_name]);
}
notifyOnFieldChange(field, callback) {
this.fieldObservers[field] = this.fieldObservers[field] || [];
this.fieldObservers[field].push(callback);
const observers = (this.fieldObservers[field] ??= []);
observers.push(callback);
}
setField(o, name, value) {
@@ -80,12 +87,6 @@ export class Torrent extends EventTarget {
changed |= this.setField(this.fields, key, value);
}
break;
case 'name':
if (this.setField(this.fields, key, data[key])) {
this.fields.collatedName = '';
changed = true;
}
break;
default:
changed |= this.setField(this.fields, key, value);
}