import { createAsync, useParams } from "@solidjs/router" import { client, getAnalysisList, paths } from "./api.ts"; import { createSignal, For, onMount, Show, Suspense } from "solid-js"; import { SolidApexCharts } from "solid-apexcharts"; import { BarChart, times } from "chartist"; type AnalysisResult = { status: 'not requested' } | { status: 'loading' } | { status: 'loaded', result: paths['/analysis/execute']['get']['responses'][200]['content']['application/json'] } export default function Analysis() { const pathParams = useParams(); const analysisId = pathParams.id!; let analysis = createAsync(() => getAnalysisList()); const analysisName = () => analysis()?.data?.find(it => it.id == analysisId)?.name const [startTimestamp, setStartTimestamp] = createSignal(new Date().getTime() - 1000 * 60 * 60 * 24 * 356); const [endTimestamp, setEndTimestamp] = createSignal(new Date().getTime()); const [analysisResult, setAnalysisResult] = createSignal({ status: 'not requested' }); return <>

{analysisName()}

it.status == 'loaded')}> {element => {item =>

([it.time, it.value])) } ]} >
} }

} const formatMoney = (money: number): string => { if (money < 0) return `-${formatMoney(money)}` const moneyNames = [ [1_000_000_000, 'b'], [1_000_000, 'm'], [1_000, 'k'], [1, ''] ] as const; for (const [factor, name] of moneyNames) { if (money >= factor) { const scaledValue = Math.round(money / factor * 10) / 10 return `${scaledValue}${name}` } } return money.toString() } const formatDate = (date: number | Date) => { const _date = new Date(date); return `${_date.getDay()}.${_date.getMonth() + 1}.${_date.getFullYear()}` } function takeIf( obj: P, condition: (arg: P) => arg is T, ): T | false { return condition(obj) ? obj : false; }