import m from 'mithril';
import { Metrics as MetricsEntity } from '../../../Entity/Metrics';
import { EventStore } from '../../../Infrastructure/Event/EventStore';
import { SelectMetrics } from '../../../Infrastructure/Event/SelectMetrics';
import { Metrics as Presentational } from './Metrics';
type Param = {
metrics: MetricsEntity[];
};
export class Metrics implements m.Component {
private selectedMetrics: MetricsEntity | null = null;
constructor() {
EventStore.get(SelectMetrics).listener((metrics) => {
this.selectedMetrics = metrics;
m.redraw();
});
}
view(vnode: m.Vnode) {
return m(Presentational, {
metrics: vnode.attrs.metrics,
selectedMetrics: this.selectedMetrics,
onSelect: (metrics) => {
EventStore.get(SelectMetrics).dispatch(this.selectedMetrics === metrics ? null : metrics);
},
});
}
}