Sindbad~EG File Manager
{"version":3,"file":"static/js/579.a7893775.chunk.js","mappings":"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","sources":["pages/Products/AssignVehicleCard.js","pages/Products/AssignVehicleList.js","pages/Products/AssignVehiclePage.js"],"sourcesContent":["import PropTypes from 'prop-types';\r\n// @mui\r\nimport { makeStyles } from '@material-ui/core';\r\nimport { Card, CardActions, CardContent, Button, Typography } from '@material-ui/core';\r\nimport { styled } from '@mui/material';\r\nimport { Grid, Box, Styled, Link, Stack, Image, Modal, Checkbox } from '@mui/material';\r\n// utils\r\nimport { fCurrency } from 'src/utils/formatNumber';\r\n// components\r\nimport Label from 'src/components/label';\r\nimport { ColorPreview } from 'src/components/color-utils';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport DeleteForeverIcon from '@mui/icons-material/DeleteForever';\r\nimport { IconButton } from '@mui/material';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport FiberManualRecordIcon from '@mui/icons-material/FiberManualRecord';\r\nimport { baseURL, imageURL } from 'src/constants/baseURL';\r\nimport trashIcon from '../../assets/trash.png';\r\nimport { useState } from 'react';\r\nimport { getInventoryVehicles } from 'src/features/inventory/inventoryActions';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { toast } from 'react-toastify';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst StyledProductImg = styled('img')({\r\n top: 0,\r\n width: '100%',\r\n height: '80%',\r\n objectFit: 'contain',\r\n position: 'absolute'\r\n});\r\n\r\nconst StyledTrashImg = styled('img')({\r\n top: '100%', // Adjust the vertical positioning as needed\r\n right: 0,\r\n transform: 'translate(0%, -100%)', // Adjust the translation to center vertically\r\n width: '100%',\r\n height: '50%',\r\n objectFit: 'contain',\r\n position: 'absolute'\r\n});\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n minWidth: 400,\r\n height: 150\r\n }\r\n});\r\n\r\nconst style = {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: 360,\r\n bgcolor: 'background.paper',\r\n border: '2px solid #1976D2', // Set border color to blue\r\n borderRadius: 2, // Set border radius\r\n boxShadow: 24,\r\n p: 4\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nAssignVehicleCard.propTypes = {\r\n product: PropTypes.object\r\n};\r\n\r\nexport default function AssignVehicleCard({ product }) {\r\n const navigate = useNavigate();\r\n const {\r\n make,\r\n mileage,\r\n model,\r\n year,\r\n sold_price,\r\n imageUrl,\r\n sale_status,\r\n auction_name,\r\n lane_name,\r\n vin,\r\n announcements,\r\n auction_fee,\r\n run_no,\r\n condition_light,\r\n vehicle_id\r\n } = product;\r\n console.log({ product });\r\n const classes = useStyles();\r\n\r\n const [open, setOpen] = useState(false);\r\n const handleClose = () => setOpen(false);\r\n const dispatch = useDispatch();\r\n const { userInfo } = useSelector((state) => state.auth);\r\n const [isChecked, setIsChecked] = useState(false);\r\n const [selectedVehicles, setSelectedVehicles] = useState([]);\r\n\r\n console.log('selectedVehicles', selectedVehicles);\r\n\r\n const handleCheckboxChange = (vehicleId) => {\r\n setSelectedVehicles((prevSelectedVehicles) => {\r\n // If the vehicle is checked, add its ID to the selectedVehicles array\r\n if (!prevSelectedVehicles.includes(vehicleId)) {\r\n return [...prevSelectedVehicles, vehicleId];\r\n } else {\r\n // If the vehicle is unchecked, remove its ID from the selectedVehicles array\r\n return prevSelectedVehicles.filter((id) => id !== vehicleId);\r\n }\r\n });\r\n };\r\n\r\n // const handleDeleteVehicle = async () => {\r\n // try {\r\n // const response = await api.delete(\r\n // `${baseURL}/vehicle/delete-inventory-vehicle/${product?.vehicle_id}`\r\n // );\r\n\r\n // console.log(\"Vehicle deleted\", response);\r\n\r\n // if (response.status === 200) {\r\n // toast.error(\"Vehicle deleted successfully\");\r\n // setOpen(false);\r\n // dispatch(\r\n // getInventoryVehicles({\r\n // timeRange: \"currentweek\",\r\n // orderDirection: \"ASC\",\r\n // sortBy: \"\",\r\n // userId: userInfo?.user_id,\r\n // })\r\n // );\r\n // // Add any additional logic or UI updates after successful deletion\r\n // } else {\r\n // console.log(\r\n // `Failed to delete vehicle. Status: ${response.status}`\r\n // );\r\n // // Handle failure scenario, show an error message, etc.\r\n // }\r\n // } catch (err) {\r\n // console.error(\"Error deleting vehicle\", err);\r\n // // Handle other errors, show an error message, etc.\r\n // }\r\n // };\r\n\r\n return (\r\n <Card className={classes.root}>\r\n <Grid container sx={{ cursor: 'pointer' }}>\r\n {/* Left side (image) */}\r\n <Grid item xs={4} sm={4}>\r\n <Box\r\n sx={{\r\n pt: '50%',\r\n position: 'relative',\r\n cursor: 'pointer'\r\n }}\r\n >\r\n <StyledProductImg alt={make} src={`${imageURL}/${imageUrl}`} />\r\n </Box>\r\n </Grid>\r\n\r\n {/* Right side (text content) */}\r\n <Grid item xs={6} sm={6}>\r\n <Stack spacing={4} p={3}>\r\n <Stack\r\n direction=\"row\"\r\n alignItems=\"center\"\r\n justifyContent=\"space-between\"\r\n // paddingTop={7}\r\n >\r\n <Link color=\"inherit\" underline=\"hover\">\r\n <Box\r\n sx={{\r\n fontWeight: 'bold',\r\n fontSize: '25px'\r\n }}\r\n >\r\n {`${year} ${make} ${model}`}\r\n </Box>\r\n </Link>\r\n </Stack>\r\n\r\n <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"space-between\">\r\n <Typography noWrap>{vin}</Typography>\r\n\r\n <Box sx={{ marginRight: '50px' }}>\r\n <Typography noWrap>{mileage ? `${mileage} mi.` : ''}</Typography>\r\n </Box>\r\n </Stack>\r\n </Stack>\r\n </Grid>\r\n\r\n <Grid item xs={2} sm={2}>\r\n <Box\r\n sx={{\r\n pt: '20px',\r\n pl: '30px',\r\n position: 'relative',\r\n cursor: 'pointer'\r\n }}\r\n >\r\n <Checkbox\r\n color=\"success\"\r\n size=\"large\"\r\n checked={selectedVehicles.includes(vehicle_id)}\r\n onChange={() => handleCheckboxChange(vehicle_id)}\r\n />\r\n </Box>\r\n </Grid>\r\n </Grid>\r\n </Card>\r\n );\r\n}\r\n","import PropTypes from 'prop-types';\r\nimport { useCallback, useEffect, useState } from 'react';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { toast } from 'react-toastify';\r\nimport AssignVehicleCard from './AssignVehicleCard';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport { Card, Typography } from '@material-ui/core';\r\nimport { styled } from '@mui/material';\r\nimport { Grid, Box, Styled, Link, Stack, Image, Modal, Checkbox } from '@mui/material';\r\nimport { imageURL } from 'src/constants/baseURL';\r\nimport { LoadingButton } from '@mui/lab';\r\nimport { baseURL } from 'src/constants/baseURL';\r\nimport {\r\n getAssignedVehiclestoAuctioneer,\r\n getUserAuctioneerList\r\n} from 'src/features/users/userActions';\r\nimport api from 'src/features/auth/Api';\r\n\r\nAssignVehicleList.propTypes = {\r\n products: PropTypes.array.isRequired\r\n};\r\n\r\nconst StyledProductImg = styled('img')({\r\n top: 0,\r\n width: '100%',\r\n height: '60%',\r\n objectFit: 'contain',\r\n position: 'absolute'\r\n});\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n minWidth: 400,\r\n height: 100\r\n }\r\n});\r\n\r\nconst style = {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: 360,\r\n bgcolor: 'background.paper',\r\n border: '2px solid #1976D2', // Set border color to blue\r\n borderRadius: 2, // Set border radius\r\n boxShadow: 24,\r\n p: 4\r\n};\r\n\r\nexport default function AssignVehicleList({\r\n allVehiclesWithStatus,\r\n weekId,\r\n auctioneerId,\r\n opportunityId,\r\n name,\r\n totalUnits,\r\n startDate,\r\n endDate,\r\n ...other\r\n}) {\r\n const classes = useStyles();\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(false);\r\n const [selectedVehicles, setSelectedVehicles] = useState([]);\r\n const { vehiclesData: assignedVehicles } = useSelector((state) => state.users);\r\n const { userInfo } = useSelector((state) => state.auth);\r\n const { state } = useLocation();\r\n\r\n const isVehicleDisabled = (vehicleId) => {\r\n return assignedVehicles.some((vehicle) => vehicle.vehicle_id === vehicleId);\r\n // && allVehiclesWithStatus.some((vehicle) => vehicle.vehicle_id === vehicleId)\r\n };\r\n\r\n useEffect(() => {\r\n let assignedVehiclesArray = [];\r\n assignedVehicles?.map((i) => assignedVehiclesArray.push(i.vehicle_id));\r\n console.log('🚀 ~ useEffect ~ assignedVehiclesArray:', assignedVehiclesArray);\r\n setSelectedVehicles(assignedVehiclesArray);\r\n }, [assignedVehicles]);\r\n\r\n const handleClick = (vehicle_id, status, auctioneer_name, selected_date) => {\r\n console.log('🚀 ~ handleClick ~ status:', status);\r\n if (status === true) {\r\n toast.warning(`This Vehicle has already assigned to ${state.name}, \r\n on ${selected_date}. Please remove it first!`);\r\n }\r\n return;\r\n };\r\n\r\n const handleCheckboxChange = (vehicleId) => {\r\n setSelectedVehicles((prevSelectedVehicles) => {\r\n // If the vehicle is checked and not disabled, add its ID to the selectedVehicles array\r\n if (!prevSelectedVehicles.includes(vehicleId) && !isVehicleDisabled(vehicleId)) {\r\n return [...prevSelectedVehicles, vehicleId];\r\n } else {\r\n // If the vehicle is unchecked or disabled, remove its ID from the selectedVehicles array\r\n return prevSelectedVehicles.filter((id) => id !== vehicleId);\r\n }\r\n });\r\n };\r\n\r\n const handleSubmit = async () => {\r\n let filteredSelectedVehicles = selectedVehicles.filter(\r\n (vehicleId) => !assignedVehicles.some((item) => item?.vehicle_id === vehicleId)\r\n );\r\n console.log('🚀 ~ handleSubmit ~ filteredSelectedVehicles:', filteredSelectedVehicles);\r\n\r\n if (!filteredSelectedVehicles?.length > 0) {\r\n return toast.error('Please select a vehicle');\r\n }\r\n setLoading(true);\r\n\r\n try {\r\n const response = await api.post(`${baseURL}/vehicle/assign-vehicle-to-auctioneer`, {\r\n car_ids: filteredSelectedVehicles,\r\n auctioneerId,\r\n userId: userInfo?.user_id,\r\n weekId\r\n });\r\n if (response?.status === 200) {\r\n toast.success('Vehicle assigned successfully');\r\n setLoading(false);\r\n // dispatch(\r\n // getAssignedVehiclestoAuctioneer({\r\n // user_id: userInfo?.user_id,\r\n // opportunity_id: state?.opportunity,\r\n // weekId,\r\n // })\r\n // );\r\n dispatch(\r\n getUserAuctioneerList({\r\n userId: userInfo?.user_id,\r\n weekId\r\n })\r\n );\r\n navigate('/dashboard/opportunities/users/cars', {\r\n state: {\r\n name,\r\n totalUnits,\r\n startDate: startDate,\r\n endDate: endDate,\r\n weekId: weekId,\r\n filterValue: 'auctioneer',\r\n filterId: opportunityId,\r\n opportunity_id: opportunityId,\r\n auctioneerId\r\n }\r\n });\r\n }\r\n } catch (err) {\r\n setLoading(false);\r\n console.log('[Error]', err);\r\n }\r\n };\r\n\r\n return (\r\n <Grid container spacing={3} {...other}>\r\n {allVehiclesWithStatus?.map((p, index) => (\r\n <Grid key={index} item xs={12} sm={12} md={12}>\r\n <Card className={classes.root}>\r\n <Grid container sx={{ cursor: 'pointer' }}>\r\n {/* Left side (image) */}\r\n <Grid item xs={4} sm={4}>\r\n <Box\r\n sx={{\r\n pt: '50%',\r\n position: 'relative',\r\n cursor: 'pointer'\r\n }}>\r\n <StyledProductImg alt={p.make} src={`${imageURL}/${p.imageUrl}`} />\r\n </Box>\r\n </Grid>\r\n\r\n {/* Right side (text content) */}\r\n <Grid item xs={6} sm={6}>\r\n <Stack spacing={4} p={2}>\r\n <Stack\r\n direction=\"row\"\r\n alignItems=\"center\"\r\n justifyContent=\"space-between\"\r\n // paddingTop={7}\r\n >\r\n <Link color=\"inherit\" underline=\"hover\">\r\n <Box\r\n style={{\r\n display: '-webkit-box',\r\n WebkitLineClamp: '1',\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n fontWeight: 'bold',\r\n fontSize: '20px'\r\n }}>\r\n {`${p.year} ${p.make} ${p.model} ${p.trim}`}\r\n </Box>\r\n </Link>\r\n </Stack>\r\n\r\n <Stack\r\n direction=\"row\"\r\n alignItems=\"center\"\r\n justifyContent=\"space-between\"\r\n style={{ marginTop: '10px' }}>\r\n <Typography variant=\"subtitle2\" noWrap>\r\n {p.vin}\r\n </Typography>\r\n\r\n <Box sx={{ marginRight: '50px' }}>\r\n <Typography variant=\"subtitle2\" noWrap>\r\n {p.mileage ? `${p.mileage} mi.` : ''}\r\n </Typography>\r\n </Box>\r\n </Stack>\r\n </Stack>\r\n </Grid>\r\n\r\n <Grid item xs={2} sm={2}>\r\n <Box\r\n sx={{\r\n pt: '20px',\r\n pl: '30px',\r\n position: 'relative',\r\n cursor: 'pointer'\r\n }}>\r\n <span\r\n onClick={() =>\r\n handleClick(p?.vehicle_id, p?.status, p?.auctioneer_name, p?.selected_date)\r\n }>\r\n <Checkbox\r\n color=\"success\"\r\n size=\"large\"\r\n checked={selectedVehicles.includes(p.vehicle_id) || p.status}\r\n onChange={() => handleCheckboxChange(p.vehicle_id)}\r\n disabled={isVehicleDisabled(p.vehicle_id) || p.status}\r\n />\r\n </span>\r\n </Box>\r\n </Grid>\r\n </Grid>\r\n </Card>\r\n </Grid>\r\n ))}\r\n <Grid container direction=\"row\" justifyContent=\"center\" alignItems=\"center\" m={4}>\r\n <LoadingButton\r\n loading={loading}\r\n size=\"large\"\r\n type=\"submit\"\r\n variant=\"contained\"\r\n onClick={handleSubmit}>\r\n Update\r\n </LoadingButton>\r\n </Grid>\r\n </Grid>\r\n );\r\n}\r\n","import { useState, useEffect } from 'react';\r\nimport { Button, Container, Stack, Typography, MenuItem, Menu } from '@mui/material';\r\nimport { ProductSort, ProductFilterSidebar } from '../../sections/@dashboard/products';\r\nimport { useNavigate, useLocation } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport AssignVehicleList from './AssignVehicleList';\r\nimport { getInventoryVehicles } from 'src/features/inventory/inventoryActions';\r\nimport Iconify from 'src/components/iconify';\r\nimport { newAssignVehicleWithStatus } from 'src/features/users/userActions';\r\n\r\nconst SORT_BY_OPTIONS = [\r\n { value: 'year', label: 'Year: Newest First', condition: 'DESC' },\r\n { value: 'year', label: 'Year: Oldest First', condition: 'ASC' },\r\n {\r\n value: 'mileage',\r\n label: 'Mileage: Highest First',\r\n condition: 'DESC'\r\n },\r\n {\r\n value: 'mileage',\r\n label: 'Mileage: Lowest First',\r\n condition: 'ASC'\r\n }\r\n];\r\n\r\nexport default function ProductsPage() {\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n const { state } = useLocation();\r\n const [openFilter, setOpenFilter] = useState(false);\r\n const [vehicles, setVehicles] = useState([]);\r\n const [assign, setAssign] = useState(false);\r\n const [open, setOpen] = useState(null);\r\n const [sortBy, setSortBy] = useState('');\r\n\r\n const { vehiclesData } = useSelector((state) => state.users);\r\n const { assignVehicleWithStatus } = useSelector((state) => state.users);\r\n const { userInfo } = useSelector((state) => state.auth);\r\n\r\n useEffect(() => {\r\n dispatch(\r\n newAssignVehicleWithStatus({\r\n user_id: userInfo?.user_id,\r\n sortBy: 'year',\r\n orderDirection: 'DESC'\r\n })\r\n );\r\n }, []);\r\n\r\n const handleOpen = (event) => {\r\n setOpen(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(null);\r\n };\r\n\r\n const applySorting = (key, condition, label) => {\r\n dispatch(\r\n newAssignVehicleWithStatus({\r\n user_id: userInfo?.user_id,\r\n orderDirection: condition,\r\n sortBy: key\r\n })\r\n );\r\n setSortBy(label);\r\n setOpen(null);\r\n };\r\n\r\n return (\r\n <>\r\n <Container>\r\n <Stack\r\n direction=\"row\"\r\n alignItems=\"center\"\r\n justifyContent=\"space-between\"\r\n fontWeight=\"bold\"\r\n // borderBottom=\"2px solid gray\"\r\n mb={0}\r\n >\r\n <Typography variant=\"h6\" pb={1}>\r\n {state?.startDate} - {state?.endDate}{' '}\r\n </Typography>\r\n <Typography variant=\"h6\" pb={1}>\r\n {state?.name}\r\n </Typography>\r\n <Typography variant=\"h6\" pb={1}>\r\n {vehiclesData?.length} units\r\n </Typography>\r\n </Stack>\r\n\r\n <Stack\r\n direction=\"row\"\r\n flexWrap=\"wrap-reverse\"\r\n alignItems=\"center\"\r\n justifyContent=\"space-between\"\r\n // sx={{ mb: 2 }}\r\n >\r\n <Stack>\r\n <Button\r\n color=\"inherit\"\r\n disableRipple\r\n onClick={handleOpen}\r\n py={0}\r\n endIcon={<Iconify icon={open ? 'eva:chevron-up-fill' : 'eva:chevron-down-fill'} />}\r\n >\r\n Sort By: \r\n <Typography\r\n component=\"span\"\r\n variant=\"subtitle2\"\r\n sx={{\r\n color: 'text.secondary',\r\n borderBottom: '1px solid black'\r\n }}\r\n >\r\n {sortBy}\r\n </Typography>\r\n </Button>\r\n <Menu\r\n keepMounted\r\n anchorEl={open}\r\n open={Boolean(open)}\r\n onClose={handleClose}\r\n anchorOrigin={{\r\n vertical: 'bottom',\r\n horizontal: 'right'\r\n }}\r\n transformOrigin={{\r\n vertical: 'top',\r\n horizontal: 'right'\r\n }}\r\n >\r\n {SORT_BY_OPTIONS.map((option) => (\r\n <MenuItem\r\n key={option.value + '_' + option.condition}\r\n selected={option.value}\r\n onClick={() => applySorting(option.value, option.condition, option.label)}\r\n sx={{ typography: 'body2' }}\r\n >\r\n {option.label}\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </Stack>\r\n </Stack>\r\n\r\n <AssignVehicleList\r\n allVehiclesWithStatus={assignVehicleWithStatus}\r\n weekId={state?.weekId}\r\n auctioneerId={state?.auctioneerId}\r\n opportunityId={state?.opportunity}\r\n name={state?.name}\r\n totalUnits={state?.totalUnits}\r\n startDate={state?.startDate}\r\n endDate={state?.endDate}\r\n />\r\n </Container>\r\n </>\r\n );\r\n}\r\n"],"names":["styled","top","width","height","objectFit","position","right","transform","makeStyles","root","minWidth","StyledProductImg","useStyles","AssignVehicleList","_ref","allVehiclesWithStatus","weekId","auctioneerId","opportunityId","name","totalUnits","startDate","endDate","other","classes","navigate","useNavigate","dispatch","useDispatch","loading","setLoading","useState","selectedVehicles","setSelectedVehicles","vehiclesData","assignedVehicles","useSelector","state","users","userInfo","auth","useLocation","isVehicleDisabled","vehicleId","some","vehicle","vehicle_id","useEffect","assignedVehiclesArray","map","i","push","console","log","_jsxs","Grid","container","spacing","children","p","index","_jsx","item","xs","sm","md","Card","className","sx","cursor","Box","pt","alt","make","src","concat","imageURL","imageUrl","Stack","direction","alignItems","justifyContent","Link","color","underline","style","display","WebkitLineClamp","WebkitBoxOrient","overflow","fontWeight","fontSize","year","model","trim","marginTop","Typography","variant","noWrap","vin","marginRight","mileage","pl","onClick","handleClick","status","auctioneer_name","selected_date","toast","warning","Checkbox","size","checked","includes","onChange","handleCheckboxChange","prevSelectedVehicles","filter","id","disabled","m","LoadingButton","type","async","filteredSelectedVehicles","length","error","response","api","post","baseURL","car_ids","userId","user_id","success","getUserAuctioneerList","filterValue","filterId","opportunity_id","err","SORT_BY_OPTIONS","value","label","condition","ProductsPage","openFilter","setOpenFilter","vehicles","setVehicles","assign","setAssign","open","setOpen","sortBy","setSortBy","assignVehicleWithStatus","newAssignVehicleWithStatus","orderDirection","_Fragment","Container","mb","pb","flexWrap","Button","disableRipple","event","currentTarget","py","endIcon","Iconify","icon","component","borderBottom","Menu","keepMounted","anchorEl","Boolean","onClose","handleClose","anchorOrigin","vertical","horizontal","transformOrigin","option","MenuItem","selected","applySorting","key","typography","opportunity"],"sourceRoot":""}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists