Skip to content

Commit 4151584

Browse files
committed
progress towards publishable component
1 parent e727184 commit 4151584

File tree

3 files changed

+82
-1
lines changed

3 files changed

+82
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "react-timeseries",
2+
"name": "react-time-series",
33
"version": "0.1.0",
44
"dependencies": {
55
"@material-ui/core": "^4.11.0",
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import React, { useState, useMemo } from "react"
2+
import useEventCallback from "use-event-callback"
3+
4+
import MainLayout from "../MainLayout"
5+
6+
const emptyAr = []
7+
8+
// This is a cloudflare CORs proxy from the project maintainer @seveibar
9+
const defaultCorsProxy =
10+
"https://corsproxy.seve.workers.dev/corsproxy/?apiurl={URL}"
11+
12+
const defaultEnabledTools = [
13+
"create-durations",
14+
"create-timestamps",
15+
"label-durations",
16+
"label-timestamps",
17+
]
18+
const defaultGraphs = [{ keyName: "value" }]
19+
20+
export const ReactTimeSeries = ({
21+
corsProxy = defaultCorsProxy,
22+
interface: iface,
23+
sample,
24+
onModifySample,
25+
}) => {
26+
const {
27+
timeFormat,
28+
enabledTools = defaultEnabledTools,
29+
durationLabels = emptyAr,
30+
timestampLabels = emptyAr,
31+
graphs = defaultGraphs,
32+
allowCustomLabels,
33+
} = iface
34+
let { timeData: sampleTimeData, audioUrl, csvUrl, annotation } = sample
35+
36+
const timeData = useMemo(() => {
37+
if (sampleTimeData) return sampleTimeData
38+
// TODO load audioUrl
39+
// TODO load csvUrl
40+
}, [sampleTimeData, audioUrl, csvUrl])
41+
42+
const curveGroups = useMemo(() => {}, [timeData, graphs])
43+
44+
const [timestamps, setTimestamps] = useState(() => {
45+
if (!annotation?.timestamps) return []
46+
// TODO derive timestamps
47+
return []
48+
})
49+
const [durationGroups, setDurationGroups] = useState(() => {
50+
if (!annotation?.durations) return []
51+
// TODO derive timestamps
52+
return []
53+
})
54+
55+
const onChangeDurationGroups = useEventCallback(() => {})
56+
const onChangeTimestamps = useEventCallback(() => {})
57+
58+
return (
59+
<MainLayout
60+
curveGroups={curveGroups}
61+
timeFormat={timeFormat}
62+
durationGroups={durationGroups}
63+
onChangeDurationGroups={onChangeDurationGroups}
64+
timestamps={timestamps}
65+
onChangeTimestamps={onChangeTimestamps}
66+
/>
67+
)
68+
}
69+
70+
export default ReactTimeSeries
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from "react"
2+
import ReactTimeSeries from "./"
3+
4+
export default {
5+
name: "ReactTimeSeries",
6+
component: ReactTimeSeries,
7+
}
8+
9+
export const Primary = () => {
10+
return <ReactTimeSeries />
11+
}

0 commit comments

Comments
 (0)