feat: more on incremental rendering
This commit is contained in:
@@ -10,6 +10,7 @@ type SiteValidationReport = {
|
||||
sitemapChanged: boolean;
|
||||
missingUrlPaths: string[];
|
||||
extraUrlPaths: string[];
|
||||
updatedPostUrlPaths: string[];
|
||||
expectedUrlCount: number;
|
||||
existingHtmlUrlCount: number;
|
||||
};
|
||||
@@ -62,7 +63,8 @@ export const SiteValidationView: React.FC = () => {
|
||||
|
||||
const canApply = useMemo(() => {
|
||||
if (!report) return false;
|
||||
return report.missingUrlPaths.length > 0 || report.extraUrlPaths.length > 0;
|
||||
const updatedPostUrlPaths = Array.isArray(report.updatedPostUrlPaths) ? report.updatedPostUrlPaths : [];
|
||||
return report.missingUrlPaths.length > 0 || report.extraUrlPaths.length > 0 || updatedPostUrlPaths.length > 0;
|
||||
}, [report]);
|
||||
|
||||
const handleApply = async () => {
|
||||
@@ -101,6 +103,8 @@ export const SiteValidationView: React.FC = () => {
|
||||
);
|
||||
}
|
||||
|
||||
const updatedPostUrlPaths = Array.isArray(report.updatedPostUrlPaths) ? report.updatedPostUrlPaths : [];
|
||||
|
||||
return (
|
||||
<div className="site-validation-view">
|
||||
<div className="site-validation-summary">
|
||||
@@ -110,6 +114,7 @@ export const SiteValidationView: React.FC = () => {
|
||||
existing: report.existingHtmlUrlCount,
|
||||
missing: report.missingUrlPaths.length,
|
||||
extra: report.extraUrlPaths.length,
|
||||
updated: updatedPostUrlPaths.length,
|
||||
})}</p>
|
||||
</div>
|
||||
|
||||
@@ -139,6 +144,19 @@ export const SiteValidationView: React.FC = () => {
|
||||
)}
|
||||
</section>
|
||||
|
||||
<section className="site-validation-section">
|
||||
<h3>{tr('siteValidation.updatedTitle')}</h3>
|
||||
{updatedPostUrlPaths.length === 0 ? (
|
||||
<p className="site-validation-empty">{tr('siteValidation.noneUpdated')}</p>
|
||||
) : (
|
||||
<ul className="site-validation-list site-validation-list-missing">
|
||||
{updatedPostUrlPaths.map((urlPath) => (
|
||||
<li key={`updated:${urlPath}`}>{urlPath}</li>
|
||||
))}
|
||||
</ul>
|
||||
)}
|
||||
</section>
|
||||
|
||||
<div className="site-validation-actions">
|
||||
<button
|
||||
type="button"
|
||||
|
||||
@@ -37,12 +37,14 @@
|
||||
"app.importComplete": "Import abgeschlossen: {posts} Beiträge, {media} Mediendateien",
|
||||
"siteValidation.tabTitle": "Website-Validierung",
|
||||
"siteValidation.title": "Website validieren",
|
||||
"siteValidation.summary": "Erwartete URLs: {expected} · Vorhandene HTML-URLs: {existing} · Fehlend: {missing} · Überzählig: {extra}",
|
||||
"siteValidation.summary": "Erwartete URLs: {expected} · Vorhandene HTML-URLs: {existing} · Fehlend: {missing} · Überzählig: {extra} · Aktualisierte Beiträge: {updated}",
|
||||
"siteValidation.loading": "Website wird validiert...",
|
||||
"siteValidation.missingTitle": "Fehlende HTML-URLs (zum Rendern)",
|
||||
"siteValidation.extraTitle": "Nicht referenzierte HTML-URLs (zum Löschen)",
|
||||
"siteValidation.updatedTitle": "Aktualisierte Beitrags-URLs (zum erneuten Rendern)",
|
||||
"siteValidation.noneMissing": "Keine fehlenden URLs gefunden.",
|
||||
"siteValidation.noneExtra": "Keine überzähligen URLs gefunden.",
|
||||
"siteValidation.noneUpdated": "Keine aktualisierten Beitrags-URLs gefunden.",
|
||||
"siteValidation.apply": "Anwenden",
|
||||
"siteValidation.applying": "Wird angewendet...",
|
||||
"siteValidation.error.validate": "Website-Validierung fehlgeschlagen",
|
||||
|
||||
@@ -37,12 +37,14 @@
|
||||
"app.importComplete": "Import complete: {posts} posts, {media} media files",
|
||||
"siteValidation.tabTitle": "Site Validation",
|
||||
"siteValidation.title": "Validate Site",
|
||||
"siteValidation.summary": "Expected URLs: {expected} · Existing HTML URLs: {existing} · Missing: {missing} · Extra: {extra}",
|
||||
"siteValidation.summary": "Expected URLs: {expected} · Existing HTML URLs: {existing} · Missing: {missing} · Extra: {extra} · Updated posts: {updated}",
|
||||
"siteValidation.loading": "Validating site...",
|
||||
"siteValidation.missingTitle": "Missing HTML URLs (to render)",
|
||||
"siteValidation.extraTitle": "Unreferenced HTML URLs (to delete)",
|
||||
"siteValidation.updatedTitle": "Updated post URLs (to rerender)",
|
||||
"siteValidation.noneMissing": "No missing URLs found.",
|
||||
"siteValidation.noneExtra": "No extra URLs found.",
|
||||
"siteValidation.noneUpdated": "No updated post URLs found.",
|
||||
"siteValidation.apply": "Apply",
|
||||
"siteValidation.applying": "Applying...",
|
||||
"siteValidation.error.validate": "Site validation failed",
|
||||
|
||||
@@ -37,12 +37,14 @@
|
||||
"app.importComplete": "Importación completada: {posts} entradas, {media} archivos multimedia",
|
||||
"siteValidation.tabTitle": "Validación del sitio",
|
||||
"siteValidation.title": "Validar sitio",
|
||||
"siteValidation.summary": "URLs esperadas: {expected} · URLs HTML existentes: {existing} · Faltantes: {missing} · Sobrantes: {extra}",
|
||||
"siteValidation.summary": "URLs esperadas: {expected} · URLs HTML existentes: {existing} · Faltantes: {missing} · Sobrantes: {extra} · Entradas actualizadas: {updated}",
|
||||
"siteValidation.loading": "Validando el sitio...",
|
||||
"siteValidation.missingTitle": "URLs HTML faltantes (para renderizar)",
|
||||
"siteValidation.extraTitle": "URLs HTML no referenciadas (para eliminar)",
|
||||
"siteValidation.updatedTitle": "URLs de entradas actualizadas (para volver a renderizar)",
|
||||
"siteValidation.noneMissing": "No se encontraron URLs faltantes.",
|
||||
"siteValidation.noneExtra": "No se encontraron URLs sobrantes.",
|
||||
"siteValidation.noneUpdated": "No se encontraron URLs de entradas actualizadas.",
|
||||
"siteValidation.apply": "Aplicar",
|
||||
"siteValidation.applying": "Aplicando...",
|
||||
"siteValidation.error.validate": "La validación del sitio falló",
|
||||
|
||||
@@ -37,12 +37,14 @@
|
||||
"app.importComplete": "Import terminé : {posts} articles, {media} fichiers média",
|
||||
"siteValidation.tabTitle": "Validation du site",
|
||||
"siteValidation.title": "Valider le site",
|
||||
"siteValidation.summary": "URLs attendues : {expected} · URLs HTML existantes : {existing} · Manquantes : {missing} · En trop : {extra}",
|
||||
"siteValidation.summary": "URLs attendues : {expected} · URLs HTML existantes : {existing} · Manquantes : {missing} · En trop : {extra} · Articles mis à jour : {updated}",
|
||||
"siteValidation.loading": "Validation du site en cours...",
|
||||
"siteValidation.missingTitle": "URLs HTML manquantes (à rendre)",
|
||||
"siteValidation.extraTitle": "URLs HTML non référencées (à supprimer)",
|
||||
"siteValidation.updatedTitle": "URLs d’articles mises à jour (à rerendre)",
|
||||
"siteValidation.noneMissing": "Aucune URL manquante trouvée.",
|
||||
"siteValidation.noneExtra": "Aucune URL en trop trouvée.",
|
||||
"siteValidation.noneUpdated": "Aucune URL d’article mise à jour trouvée.",
|
||||
"siteValidation.apply": "Appliquer",
|
||||
"siteValidation.applying": "Application en cours...",
|
||||
"siteValidation.error.validate": "Échec de la validation du site",
|
||||
|
||||
@@ -37,12 +37,14 @@
|
||||
"app.importComplete": "Import completato: {posts} post, {media} file multimediali",
|
||||
"siteValidation.tabTitle": "Validazione sito",
|
||||
"siteValidation.title": "Valida sito",
|
||||
"siteValidation.summary": "URL attesi: {expected} · URL HTML esistenti: {existing} · Mancanti: {missing} · Extra: {extra}",
|
||||
"siteValidation.summary": "URL attesi: {expected} · URL HTML esistenti: {existing} · Mancanti: {missing} · Extra: {extra} · Post aggiornati: {updated}",
|
||||
"siteValidation.loading": "Validazione del sito in corso...",
|
||||
"siteValidation.missingTitle": "URL HTML mancanti (da renderizzare)",
|
||||
"siteValidation.extraTitle": "URL HTML non referenziati (da eliminare)",
|
||||
"siteValidation.updatedTitle": "URL post aggiornati (da rigenerare)",
|
||||
"siteValidation.noneMissing": "Nessun URL mancante trovato.",
|
||||
"siteValidation.noneExtra": "Nessun URL extra trovato.",
|
||||
"siteValidation.noneUpdated": "Nessun URL di post aggiornato trovato.",
|
||||
"siteValidation.apply": "Applica",
|
||||
"siteValidation.applying": "Applicazione in corso...",
|
||||
"siteValidation.error.validate": "Validazione del sito non riuscita",
|
||||
|
||||
Reference in New Issue
Block a user