import { AppBar, Autocomplete, CircularProgress, Dialog, IconButton, TextField, Toolbar } from '@mui/material' import { Fragment, useState } from 'react' import { IRegion } from '../interfaces/fuel' import { useHardwares, useServers } from '../hooks/swrHooks' import FullFeaturedCrudGrid from './TableEditable' import ServerService from '../services/ServersService' import { GridColDef } from '@mui/x-data-grid' import { Close } from '@mui/icons-material' import ServerData from './ServerData' export default function ServerHardware() { const [open, setOpen] = useState(false) const [selectedOption, setSelectedOption] = useState(null) const { servers, isLoading } = useServers() const [serverDataOpen, setServerDataOpen] = useState(false) const [currentServerData, setCurrentServerData] = useState(null) const handleInputChange = (value: string) => { return value } const handleOptionChange = (value: IRegion | null) => { setSelectedOption(value) } const { hardwares, isLoading: serversLoading } = useHardwares(selectedOption?.id, 0, 10) const hardwareColumns: GridColDef[] = [ { field: 'id', headerName: 'ID', type: 'number' }, { field: 'name', headerName: 'Название', type: 'string' }, { field: 'server_id', headerName: 'Server ID', type: 'number' }, { field: 'servername', headerName: 'Название сервера', type: 'string' }, { field: 'os_info', headerName: 'ОС', type: 'string' }, { field: 'ram', headerName: 'ОЗУ', type: 'string' }, { field: 'processor', headerName: 'Проц.', type: 'string' }, { field: 'storages_count', headerName: 'Кол-во хранилищ', type: 'number' }, ] return ( <> { setServerDataOpen(false) }} aria-labelledby="modal-modal-title" aria-describedby="modal-modal-description"> { setServerDataOpen(false) }} aria-label="close" > {currentServerData && } {serversLoading ? : { setOpen(true) }} onClose={() => { setOpen(false) }} onInputChange={(_, value) => handleInputChange(value)} onChange={(_, value) => handleOptionChange(value)} filterOptions={(x) => x} isOptionEqualToValue={(option: IRegion, value: IRegion) => option.name === value.name} getOptionLabel={(option: IRegion) => option.name ? option.name : ""} options={servers || []} loading={isLoading} value={selectedOption} renderInput={(params) => ( {isLoading ? : null} {params.InputProps.endAdornment} ) }} /> )} />} onSave={() => { }} onDelete={ServerService.removeServer} initialRows={hardwares || []} columns={hardwareColumns} actions onRowClick={(params) => { setCurrentServerData(params.row) setServerDataOpen(true) }} loading={false} /> } ) }