import React, { useEffect, useState } from 'react'; import { motion } from 'framer-motion'; import { Grid, Group, Text, Image, Anchor, Box, AspectRatio, createStyles } from '@mantine/core'; import { serviceItem } from './AppShelf.d'; import AppShelfMenu from './AppShelfMenu'; import AddItemShelfItem from './AddAppShelfItem'; const useStyles = createStyles((theme) => ({ main: { backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[1], textAlign: 'center', padding: theme.spacing.xl, borderRadius: theme.radius.md, '&:hover': { backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2], }, }, })); const AppShelf = () => { const [services, setServices] = useState([]); const { classes } = useStyles(); const [hovering, setHovering] = useState('none'); useEffect(() => { const localServices: serviceItem[] = JSON.parse(localStorage.getItem('services') || '[]'); if (localServices) { setServices(localServices); } }, []); function addItem(item: serviceItem) { setServices([...services, item]); localStorage.setItem('services', JSON.stringify([...services, item])); } function removeItem(name: string) { setServices(services.filter((s) => s.name !== name)); localStorage.setItem('services', JSON.stringify(services.filter((s) => s.name !== name))); } return ( {services.map((service, i) => ( { setHovering(service.name); }} onHoverEnd={(e) => { setHovering('none'); }} > {service.name} {service.name} ))} ); }; export default AppShelf;