import {TrashIcon} from "@heroicons/react/outline"; import {useCallback, useEffect, useState} from "react"; import {useParams} from "react-router-dom"; import {useApi} from "../api"; import Button from "../components/Button"; import {Metric} from "../core/Metric"; import {Project} from "../core/Project"; import {MetricForm} from "../forms/createMetricForm"; import {useModal} from "../services/ModalService"; import {formatTimestamp} from "../utils/formatTimestamp"; export function MetricHistoryPage() { const api = useApi(); const modalService = useModal(); const {projectId, metricId} = useParams(); const [project, setProject] = useState(null); const [metric, setMetric] = useState(null); const fetchProject = useCallback(async () => { const project = await api.fetchProject(projectId as string); setProject(project); const metric = await api.fetchProjectMetric(projectId as string, metricId as string); setMetric(metric); }, [projectId, metricId, api]) useEffect(() => {fetchProject()}, [fetchProject]) const onSomethingChanged = () => { fetchProject(); } if (!project || !metric) { return
Loading project...
} const metricForm = (close: () => void) => { close() await api.createSeries(project.id, data) onSomethingChanged() }} /> const deleteRecord = async (recordId: string) => { await api.deleteMetricHistory(metric.projectId, metric.id, recordId); fetchProject(); } return (

Metrics

{metric?.history?.map(record =>
Value: {record.value}
Date: {formatTimestamp(record.date)}
modalService.confirmation("Delete this history record ?", () => deleteRecord(record.id))} />
)}
) }