Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
2026-07-11 12:12:40 +08:00
parent 01a2c63b06
commit 71f758fe0b
66 changed files with 3055 additions and 939 deletions
@@ -9,6 +9,7 @@ import { House, Plus, Trash2, ImagePlus } from "lucide-react";
import { useAdvertisements } from "@/contexts/AdminAdvertisementContext";
import { useAuth } from "@/contexts/AuthContext";
import { useUnsavedChangesGuard } from "@/hooks/useUnsavedChangesGuard";
import { resolveAssetSrc } from "@/utils/media.util";
import AppBreadcrumb from "@/components/generic/Breadcrumb/AppBreadcrumb";
import { Button } from "@/components/ui/button";
@@ -144,6 +145,8 @@ export default function EditAdvertisement() {
const { fields: ctaFields, append: appendCta, remove: removeCta } = useFieldArray({ control, name: "ctas" });
const { bypassOnce, dialog: unsavedChangesDialog } = useUnsavedChangesGuard(isDirty);
const placement = watch("placement");
const description = watch("description");
const format = PLACEMENT_MAP[placement]?.format;
@@ -197,7 +200,7 @@ export default function EditAdvertisement() {
}, [advertisementId]);
const onSubmit = async (values) => {
if (!isDirty) return navigate(-1);
if (!isDirty) { bypassOnce(); return navigate(-1); }
const payload = {
...values,
@@ -209,7 +212,7 @@ export default function EditAdvertisement() {
};
const res = await updateAdvertisement(advertisementId, payload);
if (res) navigate("/admin/advertisements");
if (res) { bypassOnce(); navigate("/admin/advertisements"); }
};
if (!ready) {
@@ -466,6 +469,8 @@ export default function EditAdvertisement() {
setValue("image_asset_id", asset.asset_id, { shouldValidate: true, shouldDirty: true });
}}
/>
{unsavedChangesDialog}
</section>
);
}