@@ -5,6 +5,7 @@ import { tools } from "./lib/tools";
55import { Editor } from "./components/editor" ;
66import { ToolSelector } from "./components/tool-selector" ;
77import { ThemeProvider } from "./components/theme-provider" ;
8+ import { Panel , PanelGroup , PanelResizeHandle } from "react-resizable-panels" ;
89
910function App ( ) {
1011 const { language, tool, code, setCode } = useExplorer ( ) ;
@@ -15,26 +16,39 @@ function App() {
1516 < div className = "flex flex-col h-screen" >
1617 < Navbar />
1718 < div className = "h-full overflow-hidden" >
18- < div className = "grid sm:grid-cols-2 divide-x border-t h-full" >
19- < Editor
20- value = { code [ language ] }
21- onChange = { value => {
22- setCode ( { ...code , [ language ] : value } ) ;
23- } }
24- />
25- < div className = "bg-muted overflow-auto h-[70dvh] sm:h-full relative flex flex-col" >
26- < div className = "flex sm:items-center flex-col sm:flex-row justify-between p-4 gap-2 z-10" >
27- < ToolSelector />
28- < div className = "flex items-center gap-1" >
29- { activeTool . options . map (
30- ( Option , index ) => (
31- < Option key = { index } />
32- ) ,
33- ) }
19+ < div className = "border-t h-full" >
20+ < PanelGroup
21+ direction = "horizontal"
22+ className = "border-t h-full"
23+ >
24+ < Panel defaultSize = { 50 } minSize = { 25 } >
25+ < Editor
26+ value = { code [ language ] }
27+ onChange = { value => {
28+ setCode ( {
29+ ...code ,
30+ [ language ] : value ,
31+ } ) ;
32+ } }
33+ />
34+ </ Panel >
35+ < PanelResizeHandle className = "w-2 bg-gutter dark:bg-gray-600 bg-gray-200 bg-no-repeat bg-center" />
36+ < Panel defaultSize = { 50 } minSize = { 25 } >
37+ < div className = "bg-muted overflow-auto h-[70dvh] sm:h-full relative flex flex-col" >
38+ < div className = "flex sm:items-center flex-col sm:flex-row justify-between p-4 gap-2 z-10" >
39+ < ToolSelector />
40+ < div className = "flex items-center gap-1" >
41+ { activeTool . options . map (
42+ ( Option , index ) => (
43+ < Option key = { index } />
44+ ) ,
45+ ) }
46+ </ div >
47+ </ div >
48+ < activeTool . component />
3449 </ div >
35- </ div >
36- < activeTool . component />
37- </ div >
50+ </ Panel >
51+ </ PanelGroup >
3852 </ div >
3953 </ div >
4054 </ div >
0 commit comments