import { Box, Button, Grid2 as Grid, Typography } from "@mui/material"; import { Bin } from "models"; import React, { useContext, useState } from "react"; import { ArrowForward, ArrowBack, Replay } from "@mui/icons-material"; import { useMobile } from "hooks"; import BinCardV2 from "./BinCardV2"; import { makeStyles } from "@mui/styles"; import { useNavigate } from "react-router-dom"; import { ScrollMenu, VisibilityContext } from "react-horizontal-scrolling-menu"; import 'react-horizontal-scrolling-menu/dist/styles.css'; interface Props { bins: Bin[]; duplicateBin: (bin: Bin) => void; title?: string; gridView?: boolean; loadMore?: () => void; //startingTranslate: number; valDisplay?: "high" | "low" | "average"; } const useStyles = makeStyles((_theme) => { return ({ gridListTile: { position: "relative", minHeight: "233px", height: "auto !important", width: "184px", padding: 2 }, hidden: { visibility: "hidden" } }) }); export default function BinsList(props: Props) { const { bins, duplicateBin, title, gridView, loadMore, valDisplay } = props; const classes = useStyles(); // const history = useHistory(); const navigate = useNavigate() const isMobile = useMobile(); const [duplicate, setDuplicate] = useState(false); //const scrollRef = useRef(null); const goToBin = (i: number) => { let path = "/bins/" + bins[i].key(); navigate(path, { state: {bin: bins[i]} }); }; const leftArrow = () => { const visibility = useContext(VisibilityContext); //const isFirstVisible = visibility.useIsVisible('first', false) return ( ) } const rightArrow = () => { const visibility = useContext(VisibilityContext); const isLastVisible = visibility.useIsVisible('last', false) return ( ) } const scroll = () => { //const visibility = useContext(VisibilityContext); return ( {bins.map((b, i) => ( { !duplicate && goToBin(i) }}> ))} ) } const grid = () => { return ( {bins.map((b, i) => isMobile ? ( goToBin(i)}> ) : ( goToBin(i)}> ) )} ); }; return ( {title && {title}} {gridView ? grid() : scroll()} {/* {grid()} */} {/* {scroll()} */} ); }