PluginProbe
Image Optimizer – Compress Images and Convert to WebP or AVIF / 1.7.7
Image Optimizer – Compress Images and Convert to WebP or AVIF v1.7.7
1.7.7 1.7.6 1.7.5 1.7.4 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 All 33 releases
image-optimization / modules / optimization / assets / js / templates / meta-box / index.js

index.js in Image Optimizer – Compress Images and Convert to WebP or AVIF 1.7.7, at modules/optimization/assets/js/templates/meta-box/index.js

128 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import { __ } from '@wordpress/i18n';
2 import { escapeHTML } from '@wordpress/escape-html';
3 import { formatFileSize } from '../../utils';
4 import { getErrorButton } from '../common';
5
6 const notOptimizedTemplate = () => {
7 return `
8 <p class="image-optimization-control__property">
9 ${ __( 'Status', 'image-optimization' ) }:
10
11 <span class="image-optimization-control__property-value">
12 ${ __( 'Not optimized', 'image-optimization' ) }
13 </span>
14 </p>
15
16 <div class="image-optimization-control__action-button-wrapper">
17 <button type="button"
18 class="button button-primary image-optimization-control__button image-optimization-control__button--optimize">
19 ${ __( 'Optimize now', 'image-optimization' ) }
20 </button>
21 </div>
22 `;
23 };
24
25 const loadingTemplate = () => {
26 return `
27 <p class="image-optimization-control__property">
28 ${ __( 'Status', 'image-optimization' ) }:
29
30 <span class="image-optimization-control__property-value">
31 ${ __( 'In Progress', 'image-optimization' ) }
32 </span>
33 </p>
34
35 <div class="image-optimization-control__action-spinner-wrapper">
36 <span class="spinner is-active"></span>
37 </div>
38 `;
39 };
40
41 const errorTemplate = ( { message, imagesLeft, errorType, allowRetry } ) => {
42 return `
43 <p class="image-optimization-control__property">
44 ${ __( 'Status', 'image-optimization' ) }:
45
46 <span class="image-optimization-control__property-value">
47 ${ __( 'Error', 'image-optimization' ) }
48 </span>
49 </p>
50
51 <p class="image-optimization-control__property">
52 ${ __( 'Reason', 'image-optimization' ) }:
53
54 <span class="image-optimization-control__property-value">
55 ${ escapeHTML( message ) }
56 </span>
57 </p>
58
59 <div class="image-optimization-control__action-button-wrapper">
60 ${ getErrorButton( { imagesLeft, errorType, allowRetry } ) }
61 </div>
62 `;
63 };
64
65 const optimizedTemplate = ( data ) => {
66 const absoluteValue = formatFileSize( data?.saved?.absolute, 1 );
67
68 return `
69 <p class="image-optimization-control__property">
70 ${ __( 'Status', 'image-optimization' ) }:
71
72 <span class="image-optimization-control__property-value">
73 ${ __( 'Optimized', 'image-optimization' ) }
74 </span>
75 </p>
76
77 <p class="image-optimization-control__property">
78 ${ __( 'Image sizes optimized', 'image-optimization' ) }:
79
80 <span class="image-optimization-control__property-value">
81 ${ data?.sizesOptimized }/${ data?.sizesTotal }
82
83 <button type="button"
84 class="image-optimization-control__details-button"
85 aria-label="${ __( 'Open optimization details', 'image-optimization' ) }">
86 (+)
87 </button>
88 </span>
89 </p>
90
91 <p class="image-optimization-control__property">
92 ${ data?.saved?.absolute !== 0
93 ? `
94 <span class="image-optimization-control__property-value">
95 ${ __( 'Overall saving', 'image-optimization' ) }: ${ data?.saved?.relative }% (${ absoluteValue })
96 </span>
97 ` : `
98 <span class="image-optimization-control__property-value">
99 ${ __( 'Image is fully optimized', 'image-optimization' ) }
100 </span>
101 ` }
102 </p>
103
104 <div class="image-optimization-control__action-button-wrapper">
105 ${ data?.canBeRestored ? `
106 <button class="button button-link image-optimization-control__button image-optimization-control__button--restore-original"
107 type="button">
108 ${ __( 'Restore original', 'image-optimization' ) }
109 </button>
110 ` : '' }
111
112 <button class="button button-link image-optimization-control__button image-optimization-control__button--reoptimize"
113 type="button">
114 ${ __( 'Reoptimize', 'image-optimization' ) }
115 </button>
116 </div>
117 `;
118 };
119
120 const metaBoxTemplates = Object.freeze( {
121 notOptimizedTemplate,
122 loadingTemplate,
123 errorTemplate,
124 optimizedTemplate,
125 } );
126
127 export default metaBoxTemplates;
128