import { Head, useForm, usePage } from '@inertiajs/react'; import { Server } from '@/types/server'; import Container from '@/components/container'; import HeaderContainer from '@/components/header-container'; import Heading from '@/components/heading'; import { Button } from '@/components/ui/button'; import ServerLayout from '@/layouts/server/layout'; import { BookOpenIcon, LoaderCircleIcon } from 'lucide-react'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Separator } from '@/components/ui/separator'; import ServerStatus from '@/pages/servers/components/status'; import DateTime from '@/components/date-time'; import CopyableBadge from '@/components/copyable-badge'; import { Input } from '@/components/ui/input'; import React, { useState } from 'react'; import DeleteServer from '@/pages/servers/components/delete-server'; export default function Databases() { const page = usePage<{ server: Server; }>(); const [editMode, setEditMode] = useState(); const form = useForm<{ name: string; ip: string; port: string; local_ip?: string; }>({ name: page.props.server.name, ip: page.props.server.ip, port: page.props.server.port.toString(), local_ip: page.props.server.local_ip, }); const submit = () => { form.patch(route('server-settings.update', { server: page.props.server.id }), { onSuccess: () => { setEditMode(undefined); }, }); }; const handleEnterKey = (e: React.KeyboardEvent) => { if (e.key === 'Enter') { e.preventDefault(); submit(); } }; return (
Server details Update server details
{form.isDirty && ( )} {(editMode || form.isDirty) && ( )}
ID {page.props.server.id}
Name {editMode === 'name' ? ( form.setData('name', e.target.value)} onKeyDown={handleEnterKey} autoFocus /> ) : ( setEditMode('name')}> {form.data.name} )}
Status
IP {editMode === 'ip' ? ( form.setData('ip', e.target.value)} onKeyDown={handleEnterKey} autoFocus /> ) : ( setEditMode('ip')}> {form.data.ip} )}
SSH Port {editMode === 'port' ? ( form.setData('port', e.target.value)} onKeyDown={handleEnterKey} autoFocus /> ) : ( setEditMode('port')}> {form.data.port} )}
Local IP {editMode === 'local_ip' ? ( form.setData('local_ip', e.target.value)} onKeyDown={handleEnterKey} autoFocus /> ) : ( setEditMode('local_ip')}> {form.data.local_ip ? form.data.local_ip : 'Click to set'} )}
Created at
Last update check {page.props.server.last_update_check ? : '-'}
Available updates {page.props.server.available_updates ?? '-'}
Provider {page.props.server.provider}
Public key
Delete server Here you can delete the server.

please note that this action is irreversible and will delete all data associated with the server.

); }