import { Region } from "@medusajs/medusa"
import { useAdminDeleteRegion } from "medusa-react"
import React from "react"
import { useNavigate } from "react-router-dom"
import Tooltip from "../../../../../components/atoms/tooltip"
import EditIcon from "../../../../../components/fundamentals/icons/edit-icon"
import TrashIcon from "../../../../../components/fundamentals/icons/trash-icon"
import Section from "../../../../../components/organisms/section"
import useImperativeDialog from "../../../../../hooks/use-imperative-dialog"
import useNotification from "../../../../../hooks/use-notification"
import useToggleState from "../../../../../hooks/use-toggle-state"
import { currencies } from "../../../../../utils/currencies"
import { getErrorMessage } from "../../../../../utils/error-messages"
import fulfillmentProvidersMapper from "../../../../../utils/fulfillment-providers.mapper"
import paymentProvidersMapper from "../../../../../utils/payment-providers-mapper"
import EditRegionModal from "./edit-region.modal"
type Props = {
region: Region
}
const GeneralSection = ({ region }: Props) => {
const { state, toggle, close } = useToggleState()
const { mutate } = useAdminDeleteRegion(region.id)
const navigate = useNavigate()
const notification = useNotification()
const dialog = useImperativeDialog()
const handleDelete = async () => {
const shouldDelete = await dialog({
heading: "Delete Region",
text: "Are you sure you want to delete this region?",
extraConfirmation: true,
entityName: region.name,
})
if (shouldDelete) {
mutate(undefined, {
onSuccess: () => {
navigate("/a/settings/regions", {
replace: true,
})
notification("Success", "Region has been deleted", "success")
navigate(`/a/settings/regions`, { replace: true })
},
onError: (error) => {
notification("Error", getErrorMessage(error), "error")
},
})
}
}
return (
<>
,
},
{
label: "Delete Region",
onClick: handleDelete,
icon:
{region.countries .slice(0, 4) .map((c) => c.display_name) .join(", ")}
{region.countries.length > 4 && (No countries configured
)}{region.payment_providers .slice(0, 4) .map((p) => paymentProvidersMapper(p.id).label) .join(", ")}
{region.payment_providers.length > 4 && (No payment providers configured
)}{region.fulfillment_providers .slice(0, 4) .map((p) => fulfillmentProvidersMapper(p.id).label) .join(", ")}
{region.fulfillment_providers.length > 4 && (No fulfillment providers configured
)}{title}
{children}