UNPKG

bananas-commerce-admin

Version:

What's this, an admin for apes?

23 lines 1.85 kB
import React, { useCallback, useState } from "react"; import { FormHelperText, Stack } from "@mui/material"; import FormControl from "@mui/material/FormControl"; import Grid from "@mui/material/Grid2"; import InputLabel from "@mui/material/InputLabel"; import MenuItem from "@mui/material/MenuItem"; import Select from "@mui/material/Select"; import { useCardContext } from "../../contexts/CardContext"; import LabeledValue from "../LabeledValue"; export const CardFieldSelect = ({ emptyValue, fallback = "—", fallbackPredicate = (value) => value != null && value !== "", formName, helperText, isDisabled = false, isEditable = true, isReadable = true, label, options, required = false, size = "grow", value: defaultValue = undefined, ...props }) => { const { isCompact, isEditing } = useCardContext(); const [value, setValue] = useState(defaultValue?.label ?? emptyValue?.label ?? ""); const handleChange = useCallback((event) => { setValue(event.target.value); }, [setValue]); return (React.createElement(Grid, { size: size }, isEditing && isEditable ? (React.createElement(Stack, { direction: "column" }, React.createElement(FormControl, { fullWidth: true }, React.createElement(InputLabel, null, label), React.createElement(Select, { disabled: isDisabled, label: label, name: formName, required: required, value: value, onChange: handleChange, ...props }, options?.map((opt) => (React.createElement(MenuItem, { key: opt.id, value: opt.label }, opt.label))))), helperText != null && React.createElement(FormHelperText, { sx: { mb: 1 } }, helperText))) : (isReadable && (React.createElement(LabeledValue, { compact: isCompact, label: label, value: fallbackPredicate(value) ? value : fallback }))))); }; export default CardFieldSelect; //# sourceMappingURL=CardFieldSelect.js.map