@@ -4,7 +4,6 @@ import React, { useState, useEffect, useMemo } from "react"
44import { makeStyles } from "@material-ui/core/styles"
55
66import Header from "../Header"
7- import AceEditor from "react-ace"
87import EditableTitleText from "./EditableTitleText.js"
98import SamplesView from "../SamplesView"
109import InterfacePage from "../InterfacePage"
@@ -21,6 +20,7 @@ import LabelView from "../LabelView"
2120import useIsLabelOnlyMode from "../../utils/use-is-label-only-mode"
2221import { HotKeys } from "react-hotkeys"
2322import { useHotkeyStorage } from "../HotkeyStorage"
23+ import RawJSONEditor from "../RawJSONEditor"
2424
2525import "brace/mode/javascript"
2626import "brace/theme/github"
@@ -67,7 +67,6 @@ export default ({
6767 const [ mode , changeMode ] = useState ( labelOnlyMode ? "label" : initialMode )
6868 const [ singleSampleDataset , setSingleSampleDataset ] = useState ( )
6969 const [ sampleInputEditor , changeSampleInputEditor ] = useState ( { } )
70- const [ jsonText , changeJSONText ] = useState ( )
7170 const { ipcRenderer } = useElectron ( ) || { }
7271 const posthog = usePosthog ( )
7372
@@ -94,22 +93,17 @@ export default ({
9493 } , [ ipcRenderer ] )
9594
9695 useEffect ( ( ) => {
97- if ( mode === "json" ) {
98- changeJSONText ( JSON . stringify ( dataset , null , " " ) )
99- }
96+ posthog . people . set ( {
97+ average_time_to_complete_sample : sampleTimeToComplete ,
98+ } )
99+ } , [ sampleTimeToComplete , posthog . people ] )
100+
101+ useEffect ( ( ) => {
100102 if ( mode !== "label" ) {
101103 setSingleSampleDataset ( null )
102104 }
103105 posthog . capture ( "open_editor_tab" , { tab : mode } )
104- } , [ mode , posthog , changeJSONText , dataset ] )
105-
106- useEffect ( ( ) => {
107- if ( ! jsonText || mode !== "json" ) return
108- try {
109- // TODO schema validation etc.
110- onChangeDataset ( JSON . parse ( jsonText ) )
111- } catch ( e ) { }
112- } , [ jsonText , mode , onChangeDataset ] )
106+ } , [ mode , posthog ] )
113107
114108 const onChangeTab = useEventCallback ( ( tab ) => changeMode ( tab . toLowerCase ( ) ) )
115109
@@ -154,13 +148,12 @@ export default ({
154148 />
155149 < div style = { { height : "100%" , overflowY : "scroll" } } >
156150 { mode === "json" && (
157- < AceEditor
158- theme = "github"
159- mode = "javascript"
160- width = "100%"
161- value = { jsonText || "" }
162- editorProps = { { $blockScrolling : Infinity } }
163- onChange = { ( t ) => changeJSONText ( t ) }
151+ < RawJSONEditor
152+ content = { dataset }
153+ onSave = { ( newDataset ) => {
154+ onChangeDataset ( newDataset )
155+ changeMode ( "setup" )
156+ } }
164157 />
165158 ) }
166159 { mode === "setup" && (
0 commit comments