import { useEffect, useState } from 'react' import type { Nip95Config } from '@/lib/configStorageTypes' import { Nip95ConfigView } from './view' import { loadApis } from './controller' import { createNip95ConfigViewProps } from './viewModel' export interface Nip95ConfigManagerProps { onConfigChange?: () => void } export function Nip95ConfigManager(props: Nip95ConfigManagerProps): React.ReactElement { const [apis, setApis] = useState([]) const [loading, setLoading] = useState(true) const [error, setError] = useState(null) const [editingId, setEditingId] = useState(null) const [newUrl, setNewUrl] = useState('') const [showAddForm, setShowAddForm] = useState(false) const [draggedId, setDraggedId] = useState(null) const [dragOverId, setDragOverId] = useState(null) useEffect(() => { void loadApis({ setApis, setLoading, setError }) }, []) const viewProps = createNip95ConfigViewProps({ apis, loading, error, editingId, newUrl, showAddForm, draggedId, dragOverId, setApis, setError, setEditingId, setNewUrl, setShowAddForm, setDraggedId, setDragOverId, onConfigChange: props.onConfigChange, }) return }