"use client"; import { close, error, loading } from "@/config/swal"; import { useRouter } from "@/i18n/routing"; import { getCookiesDecrypt } from "@/lib/utils"; import { getContentRewrite, getInfoProfile } from "@/service/landing/landing"; import { useParams, useSearchParams } from "next/navigation"; import React, { useEffect, useState } from "react"; import Swal from "sweetalert2"; import withReactContent from "sweetalert2-react-content"; import * as Yup from "yup"; import { yupResolver } from "@hookform/resolvers/yup"; import { useForm } from "react-hook-form"; import { generateDataArticle } from "@/service/content/ai"; import HeaderManagement from "@/components/landing-page/header-management"; import SidebarManagement from "@/components/landing-page/sidebar-management"; import { saveContentRewrite } from "@/service/content/content"; import CustomEditor from "@/components/editor/custom-editor"; import { Input } from "@/components/ui/input"; const page = () => { const [profile, setProfile] = useState(); const MySwal = withReactContent(Swal); const searchParams = useSearchParams(); const router = useRouter(); const [, setLoadingState] = useState(false); const getParams = useParams(); const id: any = getParams?.id; const [content, setContent] = useState([]); const [isFromSPIT, setIsFromSPIT] = useState(false); const [listSuggestion, setListSuggestion] = useState(); const [main, setMain] = useState(); const userId = getCookiesDecrypt("uie"); const userRoleId = getCookiesDecrypt("urie"); const [articleIds, setArticleIds] = useState([]); const [isGeneratedArticle, setIsGeneratedArticle] = useState(false); const [selectedArticleId, setSelectedArticleId] = useState(null); const [articleBody, setArticleBody] = useState(""); const [selectedAdvConfig, setSelectedAdvConfig] = useState(""); const [selectedWritingStyle, setSelectedWritingStyle] = useState(""); const [selectedContextType, setSelectedContextType] = useState(""); const [selectedLanguage, setSelectedLanguage] = useState(""); const [selectedTitle, setSelectedTitle] = useState(""); const [selectedMainKeyword, setSelectedMainKeyword] = useState(""); const [selectedSEO, setSelectedSEO] = useState(""); const [selectedSize, setSelectedSize] = useState(""); const [detailArticle, setDetailArticle] = useState(null); const userLevelId = getCookiesDecrypt("ulie"); const roleId = getCookiesDecrypt("urie"); // useEffect(() => { // let userLevelId: number | undefined; // if (userLevelId != undefined && userLevelId == 216) { // setIsMabesApprover(true); // } // }, [userLevelId]); useEffect(() => { async function initState() { loading(); const response = await getInfoProfile(); // console.log(response?.data?.data); setProfile(response?.data?.data); close(); } async function getInitData() { const response = await getContentRewrite(id); const data = response?.data?.data; setContent(data); const cleanArticleBody = data?.articleBody?.replace(/]*>/g, ""); setArticleBody(cleanArticleBody || ""); } initState(); getInitData(); }, []); const validationSchema = Yup.object().shape({ title: Yup.string().required("Judul tidak boleh kosong"), }); const formOptions = { resolver: yupResolver(validationSchema), }; const { register, handleSubmit, reset, formState: { errors }, setValue, } = useForm(formOptions); const handleGenerateArtikel = async () => { loading(); const request: any = { advConfig: selectedAdvConfig, style: selectedWritingStyle, website: "None", connectToWeb: true, lang: selectedLanguage, pointOfView: "None", title: content?.title, imageSource: "Web", mainKeyword: content?.title, additionalKeywords: content?.htmlDescription, targetCountry: null, articleSize: selectedSize, projectId: 2, createdBy: roleId, clientId: "ngDLPPiorplznw2jTqVe3YFCz5xqKfUJ", }; const res = await generateDataArticle(request); close(); if (res?.error) { console.error(res.message); return false; } const newArticleId = res?.data?.data?.id; setIsGeneratedArticle(true); setArticleIds((prevIds: any) => { if (prevIds.length < 5) { return [...prevIds, newArticleId]; } else { const updatedIds = [...prevIds]; updatedIds[4] = newArticleId; return updatedIds; } }); // Cookies.set("nulisAIArticleIdTemp", articleIds); }; const save = async (data: any) => { const request = { id: 1, articleId: id.split("-")?.[0], title: data.title, articleBody: detailArticle?.articleBody, metaTitle: detailArticle?.metaTitle, metaDescription: detailArticle?.metaDescription, mainKeyword: detailArticle?.mainKeyword, additionalKeyword: detailArticle?.additionalKeyword, articleSize: detailArticle?.articleSize, style: detailArticle?.style, website: detailArticle?.website, imageUrl: detailArticle?.imageUrl, }; loading(); const res = await saveContentRewrite(request); if (res?.error) { error(res?.message); return false; } successSubmit(); }; function successSubmit() { MySwal.fire({ title: "Sukses", icon: "success", confirmButtonColor: "#3085d6", confirmButtonText: "OK", }).then((result) => { if (result.isConfirmed) { close(); } }); } function onSubmit(data: any) { MySwal.fire({ title: "Simpan Data", text: "", icon: "warning", showCancelButton: true, cancelButtonColor: "#d33", confirmButtonColor: "#3085d6", confirmButtonText: "Simpan", }).then((result) => { if (result.isConfirmed) { save(data); } }); } return ( <>
Detail Content Rewrite
{content && ( <>

Judul

setSelectedTitle(e.target.value)} />

Main Keyword

// setSelectedMainKeyword(e.target.value) // } placeholder="Masukan Additional Keyword disini!" defaultValue={content?.additionalKeyword} />
// setSelectedMainKeyword(e.target.value) // } placeholder="Masukan Meta Title disini!" defaultValue={content?.metaTitle} />
// setSelectedMainKeyword(e.target.value) // } placeholder="Masukan Meta Description disini!" defaultValue={content?.metaDescription} />
{}} initialData={articleBody || ""} />
)}
); }; export default page;