diff --git a/package.json b/package.json index 8712ef186..e6a7ddf04 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "moment": "^2.29.1", "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", - "openstack-uicore-foundation": "5.0.32", + "openstack-uicore-foundation": "5.0.33-beta.3", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/src/actions/sponsor-purchases-actions.js b/src/actions/sponsor-purchases-actions.js index 6d21e082f..5b799abdd 100644 --- a/src/actions/sponsor-purchases-actions.js +++ b/src/actions/sponsor-purchases-actions.js @@ -395,7 +395,7 @@ export const updateClientInfo = }; export const cancelSponsorForm = - (orderId, lineId) => async (dispatch, getState) => { + (orderId, lineId, lineName) => async (dispatch, getState) => { const { currentSummitState, currentSponsorState } = getState(); const { currentSummit } = currentSummitState; const { entity: sponsor } = currentSponsorState; @@ -414,7 +414,17 @@ export const cancelSponsorForm = null, snackbarErrorHandler )(params)(dispatch) - .then(() => dispatch(getSponsorOrder(orderId))) + .then(() => { + dispatch(getSponsorOrder(orderId)); + dispatch( + snackbarSuccessHandler({ + html: T.translate( + "edit_sponsor.purchase_tab.order_details.line_cancelled", + { lineName } + ) + }) + ); + }) .catch(console.log) // need to catch promise reject .finally(() => { dispatch(stopLoading()); diff --git a/src/i18n/en.json b/src/i18n/en.json index aa449c7bc..1ea40d141 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -2654,10 +2654,10 @@ "general_info": "General Info", "payment_info": "Payment Info", "issue_refund": "Issue a Refund", - "info_note": "Active order items can be canceled. Canceled items show an undo action to restore them. Refund and payment rows are display-only.", "address_updated": "Address updated successfully", "client_updated": "Client info updated successfully", - "order_refunded": "Refund issued successfully." + "order_refunded": "Refund issued successfully.", + "line_cancelled": "{lineName} was cancelled. This item has been voided and removed from the balance. Use the undo action to restore it." } }, "mu_tab": { diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js index 1257df9c5..b7934a3a8 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-cart-tab/components/cart-view.js @@ -170,6 +170,7 @@ const CartView = ({ }, { columnKey: "amount", + align: "right", header: T.translate("edit_sponsor.cart_tab.amount") }, { @@ -244,12 +245,7 @@ const CartView = ({ } confirmButtonColor="error" > - + - + diff --git a/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/sponsor-order-details.js b/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/sponsor-order-details.js index dfbfed236..97dbc1e9f 100644 --- a/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/sponsor-order-details.js +++ b/src/pages/sponsors/sponsor-page/tabs/sponsor-purchases-tab/sponsor-order-details.js @@ -17,7 +17,6 @@ import T from "i18n-react/dist/i18n-react"; import { Box, Card, CardContent, Grid2, Typography } from "@mui/material"; import { ListCard } from "openstack-uicore-foundation/lib/components/mui/cards"; import SponsorOrderGrid from "openstack-uicore-foundation/lib/components/mui/sponsor-order-grid"; -import InfoNote from "openstack-uicore-foundation/lib/components/mui/info-note"; import { cancelSponsorForm, getSponsorOrder, @@ -122,7 +121,7 @@ const SponsorOrderDetails = ({ }; const handleCancelForm = (item) => { - cancelSponsorForm(currentOrder.id, item.id); + cancelSponsorForm(currentOrder.id, item.id, item.name); }; const handleUndoCancelForm = (item) => { @@ -170,20 +169,10 @@ const SponsorOrderDetails = ({ variant="outlined" > - diff --git a/src/pages/sponsors/sponsor-page/utils.js b/src/pages/sponsors/sponsor-page/utils.js index fabf207d4..da2f265ba 100644 --- a/src/pages/sponsors/sponsor-page/utils.js +++ b/src/pages/sponsors/sponsor-page/utils.js @@ -3,21 +3,14 @@ import { formatDiscount } from "openstack-uicore-foundation/lib/utils/money"; -export const normalizeOrder = (data) => { - const amountDueSign = data?.amount_due < 0 ? "-" : ""; - const amountDueStr = currencyAmountFromCents(Math.abs(data.amount_due || 0)); // currencyAmountFromCents doesn't allow negatives - const amountDue = `${amountDueSign}${amountDueStr}`; - - return { - ...data, - total: currencyAmountFromCents(data.net_amount || 0), - amount_due: data.amount_due === 0 ? "$0.00" : amountDue, - forms: data.forms.map((form) => ({ - ...form, - addon_name: form.add_on?.name || "", - discount: formatDiscount(form.discount_amount, form.discount_type), - discount_total: form.discount_in_cents || 0, - amount: currencyAmountFromCents(form.net_amount || 0) - })) - }; -}; +export const normalizeOrder = (data) => ({ + ...data, + total: data.net_amount || data.amount_due || 0, + forms: data.forms.map((form) => ({ + ...form, + addon_name: form.add_on?.name || "", + discount: formatDiscount(form.discount_amount, form.discount_type), + discount_total: form.discount_in_cents || 0, + amount: currencyAmountFromCents(form.net_amount || 0) + })) +}); diff --git a/yarn.lock b/yarn.lock index f50d24946..812dcb6a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9056,10 +9056,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.32: - version "5.0.32" - resolved "https://registry.npmjs.org/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.32.tgz#856623f5d7b3021f7fa08550a3c0a7f656bd3011" - integrity sha512-jQCs/F2+74bOGgj/0mT8W6h0DfT6kbgkbwau6ZFOi5lDBjrCkKTOJosnCyonj3R4TEvtx4A6x1nmwP6Z7Mc+dQ== +openstack-uicore-foundation@5.0.33-beta.3: + version "5.0.33-beta.3" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.33-beta.3.tgz#1a9136913632aa9da28e9620ca680b18e45bad0c" + integrity sha512-OJJAkfsZNH377IeKB/EHxp1c6gyQpTMiIt+UEhLhqj/qpfDMiQflozWLr0kYAhfwlHDdqn7nnZbmidugIwJJPg== dependencies: use-sync-external-store "^1.6.0"