From a6773bd092db654360c599ca6b0108ea0e456e8c Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Wed, 25 Feb 2026 00:16:53 +0800 Subject: feat: prepare for nightly alpha --- packages/ui-new/src/pages/instances-view.tsx | 87 +++++----------------------- 1 file changed, 16 insertions(+), 71 deletions(-) (limited to 'packages/ui-new/src/pages/instances-view.tsx') diff --git a/packages/ui-new/src/pages/instances-view.tsx b/packages/ui-new/src/pages/instances-view.tsx index 0c511a1..ad6bd38 100644 --- a/packages/ui-new/src/pages/instances-view.tsx +++ b/packages/ui-new/src/pages/instances-view.tsx @@ -1,5 +1,6 @@ import { Copy, Edit2, Plus, Trash2 } from "lucide-react"; import { useEffect, useState } from "react"; +import InstanceCreationModal from "@/components/instance-creation-modal"; import InstanceEditorModal from "@/components/instance-editor-modal"; import { Button } from "@/components/ui/button"; import { @@ -12,7 +13,7 @@ import { } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { toNumber } from "@/lib/tsrs-utils"; -import { useInstancesStore } from "@/stores/instances-store"; +import { useInstancesStore } from "@/models/instances"; import type { Instance } from "../types/bindings/instance"; export function InstancesView() { @@ -31,19 +32,14 @@ export function InstancesView() { const [editingInstance, setEditingInstance] = useState(null); // Form fields - const [newInstanceName, setNewInstanceName] = useState(""); const [duplicateName, setDuplicateName] = useState(""); - // Load instances on mount (matches Svelte onMount behavior) useEffect(() => { - instancesStore.loadInstances(); - // instancesStore methods are stable (Zustand); do not add to deps to avoid spurious runs - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [instancesStore.loadInstances]); + instancesStore.refresh(); + }, [instancesStore.refresh]); // Handlers to open modals const openCreate = () => { - setNewInstanceName(""); setShowCreateModal(true); }; @@ -63,25 +59,9 @@ export function InstancesView() { setShowDuplicateModal(true); }; - // Confirm actions - const confirmCreate = async () => { - const name = newInstanceName.trim(); - if (!name) return; - await instancesStore.createInstance(name); - setShowCreateModal(false); - setNewInstanceName(""); - }; - - const confirmEdit = async () => { - if (!editingInstance) return; - await instancesStore.updateInstance(editingInstance); - setEditingInstance(null); - setShowEditModal(false); - }; - const confirmDelete = async () => { if (!selectedInstance) return; - await instancesStore.deleteInstance(selectedInstance.id); + await instancesStore.delete(selectedInstance.id); setSelectedInstance(null); setShowDeleteConfirm(false); }; @@ -90,16 +70,12 @@ export function InstancesView() { if (!selectedInstance) return; const name = duplicateName.trim(); if (!name) return; - await instancesStore.duplicateInstance(selectedInstance.id, name); + await instancesStore.duplicate(selectedInstance.id, name); setSelectedInstance(null); setDuplicateName(""); setShowDuplicateModal(false); }; - const setActiveInstance = async (id: string) => { - await instancesStore.setActiveInstance(id); - }; - const formatDate = (timestamp: number): string => new Date(timestamp * 1000).toLocaleDateString(); @@ -124,7 +100,7 @@ export function InstancesView() { - - - - +