Add SystemInfoModal component and integrate system info fetching in App

This commit is contained in:
2025-07-24 19:36:26 +02:00
parent 40e3a8bb7a
commit cf8d581275
4 changed files with 265 additions and 33 deletions

View File

@@ -1,48 +1,61 @@
import { useState } from 'react'
import Header from '@/components/Header'
import InstanceList from '@/components/InstanceList'
import InstanceModal from '@/components/InstanceModal'
import { CreateInstanceOptions, Instance } from '@/types/instance'
import { useInstances } from '@/contexts/InstancesContext'
import { useState } from "react";
import Header from "@/components/Header";
import InstanceList from "@/components/InstanceList";
import InstanceModal from "@/components/InstanceModal";
import { CreateInstanceOptions, Instance } from "@/types/instance";
import { useInstances } from "@/contexts/InstancesContext";
import SystemInfoModal from "./components/SystemInfoModal";
function App() {
const [isModalOpen, setIsModalOpen] = useState(false)
const [editingInstance, setEditingInstance] = useState<Instance | undefined>(undefined)
const { createInstance, updateInstance } = useInstances()
const [isInstanceModalOpen, setIsInstanceModalOpen] = useState(false);
const [isSystemInfoModalOpen, setIsSystemInfoModalOpen] = useState(false);
const [editingInstance, setEditingInstance] = useState<Instance | undefined>(
undefined
);
const { createInstance, updateInstance } = useInstances();
const handleCreateInstance = () => {
setEditingInstance(undefined)
setIsModalOpen(true)
}
setEditingInstance(undefined);
setIsInstanceModalOpen(true);
};
const handleEditInstance = (instance: Instance) => {
setEditingInstance(instance)
setIsModalOpen(true)
}
setEditingInstance(instance);
setIsInstanceModalOpen(true);
};
const handleSaveInstance = (name: string, options: CreateInstanceOptions) => {
if (editingInstance) {
updateInstance(editingInstance.name, options)
updateInstance(editingInstance.name, options);
} else {
createInstance(name, options)
createInstance(name, options);
}
}
};
const handleShowSystemInfo = () => {
setIsSystemInfoModalOpen(true);
};
return (
<div className="min-h-screen bg-gray-50">
<Header onCreateInstance={handleCreateInstance} />
<Header onCreateInstance={handleCreateInstance} onShowSystemInfo={handleShowSystemInfo} />
<main className="container mx-auto max-w-4xl px-4 py-8">
<InstanceList editInstance={handleEditInstance} />
</main>
<InstanceModal
open={isModalOpen}
onOpenChange={setIsModalOpen}
open={isInstanceModalOpen}
onOpenChange={setIsInstanceModalOpen}
onSave={handleSaveInstance}
instance={editingInstance}
/>
<SystemInfoModal
open={isSystemInfoModalOpen}
onOpenChange={setIsSystemInfoModalOpen}
/>
</div>
)
);
}
export default App
export default App;