From 07f25de1536e9041d14c4395223c62d5df5b409a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frane=20Poli=C4=87?= <16856471+fPolic@users.noreply.github.com> Date: Thu, 19 Sep 2024 18:33:55 +0200 Subject: [PATCH] fix(dashboard): open edit variant modal in current context (#9203) --- .../src/providers/router-provider/route-map.tsx | 7 +++++++ .../product-edit-variant-form.tsx | 7 ++----- .../product-variant-edit/product-variant-edit.tsx | 14 +++++++++++--- .../use-variant-table-columns.tsx | 2 +- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/packages/admin/dashboard/src/providers/router-provider/route-map.tsx b/packages/admin/dashboard/src/providers/router-provider/route-map.tsx index 54d9a3c7c5..c4a85d2fbb 100644 --- a/packages/admin/dashboard/src/providers/router-provider/route-map.tsx +++ b/packages/admin/dashboard/src/providers/router-provider/route-map.tsx @@ -91,6 +91,13 @@ export const RouteMap: RouteObject[] = [ lazy: () => import("../../routes/products/product-edit"), }, + { + path: "edit-variant", + lazy: () => + import( + "../../routes/product-variants/product-variant-edit" + ), + }, { path: "sales-channels", lazy: () => diff --git a/packages/admin/dashboard/src/routes/product-variants/product-variant-edit/components/product-edit-variant-form/product-edit-variant-form.tsx b/packages/admin/dashboard/src/routes/product-variants/product-variant-edit/components/product-edit-variant-form/product-edit-variant-form.tsx index 987f7e64bf..4619904fd8 100644 --- a/packages/admin/dashboard/src/routes/product-variants/product-variant-edit/components/product-edit-variant-form/product-edit-variant-form.tsx +++ b/packages/admin/dashboard/src/routes/product-variants/product-variant-edit/components/product-edit-variant-form/product-edit-variant-form.tsx @@ -9,10 +9,7 @@ import { Divider } from "../../../../../components/common/divider" import { Form } from "../../../../../components/common/form" import { Combobox } from "../../../../../components/inputs/combobox" import { CountrySelect } from "../../../../../components/inputs/country-select" -import { - RouteDrawer, - useRouteModal, -} from "../../../../../components/modals" +import { RouteDrawer, useRouteModal } from "../../../../../components/modals" import { useUpdateProductVariant } from "../../../../../hooks/api/products" import { transformNullableFormData, @@ -115,7 +112,7 @@ export const ProductEditVariantForm = ({ }, { onSuccess: () => { - handleSuccess() + handleSuccess("../") }, } ) diff --git a/packages/admin/dashboard/src/routes/product-variants/product-variant-edit/product-variant-edit.tsx b/packages/admin/dashboard/src/routes/product-variants/product-variant-edit/product-variant-edit.tsx index 18e231a571..bc3fb67724 100644 --- a/packages/admin/dashboard/src/routes/product-variants/product-variant-edit/product-variant-edit.tsx +++ b/packages/admin/dashboard/src/routes/product-variants/product-variant-edit/product-variant-edit.tsx @@ -1,7 +1,12 @@ import { HttpTypes } from "@medusajs/types" import { Heading } from "@medusajs/ui" import { useTranslation } from "react-i18next" -import { json, useLoaderData, useParams } from "react-router-dom" +import { + json, + useLoaderData, + useParams, + useSearchParams, +} from "react-router-dom" import { RouteDrawer } from "../../../components/modals" import { useProduct } from "../../../hooks/api/products" import { ProductEditVariantForm } from "./components/product-edit-variant-form" @@ -14,6 +19,8 @@ export const ProductVariantEdit = () => { const { t } = useTranslation() const { id, variant_id } = useParams() + const [URLSearchParms] = useSearchParams() + const searchVariantId = URLSearchParms.get("variant_id") const { product, isPending, isFetching, isError, error } = useProduct( id!, @@ -24,13 +31,14 @@ export const ProductVariantEdit = () => { ) const variant = product?.variants.find( - (v: HttpTypes.AdminProductVariant) => v.id === variant_id + (v: HttpTypes.AdminProductVariant) => + v.id === (variant_id || searchVariantId) ) if (!isPending && !isFetching && !variant) { throw json({ status: 404, - message: `Variant with ID ${variant_id} was not found.`, + message: `Variant with ID ${variant_id || searchVariantId} was not found.`, }) } diff --git a/packages/admin/dashboard/src/routes/products/product-detail/components/product-variant-section/use-variant-table-columns.tsx b/packages/admin/dashboard/src/routes/products/product-detail/components/product-variant-section/use-variant-table-columns.tsx index a07fb7c429..1ed8278a4f 100644 --- a/packages/admin/dashboard/src/routes/products/product-detail/components/product-variant-section/use-variant-table-columns.tsx +++ b/packages/admin/dashboard/src/routes/products/product-detail/components/product-variant-section/use-variant-table-columns.tsx @@ -67,7 +67,7 @@ const VariantActions = ({ actions: [ { label: t("actions.edit"), - to: `variants/${variant.id}/edit`, + to: `edit-variant?variant_id=${variant.id}`, icon: , }, {