File size: 1,833 Bytes
9b05cbd
 
a6c2420
41e6303
de4a32f
 
9b05cbd
dfb5a61
41e6303
9b05cbd
65a5a49
 
 
9b05cbd
 
d8f744e
65a5a49
af85f3e
65a5a49
af85f3e
65a5a49
d8f744e
65a5a49
 
 
 
 
 
 
 
 
 
 
 
dfb5a61
65a5a49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9b05cbd
18fd890
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import DecisionBoundaryPlot from "./DecisionBoundaryPlot.tsx";
import Sidebar from "./Sidebar.tsx";
// import { LoadingScreen } from "@elvis/ui";
import useAppLogic from "./useAppLogic.ts";


export default function App() {

  const app = useAppLogic();

  //if (!app.backendReady) {
    //return <LoadingScreen message="Loading" />;
  //}

  return (
			<div className="grid grid-cols-[1fr_12fr_1fr] lg:h-dvh bg-stone-50">
				<div/>
				<div className="flex flex-col gap-6 p-6 min-h-0">
					<div className="title">Decision Boundary Visualizer</div>
					{/* <div className="desc">Description</div> */}
				
					<div className="grid grid-cols-1 lg:grid-cols-[8fr_4fr] gap-12 flex-1 min-h-0 overflow-auto">
						<DecisionBoundaryPlot 
							dataPoints={app.dataPoints}
							addDataPoint={app.handleAddDataPoint}
							decisionBoundaryResult={app.decisionBoundaryResult}
							xRangeRef={app.xRangeRef}
							yRangeRef={app.yRangeRef}
							setRanges={app.handleRangeChange}
							canAddPoints={app.canAddPoints}
							pointLabel={app.pointLabel}
							labelColors={app.labelColors}
							plotHandle={app.plotHandle}
						/>

						<Sidebar 
							pointLabel={app.pointLabel}
							setPointLabel={app.setPointLabel}
							setCanAddPoints={app.setCanAddPoints}
							undoDataPoint={app.handleUndoDataPoint}
							clearDataPoints={app.handleClearDataPoints}
							modelSettings={app.modelSettings}
							setModelSettings={app.handleModelSettingsChange}
							csvSettings={app.csvSettings}
							onCsvSettingsChange={app.handleCsvSettingsChange}
							onGetDecisionBoundary={app.handleGetDecisionBoundary}
							onCsvUpload={app.handleCsvUpload}
							csvError={app.csvError}
							onCsvExport={app.getCsvDataset}
							onSvgExport={app.getPlotSvg}
						/>
					</div>
				</div>
				<div/>
		</div>
  );
}