import { __ } from "@wordpress/i18n";
jQuery(document).ready(function($) {
function getScoreColorClass(score) {
if (score >= 80) return 'green';
if (score >= 50) return 'yellow';
if (score >= 30) return 'orange';
return 'red';
}
function getScoreStatusText(score) {
if (score >= 80) return __('Excellent', 'betterdocs');
if (score >= 60) return __('Good', 'betterdocs');
if (score >= 40) return __('Needs Improvement', 'betterdocs');
return __('Poor', 'betterdocs');
}
function showResults(container, data) {
const $container = $(container);
const $results = $container.find('.quality-results');
const $empty = $container.find('.quality-empty');
// Hide empty state, show results
$empty.hide();
$results.show();
// Handle nested data structure (response.data.data)
const analysisData = data.data || data;
// Build results HTML
const score = analysisData.overall_score || 0;
const scores = analysisData.scores || {};
const feedback = analysisData.feedback || {};
const strengths = feedback.strengths || [];
const improvements = feedback.improvements || [];
const suggestions = feedback.suggestions || [];
let resultsHTML = '';
// Results header with regenerate button
resultsHTML += '
';
// Calculate circular progress
const scoreColor = getScoreColorClass(score);
const circumference = 2 * Math.PI * 54; // radius = 54
const offset = circumference - (score / 100) * circumference;
// Start two-column layout
resultsHTML += '';
// Left Column: Circular Progress Score
resultsHTML += '
';
resultsHTML += '
' + __('Overall Score', 'betterdocs') + '
';
resultsHTML += '
';
resultsHTML += '
';
resultsHTML += '
';
resultsHTML += '' + score + '';
resultsHTML += '' + __('out of 100', 'betterdocs') + '';
resultsHTML += '
';
resultsHTML += '
';
resultsHTML += '
' + getScoreStatusText(score) + '
';
resultsHTML += '
' + __('This score is a weighted average of clarity, relevance, structure, and other quality factors.', 'betterdocs') + '
';
resultsHTML += '
';
// Right Column: Details (Score Breakdown)
resultsHTML += '
';
if (Object.keys(scores).length > 0) {
resultsHTML += '
';
resultsHTML += '
' + __('Score Breakdown', 'betterdocs') + '
';
resultsHTML += '
';
Object.keys(scores).forEach(function(criterion) {
const criterionScore = scores[criterion];
resultsHTML += '
';
resultsHTML += '
';
resultsHTML += '' + criterion.charAt(0).toUpperCase() + criterion.slice(1) + '';
resultsHTML += '' + criterionScore + '%';
resultsHTML += '
';
resultsHTML += '
';
resultsHTML += '
';
resultsHTML += '
';
resultsHTML += '
';
resultsHTML += '
';
resultsHTML += '
';
});
resultsHTML += '
';
resultsHTML += '
';
}
resultsHTML += '
'; // Close details-column
resultsHTML += '
'; // Close quality-results-body
// Gather all suggestions for "Actionable Insights" section
const allSuggestions = [];
if (strengths.length > 0) allSuggestions.push(...strengths);
if (improvements.length > 0) allSuggestions.push(...improvements);
if (suggestions.length > 0) allSuggestions.push(...suggestions);
if (allSuggestions.length > 0) {
resultsHTML += '