UNPKG

bananas-commerce-admin

Version:

What's this, an admin for apes?

59 lines 3.3 kB
import React from "react"; import { useParams } from "react-router-dom"; import Card from "../../../components/Card"; import CardActions from "../../../components/Card/CardActions"; import CardCancelButton from "../../../components/Card/CardCancelButton"; import CardContent from "../../../components/Card/CardContent"; import CardFieldNumber from "../../../components/Card/CardFieldNumber"; import CardHeader from "../../../components/Card/CardHeader"; import CardRow from "../../../components/Card/CardRow"; import CardSaveButton from "../../../components/Card/CardSaveButton"; import { useApi } from "../../../contexts/ApiContext"; import { useI18n } from "../../../contexts/I18nContext"; import { useUser } from "../../../contexts/UserContext"; import { hasPermission } from "../../../util/has_permission"; export const MeasurementsCard = ({ measurements, setMeasurements, }) => { const params = useParams(); const api = useApi(); const { t } = useI18n(); const { user } = useUser(); const handleSubmit = async (values) => { const action = api.operations["catalog.article:update"]; if (!action) { throw new Error('Invalid action "catalog.article:update".'); } const { length, width, height, weight } = values; const response = await action.call({ params, body: { measurements: { dimensions: length && width && height ? { length, width, height } : null, weight: weight || null, }, }, }); if (response.ok) { const updatedArticle = await response.json(); setMeasurements(updatedArticle.measurements); return t("Measurements updated successfully."); } else { console.error("[MEASUREMENTS_CARDS]", response); throw new Error("updating article measurement fields."); } }; return (React.createElement(React.Fragment, null, React.createElement(Card, { columns: 3, isEditable: hasPermission(user, "catalog.change_article"), onSubmit: handleSubmit }, React.createElement(CardHeader, { title: t("Measurements") }), React.createElement(CardContent, null, React.createElement(CardRow, null, React.createElement(CardFieldNumber, { adornment: "mm", formName: "width", label: t("Width"), max: 32767, min: 0, value: measurements?.dimensions?.width }), React.createElement(CardFieldNumber, { adornment: "mm", formName: "height", label: t("Height"), max: 32767, min: 0, value: measurements?.dimensions?.height })), React.createElement(CardRow, null, React.createElement(CardFieldNumber, { adornment: "mm", formName: "length", label: t("Length"), max: 32767, min: 0, value: measurements?.dimensions?.length }), React.createElement(CardFieldNumber, { adornment: "g", formName: "weight", label: t("Weight"), max: 32767, min: 0, value: measurements?.weight }))), React.createElement(CardActions, null, React.createElement(CardCancelButton, null), React.createElement(CardSaveButton, null))))); }; //# sourceMappingURL=MeasurementsCard.js.map