import { useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { Modal } from '../components/reusable'; import { StoresView } from '../components/rv'; import { StoreDetail } from '../components/dv'; import { Store } from 'lucide-react'; import { DynamicForm } from '../components/forms/DynamicForm'; import { STORE } from '../api/config'; import { storeClient } from '../api/clients'; export function StoresPage() { const params = useParams(); const instanceId = params.instanceId ? Number(params.instanceId) : undefined; const navigate = useNavigate(); const [isCreating, setIsCreating] = useState(false); const [createTitle, setCreateTitle] = useState("Create Store"); const [editingInstanceId, setEditingInstanceId] = useState(null); const [editTitle, setEditTitle] = useState("Edit Store"); const [refreshKey, setRefreshKey] = useState(0); if (instanceId != null && !isCreating) { return (
navigate(`/stores`)} />
{/* Edit store modal can still open over the detail view if needed */} setEditingInstanceId(null)} title={editTitle} width="md" > {editingInstanceId != null && ( { setEditingInstanceId(null); setRefreshKey(k => k + 1); }} onCancel={() => setEditingInstanceId(null)} onActivityChange={(name) => setEditTitle(name)} /> )}
); } return ( <> { const id = row.instance_id as number | string | undefined; if (id != null) navigate(`/stores/${id}`); }} onEditRow={(row) => { setEditingInstanceId(row.instance_id as string | number); setEditTitle("Edit Store"); }} /> {/* Global Floating Action Button for Create Store */} setIsCreating(false)} title={createTitle} width="md" > { setIsCreating(false); setRefreshKey(k => k + 1); }} onCancel={() => setIsCreating(false)} onActivityChange={(name) => setCreateTitle(name)} /> setEditingInstanceId(null)} title={editTitle} width="md" > {editingInstanceId != null && ( { setEditingInstanceId(null); setRefreshKey(k => k + 1); }} onCancel={() => setEditingInstanceId(null)} onActivityChange={(name) => setEditTitle(name)} /> )} ); }