import { __, sprintf } from '@wordpress/i18n';
import { formatFileSize } from '../../utils';
import { getUpgradeLink } from '../../../../../../assets/dev/js/utils';
const header = () => {
return `
| ${ __( 'Size Name', 'image-optimization' ) } |
${ __( 'Image Size', 'image-optimization' ) } |
${ __( 'Savings', 'image-optimization' ) } |
|
`;
};
const footer = ( data ) => {
const totalSize = sprintf(
// Translators: %s - total file size
__( 'Total: %s', 'image-optimization' ),
formatFileSize( data?.total ),
);
return `
${ totalSize }
`;
};
const rowStart = ( data ) => {
return `
| ${ data.size_name } |
${ formatFileSize( data.file_size ) } |
`;
};
const rowEnd = () => {
return '
';
};
const optimizedChunk = ( data ) => {
const optimizationStats = sprintf(
// Translators: %1$s: Optimization percentage, %2$ file size decrease
__( 'Reduced by %1$s%% (%2$s)', 'image-optimization' ),
data.saved.relative,
formatFileSize( data.saved.absolute ),
);
const croppingStats = data.new_dimensions ? sprintf(
// Translators: %1$s: Width, %2$ height
__( 'Resized to %1$s(w) x %2$s(h)', 'image-optimization' ),
data.new_dimensions.width,
data.new_dimensions.height,
) : '';
return `
${ optimizationStats }
${ croppingStats }
|
|
`;
};
const notOptimizedChunk = ( data ) => {
return `
${ __( 'Not optimized', 'image-optimization' ) }
|
|
`;
};
const notFoundChunk = () => {
return `
${ __( 'File is missing', 'image-optimization' ) }
|
|
`;
};
const tooLargeChunk = () => {
const message = sprintf(
// Translators: %s - max file size
__( 'File is too large. Max size is %s', 'image-optimization' ),
formatFileSize( window?.imageOptimizerUserData?.maxFileSize ),
);
const subscriptionId = window?.imageOptimizerUserData?.planData?.subscription_id;
return `
${ message }
|
${ __( 'Upgrade', 'image-optimization' ) }
|
`;
};
const error = ( data ) => {
return `
${ data.message }
`;
};
const optimizationDetailsTemplate = Object.freeze( {
header,
footer,
rowStart,
rowEnd,
optimizedChunk,
notOptimizedChunk,
notFoundChunk,
tooLargeChunk,
error,
} );
export default optimizationDetailsTemplate;