diff --git a/.changeset/rotten-spoons-brake.md b/.changeset/rotten-spoons-brake.md new file mode 100644 index 0000000000..8ace1708e5 --- /dev/null +++ b/.changeset/rotten-spoons-brake.md @@ -0,0 +1,5 @@ +--- +"@medusajs/dashboard": patch +--- + +fix(dashboard): Add Shipping Profile metadata route diff --git a/packages/admin/dashboard/src/hooks/api/shipping-profiles.tsx b/packages/admin/dashboard/src/hooks/api/shipping-profiles.tsx index c7834e37e2..571577ed7a 100644 --- a/packages/admin/dashboard/src/hooks/api/shipping-profiles.tsx +++ b/packages/admin/dashboard/src/hooks/api/shipping-profiles.tsx @@ -80,6 +80,32 @@ export const useShippingProfiles = ( return { ...data, ...rest } } +export const useUpdateShippingProfile = ( + id: string, + options?: UseMutationOptions< + HttpTypes.AdminShippingProfileResponse, + FetchError, + HttpTypes.AdminUpdateShippingProfile + > +) => { + const { data, ...rest } = useMutation({ + mutationFn: (payload) => sdk.admin.shippingProfile.update(id, payload), + onSuccess: (data, variables, context) => { + queryClient.invalidateQueries({ + queryKey: shippingProfileQueryKeys.detail(id), + }) + queryClient.invalidateQueries({ + queryKey: shippingProfileQueryKeys.lists(), + }) + + options?.onSuccess?.(data, variables, context) + }, + ...options, + }) + + return { ...data, ...rest } +} + export const useDeleteShippingProfile = ( id: string, options?: UseMutationOptions< 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 e9fc3ca912..16f1573b0e 100644 --- a/packages/admin/dashboard/src/providers/router-provider/route-map.tsx +++ b/packages/admin/dashboard/src/providers/router-provider/route-map.tsx @@ -1095,6 +1095,15 @@ export const RouteMap: RouteObject[] = [ }, } }, + children: [ + { + path: "metadata/edit", + lazy: () => + import( + "../../routes/shipping-profiles/shipping-profile-metadata" + ), + }, + ], }, ], }, diff --git a/packages/admin/dashboard/src/routes/shipping-profiles/shipping-profile-metadata/index.ts b/packages/admin/dashboard/src/routes/shipping-profiles/shipping-profile-metadata/index.ts new file mode 100644 index 0000000000..37d8504383 --- /dev/null +++ b/packages/admin/dashboard/src/routes/shipping-profiles/shipping-profile-metadata/index.ts @@ -0,0 +1 @@ +export { ShippingProfileMetadata as Component } from "./shipping-profile-metadata" diff --git a/packages/admin/dashboard/src/routes/shipping-profiles/shipping-profile-metadata/shipping-profile-metadata.tsx b/packages/admin/dashboard/src/routes/shipping-profiles/shipping-profile-metadata/shipping-profile-metadata.tsx new file mode 100644 index 0000000000..35a4bd5289 --- /dev/null +++ b/packages/admin/dashboard/src/routes/shipping-profiles/shipping-profile-metadata/shipping-profile-metadata.tsx @@ -0,0 +1,31 @@ +import { useParams } from "react-router-dom" +import { MetadataForm } from "../../../components/forms/metadata-form/metadata-form" +import { + useShippingProfile, + useUpdateShippingProfile, +} from "../../../hooks/api" + +export const ShippingProfileMetadata = () => { + const { shipping_profile_id } = useParams() + + const { shipping_profile, isPending, isError, error } = useShippingProfile( + shipping_profile_id! + ) + + const { mutateAsync, isPending: isMutating } = useUpdateShippingProfile( + shipping_profile?.id! + ) + + if (isError) { + throw error + } + + return ( + + ) +}