import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useWalletStore, type Network } from '../store/wallet'; export default function SettingsPage() { const { network, rpcEndpoint, setNetwork, setRpcEndpoint, deleteWallet, } = useWalletStore(); const navigate = useNavigate(); const [customEndpoint, setCustomEndpoint] = useState(rpcEndpoint); const [showDeleteConfirm, setShowDeleteConfirm] = useState(false); const [deleteConfirmText, setDeleteConfirmText] = useState(''); const handleNetworkChange = (newNetwork: Network) => { setNetwork(newNetwork); // Update default endpoint based on network const defaultEndpoints: Record = { mainnet: 'https://rpc.synor.cc', testnet: 'https://testnet-rpc.synor.cc', devnet: 'http://localhost:16110', }; setRpcEndpoint(defaultEndpoints[newNetwork]); setCustomEndpoint(defaultEndpoints[newNetwork]); }; const handleSaveEndpoint = () => { setRpcEndpoint(customEndpoint); }; const handleDeleteWallet = () => { if (deleteConfirmText === 'DELETE') { deleteWallet(); navigate('/'); } }; return (

Settings

{/* Network Selection */}

Network

{(['mainnet', 'testnet', 'devnet'] as Network[]).map((net) => ( ))}
{network === 'mainnet' && (
Mainnet is not yet launched. Switch to testnet or devnet.
)}
{/* RPC Endpoint */}

RPC Endpoint

setCustomEndpoint(e.target.value)} className="input flex-1" placeholder="http://localhost:16110" />

Connect to a custom Synor node

{/* Security */}

Security

Auto-lock
Lock wallet after inactivity
{/* Danger Zone */}

Danger Zone

{!showDeleteConfirm ? ( ) : (
Warning: This will permanently delete your wallet from this device. Make sure you have your recovery phrase backed up.
setDeleteConfirmText(e.target.value)} className="input" placeholder="DELETE" />
)}
{/* Version */}
Synor Web Wallet v0.1.0
); }