import React, { useMemo } from "react"; import { Cancel, CheckCircle, LocalShipping, NewReleases, VolunteerActivism, } from "@mui/icons-material"; import Chip, { ChipProps } from "@mui/material/Chip"; import useTheme from "@mui/material/styles/useTheme"; import { OrderStateType } from "../../types/order"; type OrderStateChipProps = { element: T; } & ChipProps; const OrderStateChip = (props: OrderStateChipProps) => { const theme = useTheme(); const { element: { state }, ...rest } = props; const color = useMemo(() => { const colorMap: Record = { PENDING: "default", CANCELLED: "error", CONFIRMED: "info", SENT: "info", IN_TRANSIT: "info", READY_FOR_PICKUP: "primary", DELIVERED: "success", }; return colorMap[state]; }, [state, theme]); const label = useMemo(() => { const labelMap: Record = { PENDING: "NEW", CANCELLED: "CANCELLED", CONFIRMED: "CONFIRMED", SENT: "SENT", IN_TRANSIT: "IN TRANSIT", READY_FOR_PICKUP: "READY FOR PICKUP", DELIVERED: "DELIVERED", }; return labelMap[state]; }, [state, theme]); const icon = useMemo(() => { const iconMap: Record = { PENDING: , CANCELLED: , CONFIRMED: , SENT: , IN_TRANSIT: , READY_FOR_PICKUP: , DELIVERED: , }; return iconMap[state]; }, [state, theme]); return ( ); }; export default OrderStateChip;