diff --git a/auto-bid-admin/src/apis/scrap.ts b/auto-bid-admin/src/apis/scrap.ts index c78ead5..4409971 100644 --- a/auto-bid-admin/src/apis/scrap.ts +++ b/auto-bid-admin/src/apis/scrap.ts @@ -16,7 +16,10 @@ export const createScrapConfig = async ( url: "scrap-configs", withCredentials: true, method: "POST", - data: newData, + data: { + ...newData, + enable: newData.enable === "1", + }, }); handleSuccess(data); @@ -28,14 +31,14 @@ export const createScrapConfig = async ( }; export const updateScrapConfig = async (scrapConfig: Partial) => { - const { search_url, keywords, id } = removeFalsyValues(scrapConfig); + const { search_url, keywords, id, enable } = removeFalsyValues(scrapConfig); try { const { data } = await axios({ url: "scrap-configs/" + id, withCredentials: true, method: "PUT", - data: { search_url, keywords }, + data: { search_url, keywords, enable: enable === "1" }, }); handleSuccess(data); diff --git a/auto-bid-admin/src/components/web-bid/scrap-config.modal.tsx b/auto-bid-admin/src/components/web-bid/scrap-config.modal.tsx index 00f95f6..4e1f976 100644 --- a/auto-bid-admin/src/components/web-bid/scrap-config.modal.tsx +++ b/auto-bid-admin/src/components/web-bid/scrap-config.modal.tsx @@ -4,6 +4,7 @@ import { LoadingOverlay, Modal, ModalProps, + Select, Textarea, TextInput, } from "@mantine/core"; @@ -28,6 +29,7 @@ const schema = z.object({ .string({ message: "Keyword is required" }) .min(1, { message: "Keyword is required" }) .optional(), + enable: z.enum(["1", "0"], { required_error: "Enable is required" }), }); export default function ScrapConfigModal({ @@ -93,9 +95,18 @@ export default function ScrapConfigModal({ form.reset(); if (!data) return; - form.setValues(data.scrap_config); + const values = { + ...data.scrap_config, + enable: (data.scrap_config?.enable === undefined + ? "1" + : data.scrap_config.enable + ? "1" + : "0") as "0" | "1", + }; - prevData.current = data.scrap_config; + form.setValues(values); + + prevData.current = values; // eslint-disable-next-line react-hooks/exhaustive-deps }, [data]); @@ -121,6 +132,23 @@ export default function ScrapConfigModal({ onSubmit={form.onSubmit(handleSubmit)} className="grid grid-cols-2 gap-2.5" > +