ALwrity + Wix + Wordpress + GSC + Bug Fixes

This commit is contained in:
ajaysi
2025-10-10 13:08:09 +05:30
parent af4c8afb5b
commit 11f164ae21
80 changed files with 125 additions and 678 deletions

View File

@@ -52,14 +52,14 @@ export const ResearchPollingHandler: React.FC<ResearchPollingHandlerProps> = ({
} else {
polling.stopPolling();
}
}, [taskId]);
}, [taskId, polling]);
// Cleanup on unmount
useEffect(() => {
return () => {
polling.stopPolling();
};
}, []);
}, [polling]);
console.log('ResearchPollingHandler render:', {
taskId,

View File

@@ -213,7 +213,7 @@ export const RewriteFeedbackForm: React.FC<RewriteFeedbackFormProps> = ({
onRewriteStarted,
onRewriteTriggered
}) => {
const [isCollectingFeedback, setIsCollectingFeedback] = useState(false);
// Note: isCollectingFeedback state removed as it was unused
// Rewrite Blog Action with HITL
useCopilotActionTyped({
@@ -303,7 +303,6 @@ export const RewriteFeedbackForm: React.FC<RewriteFeedbackFormProps> = ({
if (result.success && result.taskId) {
onRewriteStarted?.(result.taskId);
setIsCollectingFeedback(false);
return {
success: true,

View File

@@ -16,21 +16,13 @@ import {
Card,
CardContent,
Chip,
Divider,
Alert,
IconButton,
Tooltip,
Button
Alert
} from '@mui/material';
import {
ContentCopy as CopyIcon,
Check as CheckIcon,
Search as SearchIcon,
Share as ShareIcon,
Code as CodeIcon,
Facebook as FacebookIcon,
Twitter as TwitterIcon,
LinkedIn as LinkedInIcon,
Google as GoogleIcon
} from '@mui/icons-material';
@@ -43,15 +35,6 @@ export const PreviewCard: React.FC<PreviewCardProps> = ({
metadata,
blogTitle
}) => {
const copyToClipboard = async (text: string, itemId: string) => {
try {
await navigator.clipboard.writeText(text);
// You could add a state to show "Copied!" feedback here
} catch (err) {
console.error('Failed to copy to clipboard:', err);
}
};
const getCurrentDate = () => {
return new Date().toLocaleDateString('en-US', {
year: 'numeric',
@@ -60,13 +43,6 @@ export const PreviewCard: React.FC<PreviewCardProps> = ({
});
};
const getCurrentTime = () => {
return new Date().toLocaleTimeString('en-US', {
hour: '2-digit',
minute: '2-digit'
});
};
return (
<Box>
<Typography variant="h6" sx={{ mb: 3, display: 'flex', alignItems: 'center', gap: 1 }}>

View File

@@ -5,11 +5,10 @@
* Integrates with CopilotKit for real-time progress updates and user interactions.
*/
import React, { useState, useEffect } from 'react';
import React, { useState, useEffect, useCallback } from 'react';
import {
Dialog,
DialogContent,
DialogTitle,
Button,
Chip,
LinearProgress,
@@ -23,7 +22,6 @@ import {
Alert,
Grid,
Paper,
Divider,
IconButton,
Tooltip
} from '@mui/material';
@@ -33,11 +31,8 @@ import {
Cancel,
Warning,
TrendingUp,
GpsFixed,
MenuBook,
Search,
BarChart,
Lightbulb,
Refresh,
Close
} from '@mui/icons-material';
@@ -165,7 +160,7 @@ export const SEOAnalysisModal: React.FC<SEOAnalysisModalProps> = ({
// Debug logging
console.log('SEOAnalysisModal render:', { isOpen, blogContent: blogContent?.length, researchData: !!researchData });
const runSEOAnalysis = async () => {
const runSEOAnalysis = useCallback(async () => {
try {
setIsAnalyzing(true);
setError(null);
@@ -267,7 +262,7 @@ export const SEOAnalysisModal: React.FC<SEOAnalysisModalProps> = ({
setError(err instanceof Error ? err.message : 'Analysis failed');
setIsAnalyzing(false);
}
};
}, [blogContent, blogTitle, researchData]);
const getScoreColor = (score: number) => {
if (score >= 80) return 'success.main';
@@ -281,23 +276,6 @@ export const SEOAnalysisModal: React.FC<SEOAnalysisModalProps> = ({
return 'error';
};
const getPriorityColor = (priority: string) => {
switch (priority) {
case 'High': return 'error.main';
case 'Medium': return 'warning.main';
case 'Low': return 'success.main';
default: return 'text.secondary';
}
};
const getPriorityIcon = (priority: string) => {
switch (priority) {
case 'High': return <Cancel sx={{ fontSize: 16 }} />;
case 'Medium': return <Warning sx={{ fontSize: 16 }} />;
case 'Low': return <CheckCircle sx={{ fontSize: 16 }} />;
default: return <Warning sx={{ fontSize: 16 }} />;
}
};
// Tooltip content for each metric
const getMetricTooltip = (category: string) => {
@@ -352,7 +330,7 @@ export const SEOAnalysisModal: React.FC<SEOAnalysisModalProps> = ({
if (isOpen && !analysisResult) {
runSEOAnalysis();
}
}, [isOpen]);
}, [isOpen, analysisResult, runSEOAnalysis]);
return (
<Dialog

View File

@@ -20,22 +20,13 @@ import {
Typography,
Tabs,
Tab,
Paper,
CircularProgress,
Alert,
IconButton,
Tooltip,
Chip,
Grid,
Card,
CardContent,
Divider,
TextField,
InputAdornment
Chip
} from '@mui/material';
import {
Close as CloseIcon,
ContentCopy as CopyIcon,
Check as CheckIcon,
Preview as PreviewIcon,
Search as SearchIcon,