import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Grid, Typography } from '@material-ui/core'; import { makeStyles } from '@material-ui/core/styles'; import { Pagination } from '@material-ui/lab'; import { CustomFilterInputType, FiltersHeader, ICustomFilterDefinition } from '@energyweb/origin-ui-core'; import { useOriginConfiguration } from '../../utils/configuration'; import { ImportDeviceItem } from '../../components/devices/import'; import { ImportDeviceModal } from '../../components/Modal'; import { useDispatch, useSelector } from 'react-redux'; import { fetchDevicesToImport, fetchMyDevices, getDeviceClient, getDevicesToImport, getMyDevices } from '../../features'; const PAGE_SIZE = 20; export function ImportDevice(): JSX.Element { const configuration = useOriginConfiguration(); const dispatch = useDispatch(); const myDevices = useSelector(getMyDevices); const devicesToImport = useSelector(getDevicesToImport); const iRecClient = useSelector(getDeviceClient)?.iRecClient; const originClient = useSelector(getDeviceClient)?.originClient; useEffect(() => { if (iRecClient && !devicesToImport) { dispatch(fetchDevicesToImport()); } }, [iRecClient, devicesToImport]); useEffect(() => { if (originClient && !myDevices) { dispatch(fetchMyDevices()); } }, [originClient, myDevices]); const useStyles = makeStyles({ box: { background: configuration?.styleConfig?.MAIN_BACKGROUND_COLOR, borderRadius: '2px', padding: '21px 24px', display: 'flex', flexDirection: 'column', boxShadow: '0 2px 4px rgba(0,0,0,.2)' }, header: { marginBottom: '29px', textTransform: 'uppercase' }, pagination: { display: 'flex', justifyContent: 'flex-end' } }); const classes = useStyles(); const [page, setPage] = useState(1); const [pageImported, setImportedPage] = useState(1); const [modalOpen, setModalOpen] = useState(false); const [activeDevice, setActiveDevice] = useState(null); const { t } = useTranslation(); const filters: ICustomFilterDefinition[] = [ { label: 'test', property: () => 1, input: { type: CustomFilterInputType.string } } ]; return ( <> console.log(a)} />
{t('device.info.importDevice')} {(devicesToImport ?? []) .slice((page - 1) * PAGE_SIZE, page * PAGE_SIZE) .map((a) => { return ( { setActiveDevice(a); setModalOpen(true); }} /> ); })}
setPage(index)} />
console.log(a)} />
{t('device.info.importedDevices')} {(myDevices ?? []) .slice((pageImported - 1) * PAGE_SIZE, pageImported * PAGE_SIZE) .map((a) => { return ( { setActiveDevice(a); setModalOpen(true); }} /> ); })}
setImportedPage(index)} />
); }