import { ErrorState, LoadingState } from "../components/data-states"; import { useMobileViewport } from "../hooks/use-mobile-viewport"; import { useToolWorkshop } from "../hooks/use-tool-workshop"; import { ToolTypeListSidebar } from "../components/features/tool-workshop/ToolTypeListSidebar"; import { ToolTypeEditorPanel } from "../components/features/tool-workshop/ToolTypeEditorPanel"; import { ToolWorkshopMobileView } from "../components/features/tool-workshop/ToolWorkshopMobileView"; import type { MobileView } from "../components/features/tool-workshop/ToolWorkshopMobileView"; import { useState } from "react"; export const ToolWorkshopPage = () => { const isMobile = useMobileViewport(); const [mobileView, setMobileView] = useState("list"); const { status, toolTypes, baseDefinitions, selectedToolType, selectedToolTypeId, isCreating, toolTypeForm, manifestData, manifestDefinitionId, toolTypeError, toolTypeDirty, loadData, handleSelectToolType, handleCreateNew, handleToolTypeSubmit, handleDeleteToolType, handleFormChange, handleReset, setManifestData, setToolTypeDirty, } = useToolWorkshop(); if (status === "loading") { return (
); } if (status === "error") { return (
); } if (isMobile) { return ( { setManifestData(m); setToolTypeDirty(true); }} onSubmit={handleToolTypeSubmit} onCancel={() => { if (toolTypeDirty) { if (!window.confirm("You have unsaved changes. Discard them?")) { return; } } setMobileView("list"); }} /> ); } return (
{ setManifestData(m); setToolTypeDirty(true); }} onSubmit={handleToolTypeSubmit} onReset={handleReset} />
); };