import OptionsProvider, { useOptionsContext } from "./options-provider"
import { Product, ProductVariant, VariantInventory } from "@medusajs/medusa"
import { useTranslation } from "react-i18next"
import { ActionType } from "../../molecules/actionables"
import AddVariantModal from "./add-variant-modal"
import EditIcon from "../../fundamentals/icons/edit-icon"
import EditVariantInventoryModal from "./edit-variant-inventory-modal"
import EditVariantModal from "./edit-variant-modal"
import EditVariantsModal from "./edit-variants-modal"
import GearIcon from "../../fundamentals/icons/gear-icon"
import OptionsModal from "./options-modal"
import PlusIcon from "../../fundamentals/icons/plus-icon"
import Section from "../../organisms/section"
import VariantsTable from "./table"
import useEditProductActions from "../../../hooks/use-edit-product-actions"
import { useFeatureFlag } from "../../../providers/feature-flag-provider"
import { adminInventoryItemsKeys, useMedusa } from "medusa-react"
import { useQueryClient } from "@tanstack/react-query"
import { useState } from "react"
import useToggleState from "../../../hooks/use-toggle-state"
import DollarSignIcon from "../../fundamentals/icons/dollar-sign-icon"
import Index from "./edit-prices-modal"
type Props = {
product: Product
}
const ProductVariantsSection = ({ product }: Props) => {
const queryClient = useQueryClient()
const { client } = useMedusa()
const { t } = useTranslation()
const { isFeatureEnabled } = useFeatureFlag()
const [variantToEdit, setVariantToEdit] = useState<
| {
base: ProductVariant
isDuplicate: boolean
}
| undefined
>(undefined)
const [variantInventoryToEdit, setVariantInventoryToEdit] = useState<
{ base: ProductVariant } | undefined
>(undefined)
const {
state: optionState,
close: closeOptions,
toggle: toggleOptions,
} = useToggleState()
const {
state: addVariantState,
close: closeAddVariant,
toggle: toggleAddVariant,
} = useToggleState()
const {
state: editVariantsState,
close: closeEditVariants,
toggle: toggleEditVariants,
} = useToggleState()
const {
state: showEditPrices,
close: hideEditPrices,
toggle: toggleEditPrices,
} = useToggleState()
const actions: ActionType[] = [
{
label: t("product-variants-section-add-variant", "Add Variant"),
onClick: toggleAddVariant,
icon:
{t("product-variants-section-product-variants", "Product variants")}{" "}
({product.variants.length})