mapcomplete/Logic/FeatureSource/RegisteringFeatureSource.ts

20 lines
759 B
TypeScript
Raw Normal View History

2021-04-18 12:24:30 +00:00
import FeatureSource from "./FeatureSource";
import {UIEventSource} from "../UIEventSource";
import State from "../../State";
export default class RegisteringFeatureSource implements FeatureSource {
public readonly features: UIEventSource<{ feature: any; freshness: Date }[]>;
public readonly name;
2021-04-18 12:24:30 +00:00
constructor(source: FeatureSource) {
this.features = source.features;
this.name = "RegisteringSource of "+source.name;
2021-04-18 12:24:30 +00:00
this.features.addCallbackAndRun(features => {
for (const feature of features ?? []) {
if (!State.state.allElements.has(feature.feature.properties.id)) {
State.state.allElements.addOrGetElement(feature.feature)
}
}
})
}
}