opendash
Version:
open.DASH data visualization framework
57 lines (45 loc) • 1.27 kB
text/typescript
import * as React from "react";
import {
useDeepCompareEffect,
useOpenDashServices,
DataItemValueInterface,
DataItemInterface,
} from "../..";
import { StateInterface } from "./types";
export function useItems(
state: StateInterface
): Record<string, DataItemInterface> {
return {};
}
export function useData(
state: StateInterface
): [boolean, Record<string, DataItemValueInterface[]>] {
const { DataService } = useOpenDashServices();
const [data, setData] = React.useState(null);
const [hasError, setError] = React.useState(false);
return [hasError, data];
}
export function aggregate(
aggregation: "mean" | "sum" | "min" | "max" | "count",
values: number[]
): number {
switch (aggregation) {
case "mean":
return (
values.reduce((previous, current) => (current += previous)) /
values.length
);
case "sum":
return values.reduce((previous, current) => (current += previous));
case "min":
return Math.min(...values);
case "max":
return Math.max(...values);
case "count":
default:
return values.length;
}
}
export function round(value: number, decimals: number): number {
return Math.round(value * Math.pow(10, decimals)) / Math.pow(10, decimals);
}