/* eslint-disable */ import React, { useState } from 'react'; import { Link as RouterLink } from 'react-router-dom'; import PropTypes from 'prop-types'; import _ from 'lodash'; import { useAlert } from 'react-alert'; import clsx from 'clsx'; import moment from 'moment'; import { Drawer as AntDrawer } from 'antd'; import { useDispatch, useSelector } from 'react-redux'; import { updateMenu } from 'src/slices/menu'; import { useSnackbar } from 'notistack'; import CardForm from './MenuCardForm' import { Box, Button, Card, CardMedia, CardContent, CardActions, CardHeader, Divider, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Grid, Collapse, Link, SvgIcon, Typography, colors, makeStyles } from '@material-ui/core'; import IconButton from '@material-ui/core/IconButton'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import { PlusCircle as PlusIcon } from 'react-feather'; import { Edit as EditIcon, Trash2 as DeleteIcon } from 'react-feather'; import MenuModal from '../MenuModal'; const useStyles = makeStyles(theme => ({ root: {}, media: { height: 200, backgroundColor: theme.palette.background.dark }, drawerButton: { marginTop: theme.spacing(1) }, likedButton: { color: colors.red[600] }, subscribersIcon: { marginLeft: theme.spacing(2), marginRight: theme.spacing(1) }, actionIcon: { marginRight: theme.spacing(1) }, deleteButton: { backgroundColor: '#d9534f' }, deleteText: { color: '#d9534f' }, subMenu: { padding: theme.spacing(2) }, expand: { transform: 'rotate(0deg)', marginLeft: 'auto', transition: theme.transitions.create('transform', { duration: theme.transitions.duration.shortest }) }, expandOpen: { transform: 'rotate(180deg)' } })); function MenuCard({ menuItem, className, ...rest }) { const classes = useStyles(); const dispatch = useDispatch(); const { result } = useSelector(state => state.menu); const { enqueueSnackbar } = useSnackbar(); const [antDrawer, toggleAntDrawer] = useState(false); const [secondAntDrawer, toggleSecondAntDrawer] = useState(false); const [selectedSubMenu, setSubMenu] = useState({ name: '', items: [], index: '' }); const [expanded, setExpanded] = useState(false); const [isOpened, setOpened] = useState(false); const [dialogOpen, setDialog] = useState({ open: false, item: {}, index: null }); // Close Ant drawer const antOnClose = () => { toggleAntDrawer(false); }; // Close 2 level Ant drawer const secondAntOnClose = () => { toggleSecondAntDrawer(false); }; //Card Modal handle open const handleOpen = () => { setOpened(true); }; //Card Modal handle close const handleClose = () => { setOpened(false); }; const handleSecondDrawer = (bool, item, index) => { // Open second stage drawer toggleSecondAntDrawer(bool); setSubMenu({ name: item.name, items: item.items, index: index }); }; const handleCloseDialog = () => { setDialog({ ...dialogOpen, open: false }); }; const handleExpandClick = () => { setExpanded(!expanded); }; const handleDelete = (item, index) => { const menu = _.cloneDeep(menuItem); let update = menu.sections[selectedSubMenu.index].items.splice([index], 1); // console.log(menu.sections[selectedSubMenu.index].items[index], 'item to be updated/deleted') // console.log(update) // console.log(menu.sections[selectedSubMenu.index].items[index], 'item to be updated/deleted') dispatch(updateMenu(menu)); setDialog({ ...dialogOpen, open: false }); setTimeout(() => { enqueueSnackbar(`${item.name} slettet`, { variant: 'success', classes:{}, anchorOrigin: { vertical: 'bottom', horizontal: 'center' } }); }, 200); }; return ( <> {menuItem.image && ( )} {menuItem.name} {' '} | Updated {moment(menuItem.createdAt).fromNow()} {/* Description {menuItem.desc} */} {/* Type {menuItem.type} Price {menuItem.price} */} {/* Modal Card for menu items */}
{menuItem.sections.map((item, index) => ( handleSecondDrawer(true, item, index)} > {item.name} {`(${item.items.length})`} ))} Ny
{selectedSubMenu.items.map((item, index) => ( setDialog({ open: true, item: item, index: index }) } > Slett } title={item.name} subheader={item.description} /> {/* Send in details about item, index of item, submenu clicked and menu selected */} ))}
Slett {dialogOpen.item.name} Denne handlingen vil slette {dialogOpen.item.name}. Er du sikker at du vil gjøre dette? {/* Send item and index of item to be deleted. */} ); } MenuCard.propTypes = { className: PropTypes.string // menuItem: PropTypes.array.isRequired }; export default MenuCard;