From fdc408e3030d31b825bc681da229ac668a582225 Mon Sep 17 00:00:00 2001 From: Anang Yusman Date: Sun, 29 Dec 2024 19:12:30 +0800 Subject: [PATCH] feat:form-ai --- components/form/content/image-ai-form.tsx | 72 +++++++++++------------ 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/components/form/content/image-ai-form.tsx b/components/form/content/image-ai-form.tsx index 8bc0b421..d991a45c 100644 --- a/components/form/content/image-ai-form.tsx +++ b/components/form/content/image-ai-form.tsx @@ -35,6 +35,7 @@ import { Textarea } from "@/components/ui/textarea"; import { loading } from "@/lib/swal"; import { generateDataArticle, + getDetailArticle, getGenerateKeywords, getGenerateTitle, } from "@/service/content/ai"; @@ -86,14 +87,17 @@ export default function FormImageAI() { const [selectedSEO, setSelectedSEO] = useState(""); const [title, setTitle] = useState(""); const [selectedAdvConfig, setSelectedAdvConfig] = useState(""); - const [articleIds, setArticleIds] = useState([]); + const [editingArticleId, setEditingArticleId] = useState(null); + const [isLoading, setIsLoading] = useState(false); + + const [articleIds, setArticleIds] = useState([]); + const [isGeneratedArticle, setIsGeneratedArticle] = useState(false); + const [articleBody, setArticleBody] = useState(""); const [selectedArticleId, setSelectedArticleId] = useState( null ); - const [isGeneratedArticle, setIsGeneratedArticle] = useState(false); - const [articleBody, setArticleBody] = useState(""); - const [editingArticleId, setEditingArticleId] = useState(null); - const [isLoading, setIsLoading] = useState(false); + const [detailData, setDetailData] = useState(null); + const [articleImages, setArticleImages] = useState([]); const [selectedTarget, setSelectedTarget] = useState(""); const [unitSelection, setUnitSelection] = useState({ @@ -211,7 +215,6 @@ export default function FormImageAI() { }; const handleGenerateArtikel = async () => { - loading(); const request = { advConfig: selectedAdvConfig, style: selectedWritingStyle, @@ -219,7 +222,7 @@ export default function FormImageAI() { connectToWeb: true, lang: selectedLanguage, pointOfView: "None", - title: selectedTitle, + title: title, imageSource: "Web", mainKeyword: selectedMainKeyword, additionalKeywords: selectedSEO, @@ -241,7 +244,7 @@ export default function FormImageAI() { const newArticleId = res?.data?.data?.id; setIsGeneratedArticle(true); - setArticleIds((prevIds: any) => { + setArticleIds((prevIds: string[]) => { if (prevIds.length < 5) { return [...prevIds, newArticleId]; } else { @@ -251,12 +254,30 @@ export default function FormImageAI() { } }); - Cookies.set("nulisAIArticleIdTemp", articleIds); + Cookies.set("nulisAIArticleIdTemp", JSON.stringify(articleIds)); }; - const handleArticleIdClick = (articleId: string) => { - setEditingArticleId(articleId); - setSelectedArticleId(articleId); + // const handleArticleIdClick = (articleId: string) => { + // setEditingArticleId(articleId); + // setSelectedArticleId(articleId); + // }; + + const handleArticleIdClick = async (id: string) => { + // Fetch article details by ID + const res = await getDetailArticle(id); + const articleData = res?.data?.data; + + const cleanArticleBody = articleData?.articleBody?.replace( + /]*>/g, + "" + ); + const articleImagesData = articleData?.imagesUrl?.split(","); + + // Update state with new article data + setArticleBody(cleanArticleBody || ""); + setDetailData(articleData); + setSelectedArticleId(id); + setArticleImages(articleImagesData || []); }; const handleEditClick = () => { @@ -591,7 +612,7 @@ export default function FormImageAI() { {isGeneratedArticle && (
- {articleIds.map((id: any, index: any) => ( + {articleIds.map((id: string, index: number) => (
- - {/* {isGeneratedArticle && articleIds.length > 0 && ( -
-

Generated Article IDs:

- {articleIds.map((id: any, index: any) => ( - handleArticleIdClick(id)} - > - {id} - - ))} -
- )} */} - - {/* {editingArticleId && ( -
- -
- )} */}