import { useState } from "react"; import { invoke } from "@tauri-apps/api/core"; import { open } from "@tauri-apps/plugin-dialog"; import { Chat } from "./components/Chat"; import "./App.css"; function App() { const [projectPath, setProjectPath] = useState(null); const [errorMsg, setErrorMsg] = useState(null); async function selectProject() { try { setErrorMsg(null); // Open native folder picker const selected = await open({ directory: true, multiple: false, }); if (selected === null) { // User cancelled selection return; } // Invoke backend command to verify and set state // Note: invoke argument names must match Rust function args const confirmedPath = await invoke("open_project", { path: selected, }); setProjectPath(confirmedPath); } catch (e) { console.error(e); setErrorMsg( typeof e === "string" ? e : "An error occurred opening the project.", ); } } return (

AI Code Assistant

{!projectPath ? (

Please select a project folder to start the Story-Driven Spec Workflow.

) : (
Active Project: {projectPath}

)} {errorMsg && (

Error: {errorMsg}

)}
); } export default App;