| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import './devices.css';
- import { DevicesLogic } from './devices.js';
- // Devices 组件:显示设备列表和连接/断开功能
- function Devices() {
- const {
- devices,
- handleConnect,
- handleDisconnect,
- isConnected,
- togglePreview,
- getRefreshButtonClassName,
- getRefreshIconClassName,
- getRefreshButtonText,
- getRefreshButtonOnClick,
- getPreviewButtonClassName,
- getPreviewButtonText,
- } = DevicesLogic();
- return (
- <div className="Devices-container">
- <div className="devices-header">
- <div className="devices-title">可连接设备</div>
- <div
- className={getRefreshButtonClassName()}
- onClick={getRefreshButtonOnClick()}
- >
- <div className={getRefreshIconClassName()}>↻</div>
- {getRefreshButtonText()}
- </div>
- </div>
-
- <div className="devices-scroll-area">
- {devices.map((ipPort, index) => (
- <div key={index} className="device-item">
- <div className="device-info">
- <div className="device-id">{ipPort}</div>
- </div>
- <div className="device-actions">
- {!isConnected(ipPort) && (
- <div
- className="connect-btn"
- onClick={() => handleConnect(ipPort)}
- >
- 连接
- </div>
- )}
- {isConnected(ipPort) && (
- <div className="action-row">
- <div
- className={getPreviewButtonClassName(ipPort)}
- onClick={() => togglePreview(ipPort)}
- >
- {getPreviewButtonText(ipPort)}
- </div>
- <div
- className="disconnect-btn"
- onClick={() => handleDisconnect(ipPort)}
- >
- 断开
- </div>
- </div>
- )}
- </div>
- </div>
- ))}
- </div>
- </div>
- );
- }
- export default Devices;
|