import { __, sprintf } from '@wordpress/i18n'; import { formatFileSize } from '../../utils'; import { getUpgradeLink } from '../../../../../../assets/dev/js/utils'; const header = () => { return `
`; }; const footer = ( data ) => { const totalSize = sprintf( // Translators: %s - total file size __( 'Total: %s', 'image-optimization' ), formatFileSize( data?.total ), ); return `
${ __( 'Size Name', 'image-optimization' ) } ${ __( 'Image Size', 'image-optimization' ) } ${ __( 'Savings', 'image-optimization' ) }

${ 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;