update price bug fixed
deploy to danak / build_and_deploy (push) Has been cancelled

This commit is contained in:
2026-07-09 15:45:03 +03:30
parent b37de9ee46
commit 3658e6ffc0
3 changed files with 74 additions and 31 deletions
+6 -20
View File
@@ -14,6 +14,7 @@ import CreateProductSidebar from "./components/CreateProductSidebar";
import { PaymentType, PricingType, PurchaseUnit } from "./enum/Enum";
import { useGetCategories, useGetProductDetails, useUpdateProduct } from "./hooks/useProductData";
import type { CreateProductType } from "./types/Types";
import { buildProductPayload } from "./utils/productPayload";
const UpdateProduct: FC = () => {
const { id } = useParams<{ id: string }>();
@@ -30,6 +31,7 @@ const UpdateProduct: FC = () => {
const categories = categoriesData?.data ?? [];
const product = productData?.data;
const isSubmitting = isPending || isUploading;
const formik = useFormik<CreateProductType>({
initialValues: {
@@ -86,28 +88,12 @@ const UpdateProduct: FC = () => {
const submitProduct = (newImageUrls: string[] = []) => {
const allImages = [...values.images, ...newImageUrls];
const variants =
values.variants.length > 0
? values.variants.map((v) => ({
...(v.id && { id: v.id }),
value: v.value ?? "",
price: v.price ?? 0,
...(v.stock !== undefined && v.stock !== null && { stock: v.stock }),
}))
: [{ value: "", price: values.price, ...(values.stock !== undefined && values.stock !== null && { stock: values.stock }) }];
const productData: CreateProductType = {
...values,
variants,
const productData = buildProductPayload({
values,
isActive,
isSpecialOffer: isSpecial,
images: allImages,
needAdminAcceptance: values.paymentType === PaymentType.AFTER_PREPARATION,
...(values.pricingType === PricingType.FIXED && {
purchaseUnit: values.purchaseUnit ?? PurchaseUnit.NUMBER,
minPurchaseQuantity: values.minPurchaseQuantity ?? 1,
purchasePitch: undefined,
}),
};
});
updateProduct(
{ id, params: productData },
@@ -199,7 +185,7 @@ const UpdateProduct: FC = () => {
<div className="flex flex-col sm:flex-row w-full justify-between items-start sm:items-center gap-4">
<div className="text-lg font-light">ویرایش کالا</div>
<div>
<Button className="px-5 w-full sm:w-auto" onClick={() => formik.handleSubmit()} isloading={isPending || isUploading}>
<Button className="px-5 w-full sm:w-auto" onClick={() => formik.handleSubmit()} isloading={isSubmitting}>
<div className="flex gap-2 items-center">
<TickCircle className="size-5" color="white" />
<div>ذخیره تغییرات</div>