UNPKG

bananas-commerce-admin

Version:

What's this, an admin for apes?

47 lines 1.99 kB
import React, { useMemo } from "react"; import { Cancel, CheckCircle, LocalShipping, NewReleases, VolunteerActivism, } from "@mui/icons-material"; import Chip from "@mui/material/Chip"; import useTheme from "@mui/material/styles/useTheme"; const OrderStateChip = (props) => { const theme = useTheme(); const { element: { state }, ...rest } = props; const color = useMemo(() => { const colorMap = { 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 = { 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 = { PENDING: React.createElement(NewReleases, { fontSize: "small" }), CANCELLED: React.createElement(Cancel, { fontSize: "small" }), CONFIRMED: React.createElement(CheckCircle, { fontSize: "small" }), SENT: React.createElement(LocalShipping, { fontSize: "small" }), IN_TRANSIT: React.createElement(LocalShipping, { fontSize: "small" }), READY_FOR_PICKUP: React.createElement(VolunteerActivism, { fontSize: "small" }), DELIVERED: React.createElement(CheckCircle, { fontSize: "small" }), }; return iconMap[state]; }, [state, theme]); return (React.createElement(Chip, { ...rest, color: color, icon: icon, label: label, sx: { ...rest.sx, paddingLeft: 0.75 } })); }; export default OrderStateChip; //# sourceMappingURL=OrderStateChip.js.map