File size: 1,148 Bytes
1f2f6bf
ea649e4
1f2f6bf
419db65
1f2f6bf
 
 
419db65
1f2f6bf
 
 
c507f8c
e0d819a
 
c507f8c
e0d819a
ea649e4
e0d819a
 
 
 
 
 
c507f8c
4347540
c507f8c
4347540
419db65
 
 
c507f8c
 
 
 
e0d819a
 
 
1f2f6bf
 
 
 
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
import { useState } from 'react'
import { Tabs } from "@elvis/ui";
import ConvolutionVisualizer from "./ConvolutionVisualizer.tsx"
import PoolingVisualizer from "./PoolingVisualizer.tsx"
import NetworkVisualizer from "./NetworkVisualizer.tsx"

function App() {
  const tabs = ["Convolution", "Pooling", "Network"];
  const [activeTab, setActiveTab] = useState<string>(tabs[0]);

  return (
			<div className="grid grid-cols-[1fr_12fr_1fr] h-dvh bg-stone-50">
				<div/>

				<div className="flex flex-col min-h-0 p-6">
					<div className="title">CNN Visualizer</div>
          {/* <div className="desc"></div> */}

					<Tabs 
						tabs={tabs} 
						activeTab={activeTab} 
						onChange={setActiveTab}
					/>
					<div className="min-h-0 flex-1 overflow-auto mt-4">
						<div className={activeTab === "Convolution" ? "h-full" : "hidden"}>
							<ConvolutionVisualizer />
						</div>
						<div className={activeTab === "Pooling" ? "h-full" : "hidden"}>
							<PoolingVisualizer />
						</div>
						{ activeTab === "Network" && (
							<NetworkVisualizer />
						)}
					</div>
				</div>
			<div/>
		</div>
  );
}

export default App;