import { __ } from '@wordpress/i18n';
import { escapeHTML } from '@wordpress/escape-html';
import { formatFileSize } from '../../utils';
import { getErrorButton } from '../common';
const notOptimizedTemplate = () => {
return `
${ __( 'Status', 'image-optimization' ) }:
${ __( 'Not optimized', 'image-optimization' ) }
`;
};
const loadingTemplate = () => {
return `
${ __( 'Status', 'image-optimization' ) }:
${ __( 'In Progress', 'image-optimization' ) }
`;
};
const errorTemplate = ( { message, imagesLeft, errorType, allowRetry } ) => {
return `
${ __( 'Status', 'image-optimization' ) }:
${ __( 'Error', 'image-optimization' ) }
${ __( 'Reason', 'image-optimization' ) }:
${ escapeHTML( message ) }
${ getErrorButton( { imagesLeft, errorType, allowRetry } ) }
`;
};
const optimizedTemplate = ( data ) => {
const absoluteValue = formatFileSize( data?.saved?.absolute, 1 );
return `
${ __( 'Status', 'image-optimization' ) }:
${ __( 'Optimized', 'image-optimization' ) }
${ __( 'Image sizes optimized', 'image-optimization' ) }:
${ data?.sizesOptimized }/${ data?.sizesTotal }
${ data?.saved?.absolute !== 0
? `
${ __( 'Overall saving', 'image-optimization' ) }:
${ data?.saved?.relative }% (${ absoluteValue })
`
: `
${ __( 'Image is fully optimized', 'image-optimization' ) }
` }
${ data?.canBeRestored ? `
` : '' }
`;
};
const detailsViewTemplates = Object.freeze( {
notOptimizedTemplate,
loadingTemplate,
errorTemplate,
optimizedTemplate,
} );
export default detailsViewTemplates;