From b318cfd66ee2fa9918797fc0e0226a01983da746 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 20 Sep 2020 23:13:11 -0700 Subject: Implement users editing --- modern/src/DevicesList.js | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 modern/src/DevicesList.js (limited to 'modern/src/DevicesList.js') diff --git a/modern/src/DevicesList.js b/modern/src/DevicesList.js new file mode 100644 index 0000000..28ead78 --- /dev/null +++ b/modern/src/DevicesList.js @@ -0,0 +1,69 @@ +import React, { Fragment } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { makeStyles } from '@material-ui/core/styles'; +import Avatar from '@material-ui/core/Avatar'; +import Divider from '@material-ui/core/Divider'; +import IconButton from '@material-ui/core/IconButton'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemAvatar from '@material-ui/core/ListItemAvatar'; +import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; +import ListItemText from '@material-ui/core/ListItemText'; +import LocationOnIcon from '@material-ui/icons/LocationOn'; +import MoreVertIcon from '@material-ui/icons/MoreVert'; + +import { devicesActions } from './store'; +import EditCollectionView from './EditCollectionView'; +import { useEffectAsync } from './reactHelper'; + +const useStyles = makeStyles(() => ({ + list: { + maxHeight: '100%', + overflow: 'auto', + }, +})); + +const DeviceView = ({ updateTimestamp, onMenuClick }) => { + const classes = useStyles(); + const dispatch = useDispatch(); + + const items = useSelector(state => Object.values(state.devices.items)); + + useEffectAsync(async () => { + const response = await fetch('/api/devices'); + if (response.ok) { + dispatch(devicesActions.refresh(await response.json())); + } + }, [updateTimestamp]); + + return ( + + {items.map((item, index, list) => ( + + dispatch(devicesActions.select(item))}> + + + + + + + + onMenuClick(event.currentTarget, item.id)}> + + + + + {index < list.length - 1 ? : null} + + ))} + + ); +} + +const DevicesList = () => { + return ( + + ); +} + +export default DevicesList; -- cgit v1.2.3