import React, { useState, useEffect } from "react"; import { postSeo, getSeo, putSeo } from "../../features/SEO/seo.js"; import { useDispatch } from "react-redux"; import { getConfigNames } from "../../features/configmasterPage/configmasterPage.js"; import { message } from 'antd'; import { RiSettings4Line } from 'react-icons/ri'; import "../Styles/SeoForm.scss" const SeoForm = () => { const dispatch = useDispatch(); const [showForm, setShowForm] = useState(true); const [detailSections, setDetailSections] = useState([{}]); const [formData, setFormData] = useState({ pageName: "", metaTitle: "", metaDescription: "", keywords: "", imageAltText: "", }); const [allpagesData, setAllpagesData] = useState([]); const [isExistingData, setIsExistingData] = useState(false); useEffect(() => { getPagesName(); }, []); const getPagesName = async () => { let Res = await dispatch(getConfigNames({ TypeName: "SEO" })).unwrap(); if (Res?.data?.statusCode == 1) { setAllpagesData(Res?.data?.data); } }; const handleChange = async (e) => { const { name, value } = e.target; // If page is selected, fetch existing SEO data if (name === 'pageName') { console.log('Page selected:', value); if (value) { try { console.log('Fetching SEO data for PageId:', value); const response = await dispatch(getSeo({ PageId: value })).unwrap(); console.log('SEO API Response:', response); if (response?.data?.statusCode === 1 && response?.data?.data?.length > 0) { const seoData = response.data.data[0]; console.log('Found existing SEO data:', seoData); setFormData({ pageName: value, metaTitle: seoData.MetaTitle || '', metaDescription: seoData.MetaDesc || '', keywords: seoData.Keywords || '', imageAltText: seoData.ImgAltText || '', }); setIsExistingData(true); } else { console.log('No existing SEO data found'); setFormData({ pageName: value, metaTitle: '', metaDescription: '', keywords: '', imageAltText: '', }); setIsExistingData(false); } } catch (error) { console.error('Error fetching SEO data:', error); setFormData({ pageName: value, metaTitle: '', metaDescription: '', keywords: '', imageAltText: '', }); setIsExistingData(false); } } else { setFormData({ pageName: '', metaTitle: '', metaDescription: '', keywords: '', imageAltText: '', }); setIsExistingData(false); } } else { setFormData({ ...formData, [name]: value }); } }; const handleSubmit = async (e) => { e.preventDefault(); if (!formData.pageName) { message.error("Please select a page"); return; } const postData = { PageId: formData.pageName, MetaTitle: formData.metaTitle, MetaDesc: formData.metaDescription, Keywords: formData.keywords, ImgAltText: formData.imageAltText, ImageUrl: "", ActiveStatus: "A", CreatedBy: 1, }; try { if (isExistingData) { await dispatch(putSeo(postData)).unwrap(); message.success("SEO Settings updated successfully!"); } else { await dispatch(postSeo(postData)).unwrap(); message.success("SEO Settings created successfully!"); setIsExistingData(true); } } catch (error) { message.error("Failed to save SEO settings"); } }; return (

SEO Management

Configure SEO settings for pages and content.

SEO Configuration