diff --git a/src/app/components/generator/ProjectPanel.tsx b/src/app/components/generator/ProjectPanel.tsx
index fa4d0dbb..3b76c59d 100644
--- a/src/app/components/generator/ProjectPanel.tsx
+++ b/src/app/components/generator/ProjectPanel.tsx
@@ -133,7 +133,7 @@ export function ProjectPanel() {
}, [service, actions, projectRoot, projectUri])
- return <>
+ return
{projects.map(p => changeProject(p.name)} />)}
@@ -152,5 +152,5 @@ export function ProjectPanel() {
: path.split('/')} group={FolderEntry} leaf={FileEntry} />}
- >
+
}
diff --git a/src/app/components/generator/SchemaGenerator.tsx b/src/app/components/generator/SchemaGenerator.tsx
index a4cd64a5..bc9abd41 100644
--- a/src/app/components/generator/SchemaGenerator.tsx
+++ b/src/app/components/generator/SchemaGenerator.tsx
@@ -7,7 +7,7 @@ import config from '../../Config.js'
import { DRAFT_PROJECT, useLocale, useProject, useVersion } from '../../contexts/index.js'
import { useModal } from '../../contexts/Modal.jsx'
import { useSpyglass, watchSpyglassUri } from '../../contexts/Spyglass.jsx'
-import { AsyncCancel, useActiveTimeout, useAsync, useSearchParam } from '../../hooks/index.js'
+import { AsyncCancel, useActiveTimeout, useAsync, useLocalStorage, useSearchParam } from '../../hooks/index.js'
import type { VersionId } from '../../services/index.js'
import { checkVersion, fetchDependencyMcdoc, fetchPreset, fetchRegistries, getSnippet, shareSnippet } from '../../services/index.js'
import { DEPENDENCY_URI } from '../../services/Spyglass.js'
@@ -17,6 +17,7 @@ import { Ad, Btn, BtnMenu, ErrorPanel, FileCreation, Footer, HasPreview, Octicon
import { getRootDefault } from './McdocHelpers.js'
export const SHARE_KEY = 'share'
+const MIN_PROJECT_PANEL_WIDTH = 200
interface Props {
gen: ConfigGenerator
@@ -322,6 +323,38 @@ export function SchemaGenerator({ gen, allowedVersions }: Props) {
setProjectShown(!projectShown)
}, [projectShown])
+ const [panelWidth, setPanelWidth] = useLocalStorage('misode_project_panel_width', MIN_PROJECT_PANEL_WIDTH, (s) => Number(s), (v) => v.toString())
+ const [realPanelWidth, setRealPanelWidth] = useState(panelWidth)
+ const [resizeStart, setResizeStart] = useState