front/src/routes/integration/all/zigbee2mqtt/device-page/DeviceTab.jsx
import { Text, Localizer } from 'preact-i18n';
import cx from 'classnames';
import EmptyState from './EmptyState';
import Zigbee2mqttBox from './Zigbee2mqttBox';
import { RequestStatus } from '../../../../../utils/consts';
import style from './style.css';
import CheckStatus from '../commons/CheckStatus';
import CardFilter from '../../../../../components/layout/CardFilter';
const DeviceTab = ({ children, ...props }) => (
<div class="card">
<div class="card-header">
<h1 class="card-title">
<Text id="integration.zigbee2mqtt.device.title" />
</h1>
<div class="page-options d-flex">
<Localizer>
<CardFilter
changeOrderDir={props.changeOrderDir}
orderValue={props.getZigbee2mqttOrderDir}
search={props.debouncedSearch}
searchValue={props.zigbee2mqttSearch}
searchPlaceHolder={<Text id="device.searchPlaceHolder" />}
/>
</Localizer>
</div>
</div>
<div class="card-body">
<CheckStatus />
<div
class={cx('dimmer', {
active: props.getZigbee2mqttStatus === RequestStatus.Getting
})}
>
<div class="loader" />
<div class={cx('dimmer-content', style.zigbee2mqttListBody)}>
<div class="row">
{props.zigbee2mqttDevices &&
props.zigbee2mqttDevices.map((device, index) => (
<Zigbee2mqttBox {...props} device={device} deviceIndex={index} />
))}
{props.zigbee2mqttDevices && props.zigbee2mqttDevices.length === 0 && <EmptyState />}
</div>
</div>
</div>
</div>
</div>
);
export default DeviceTab;