From 1b2e0b403179591de11e8c444ae643be63ad358a Mon Sep 17 00:00:00 2001 From: Kasper Fabricius Kristensen <45367945+kasperkristensen@users.noreply.github.com> Date: Mon, 25 Mar 2024 12:07:47 +0100 Subject: [PATCH] feat(dashboard): Price List configurations section (#6663) **What** - Adds section for displaying price list configurations. Closes CORE-1857 --- .../public/locales/en-US/translation.json | 2 + .../discount-detail/discount-detail.tsx | 8 +- .../orders/order-detail/order-detail.tsx | 8 +- .../pricing-configuration-section/index.ts | 1 + .../pricing-configuration-section.tsx | 90 +++++++++++++++++++ .../pricing-general-section.tsx | 41 +-------- .../pricing/pricing-detail/pricing-detail.tsx | 17 +++- .../product-detail/product-detail.tsx | 4 +- 8 files changed, 117 insertions(+), 54 deletions(-) create mode 100644 packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-configuration-section/index.ts create mode 100644 packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-configuration-section/pricing-configuration-section.tsx diff --git a/packages/admin-next/dashboard/public/locales/en-US/translation.json b/packages/admin-next/dashboard/public/locales/en-US/translation.json index 87de04868a..eeaaa461a1 100644 --- a/packages/admin-next/dashboard/public/locales/en-US/translation.json +++ b/packages/admin-next/dashboard/public/locales/en-US/translation.json @@ -848,6 +848,8 @@ "label": "Label", "rate": "Rate", "requiresShipping": "Requires shipping", + "startDate": "Start date", + "endDate": "End date", "draft": "Draft" }, "dateTime": { diff --git a/packages/admin-next/dashboard/src/routes/discounts/discount-detail/discount-detail.tsx b/packages/admin-next/dashboard/src/routes/discounts/discount-detail/discount-detail.tsx index ececf11ff4..23bcafaa40 100644 --- a/packages/admin-next/dashboard/src/routes/discounts/discount-detail/discount-detail.tsx +++ b/packages/admin-next/dashboard/src/routes/discounts/discount-detail/discount-detail.tsx @@ -40,12 +40,12 @@ export const DiscountDetail = () => { ) })} -
-
+
+
-
+
@@ -58,7 +58,7 @@ export const DiscountDetail = () => { })}
-
+
diff --git a/packages/admin-next/dashboard/src/routes/orders/order-detail/order-detail.tsx b/packages/admin-next/dashboard/src/routes/orders/order-detail/order-detail.tsx index 09971d840e..26f01b5442 100644 --- a/packages/admin-next/dashboard/src/routes/orders/order-detail/order-detail.tsx +++ b/packages/admin-next/dashboard/src/routes/orders/order-detail/order-detail.tsx @@ -33,18 +33,18 @@ export const OrderDetail = () => { } return ( -
-
+
+
-
+
-
+
diff --git a/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-configuration-section/index.ts b/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-configuration-section/index.ts new file mode 100644 index 0000000000..50f98b9657 --- /dev/null +++ b/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-configuration-section/index.ts @@ -0,0 +1 @@ +export * from "./pricing-configuration-section" diff --git a/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-configuration-section/pricing-configuration-section.tsx b/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-configuration-section/pricing-configuration-section.tsx new file mode 100644 index 0000000000..3d2a2042d2 --- /dev/null +++ b/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-configuration-section/pricing-configuration-section.tsx @@ -0,0 +1,90 @@ +import { PencilSquare } from "@medusajs/icons" +import { PriceList } from "@medusajs/medusa" +import { Container, Heading, Text, Tooltip } from "@medusajs/ui" +import { format } from "date-fns" +import { useTranslation } from "react-i18next" +import { ActionMenu } from "../../../../../components/common/action-menu" + +type PricingConfigurationSectionProps = { + priceList: PriceList +} + +export const PricingConfigurationSection = ({ + priceList, +}: PricingConfigurationSectionProps) => { + const { t } = useTranslation() + + const firstCustomerGroups = priceList.customer_groups?.slice(0, 3) + const remainingCustomerGroups = priceList.customer_groups?.slice(3) + + return ( + +
+ {t("fields.configurations")} + , + }, + ], + }, + ]} + /> +
+
+ + {t("fields.startDate")} + + + {priceList.starts_at + ? format(new Date(priceList.starts_at), "dd MMM yyyy") + : "-"} + +
+
+ + {t("fields.endDate")} + + + {priceList.ends_at + ? format(new Date(priceList.ends_at), "dd MMM yyyy") + : "-"} + +
+
+ + {t("pricing.settings.customerGroupsLabel")} + + + + {firstCustomerGroups.length > 0 + ? firstCustomerGroups.join(", ") + : "-"} + + {remainingCustomerGroups.length > 0 && ( + + {remainingCustomerGroups.map((cg) => ( +
  • {cg.name}
  • + ))} + + } + > + + {" "} + {t("general.plusCountMore", { + count: remainingCustomerGroups.length, + })} + +
    + )} +
    +
    +
    + ) +} diff --git a/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-general-section/pricing-general-section.tsx b/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-general-section/pricing-general-section.tsx index 898cb13d0c..08a4f96e37 100644 --- a/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-general-section/pricing-general-section.tsx +++ b/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/components/pricing-general-section/pricing-general-section.tsx @@ -1,13 +1,6 @@ import { PencilSquare, Trash } from "@medusajs/icons" import { PriceList } from "@medusajs/medusa" -import { - Container, - Heading, - StatusBadge, - Text, - Tooltip, - usePrompt, -} from "@medusajs/ui" +import { Container, Heading, StatusBadge, Text, usePrompt } from "@medusajs/ui" import { useAdminDeletePriceList } from "medusa-react" import { useTranslation } from "react-i18next" import { useNavigate } from "react-router-dom" @@ -28,8 +21,6 @@ export const PricingGeneralSection = ({ const { mutateAsync } = useAdminDeletePriceList(priceList.id) const overrideCount = priceList.prices?.length || 0 - const firstCustomerGroups = priceList.customer_groups?.slice(0, 3) - const remainingCustomerGroups = priceList.customer_groups?.slice(3) const { color, text } = getPriceListStatus(t, priceList) @@ -105,36 +96,6 @@ export const PricingGeneralSection = ({ {priceList.description}
    -
    - - {t("pricing.settings.customerGroupsLabel")} - - - - {firstCustomerGroups.length > 0 - ? firstCustomerGroups.join(", ") - : "-"} - - {remainingCustomerGroups.length > 0 && ( - - {remainingCustomerGroups.map((cg) => ( -
  • {cg.name}
  • - ))} - - } - > - - {" "} - {t("general.plusCountMore", { - count: remainingCustomerGroups.length, - })} - -
    - )} -
    -
    {t("pricing.settings.priceOverridesLabel")} diff --git a/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/pricing-detail.tsx b/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/pricing-detail.tsx index 91d06a9dd5..4e3deecd06 100644 --- a/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/pricing-detail.tsx +++ b/packages/admin-next/dashboard/src/routes/pricing/pricing-detail/pricing-detail.tsx @@ -1,6 +1,7 @@ import { useAdminPriceList } from "medusa-react" import { Outlet, useParams } from "react-router-dom" import { JsonViewSection } from "../../../components/common/json-view-section" +import { PricingConfigurationSection } from "./components/pricing-configuration-section" import { PricingGeneralSection } from "./components/pricing-general-section" import { PricingProductSection } from "./components/pricing-product-section" @@ -18,10 +19,18 @@ export const PricingDetail = () => { } return ( -
    - - - +
    +
    + + +
    + +
    + +
    +
    + +
    ) diff --git a/packages/admin-next/dashboard/src/routes/products/product-detail/product-detail.tsx b/packages/admin-next/dashboard/src/routes/products/product-detail/product-detail.tsx index 903819b97d..817fb51a07 100644 --- a/packages/admin-next/dashboard/src/routes/products/product-detail/product-detail.tsx +++ b/packages/admin-next/dashboard/src/routes/products/product-detail/product-detail.tsx @@ -47,7 +47,7 @@ export const ProductDetail = () => {
    ) })} -
    +
    @@ -81,7 +81,7 @@ export const ProductDetail = () => { })}
    -
    +
    {sideBefore.widgets.map((w, i) => { return (