import React, { useState, useRef, useEffect } from 'react' import './device.scss' import UpdateBtn from './update-btn/update-btn.jsx' import ConnectItem from './connect-item/connect-item.jsx' import { DeviceClass } from './device.js' import { alertView, hintView, comfirmView } from '../home.jsx' function Device({ show }) { const [deviceList, setDeviceList] = useState([]) const deviceClass = useRef(null) const [inputValue, setInputValue] = useState('192.168.') const [selectedDevice, setSelectedDevice] = useState(null) if (!show) { return null } useEffect(() => { if (!deviceClass.current) { deviceClass.current = new DeviceClass() deviceClass.current.init(setDeviceList, inputValue, setSelectedDevice, setInputValue) } }, []) useEffect(() => { if (deviceClass.current) deviceClass.current.inputValue = inputValue }, [inputValue]) useEffect(() => { if (deviceClass.current) deviceClass.current.currentDeviceList = deviceList }, [deviceList]) return ( <>
{/* 更新设备列表 */}
设备列表
deviceClass.current?.onRefresh(e, self)} title="Refresh device list" />
{/* 设备列表 */}
{deviceList.map((device, index) => ( setSelectedDevice(ip)} onRemove={(ip) => deviceClass.current?.onRemoveDevice(ip)} /> ))}
{/* 添加设备 */}
setInputValue(e.target.value)} onKeyDown={(e) => { if (e.key === 'Enter') { deviceClass.current?.onAddDevice() } }} />
deviceClass.current?.onAddDevice()}>
) } export default Device