clean up panels a little (#18)

This commit is contained in:
Kurt Hutten
2023-02-02 20:41:28 +11:00
committed by GitHub
parent 29e06ec852
commit 96720023db
3 changed files with 50 additions and 34 deletions

View File

@ -20,6 +20,7 @@ import { SketchPlane } from './components/SketchPlane'
import { Logs } from './components/Logs' import { Logs } from './components/Logs'
import { AxisIndicator } from './components/AxisIndicator' import { AxisIndicator } from './components/AxisIndicator'
import { RenderViewerArtifacts } from './components/RenderViewerArtifacts' import { RenderViewerArtifacts } from './components/RenderViewerArtifacts'
import { PanelHeader } from './components/PanelHeader'
const OrrthographicCamera = OrthographicCamera as any const OrrthographicCamera = OrthographicCamera as any
@ -147,28 +148,32 @@ function App() {
}, [code, ast]) }, [code, ast])
return ( return (
<div className="h-screen"> <div className="h-screen">
<Allotment> <Allotment snap={true}>
<Logs /> <Allotment vertical defaultSizes={[4, 1]}>
<div className="h-full flex flex-col items-start"> <div className="h-full flex flex-col items-start">
<button <PanelHeader title="Code Editor" />
disabled={!shouldFormat} {/* <button
onClick={formatCode} disabled={!shouldFormat}
className={`${!shouldFormat && 'text-gray-300'}`} onClick={formatCode}
> className={`${!shouldFormat && 'text-gray-300'}`}
format >
</button> format
<div className="bg-red h-full w-full overflow-auto"> </button> */}
<CodeMirror <div className="bg-red h-full w-full overflow-auto">
className="h-full" <CodeMirror
value={code} className="h-full"
extensions={[javascript({ jsx: true }), lineHighlightField]} value={code}
onChange={onChange} extensions={[javascript({ jsx: true }), lineHighlightField]}
onUpdate={onUpdate} onChange={onChange}
onCreateEditor={(_editorView) => setEditorView(_editorView)} onUpdate={onUpdate}
/> onCreateEditor={(_editorView) => setEditorView(_editorView)}
/>
</div>
</div> </div>
</div> <Logs />
</Allotment>
<div className="h-full"> <div className="h-full">
<PanelHeader title="Drafting Board" />
<Toolbar /> <Toolbar />
<div className="border h-full border-gray-300 relative"> <div className="border h-full border-gray-300 relative">
<div className="absolute inset-0"> <div className="absolute inset-0">

View File

@ -1,5 +1,6 @@
import { useEffect } from 'react' import { useEffect } from 'react'
import { useStore } from '../useStore' import { useStore } from '../useStore'
import { PanelHeader } from './PanelHeader'
export const Logs = () => { export const Logs = () => {
const { logs, resetLogs } = useStore(({ logs, resetLogs }) => ({ const { logs, resetLogs } = useStore(({ logs, resetLogs }) => ({
@ -13,20 +14,23 @@ export const Logs = () => {
} }
}, [logs]) }, [logs])
return ( return (
<div className="h-full relative"> <div>
<div className="absolute inset-0 flex flex-col items-start"> <PanelHeader title="Logs" />
<button onClick={resetLogs}>reset</button> <div className="h-full relative">
<div className=" overflow-auto h-full console-tile w-full"> <div className="absolute inset-0 flex flex-col items-start">
{logs.map((msg, index) => { <button onClick={resetLogs}>reset</button>
return ( <div className=" overflow-auto h-full console-tile w-full">
<pre className="text-xs pl-2 text-sky-600" key={index}> {logs.map((msg, index) => {
<code style={{ fontFamily: 'monospace' }} key={index}> return (
<span className="text-gray-400">{'- '}</span> <pre className="text-xs pl-2 text-sky-600" key={index}>
{String(msg)} <code style={{ fontFamily: 'monospace' }} key={index}>
</code> <span className="text-gray-400">{'- '}</span>
</pre> {String(msg)}
) </code>
})} </pre>
)
})}
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -0,0 +1,7 @@
export const PanelHeader = ({ title }: { title: string }) => {
return (
<div className="font-mono text-xs bg-stone-100 w-full pl-4 h-[30px] text-stone-700 flex items-center">
{title}
</div>
)
}