import { __ } from '@wordpress/i18n'; import { speak } from '@wordpress/a11y'; import { SELECTORS } from './constants'; import API from './classes/api'; import ControlSync from './classes/control/control-sync'; import ControlStates from './classes/control/control-states'; import ControlMeta from './classes/control/control-meta'; import OptimizationDetails from './classes/optimization-details'; class OptimizationControl { constructor() { this.controlSyncRequestInProgress = false; this.init(); this.controlSync = new ControlSync(); } init() { this.initEventListeners(); setInterval( () => this.runStatusCheckLoop(), 5000 ); } async runStatusCheckLoop() { if ( this.controlSyncRequestInProgress ) { return; } this.controlSyncRequestInProgress = true; await this.controlSync.run(); this.controlSyncRequestInProgress = false; } initEventListeners() { document.addEventListener( 'click', ( e ) => this.handleOptimizeButtonClick( e ) ); document.addEventListener( 'click', ( e ) => this.handleReoptimizeButtonClick( e ) ); document.addEventListener( 'click', ( e ) => this.handleRestoreButtonClick( e ) ); document.addEventListener( 'click', ( e ) => this.handleOptimizationDetailsOpen( e ) ); document.addEventListener( 'click', ( e ) => this.handleOptimizationDetailsClick( e ) ); } async handleOptimizeButtonClick( e ) { if ( ! e.target.closest( `${ SELECTORS.optimizeButtonSelector }, ${ SELECTORS.tryAgainOptimizeButtonSelector }` ) ) { return; } speak( __( 'Optimization is in progress', 'image-optimization' ), 'assertive' ); const controlWrapper = e.target.closest( SELECTORS.controlWrapperSelector ); const states = new ControlStates( controlWrapper ); states.renderLoading( 'optimize' ); try { controlWrapper.dataset.isFrozen = true; await API.optimizeSingleImage( { imageId: new ControlMeta( controlWrapper ).getImageId(), reoptimize: false, } ); } catch ( error ) { states.renderError( error ); } } async handleReoptimizeButtonClick( e ) { if ( ! e.target.closest( `${ SELECTORS.reoptimizeButtonSelector }, ${ SELECTORS.tryAgainReoptimizeButtonSelector }` ) ) { return; } speak( __( 'Reoptimizing is in progress', 'image-optimization' ), 'assertive' ); const controlWrapper = e.target.closest( SELECTORS.controlWrapperSelector ); const states = new ControlStates( controlWrapper ); states.renderLoading( 'reoptimize' ); try { controlWrapper.dataset.isFrozen = true; await API.optimizeSingleImage( { imageId: new ControlMeta( controlWrapper ).getImageId(), reoptimize: true, } ); } catch ( error ) { states.renderError( error ); } } async handleRestoreButtonClick( e ) { if ( ! e.target.closest( `${ SELECTORS.restoreButtonSelector }, ${ SELECTORS.tryAgainRestoreButtonSelector }` ) ) { return; } speak( __( 'Image restoring is in progress', 'image-optimization' ), 'assertive' ); const controlWrapper = e.target.closest( SELECTORS.controlWrapperSelector ); const states = new ControlStates( controlWrapper ); states.renderLoading( 'restore' ); try { controlWrapper.dataset.isFrozen = true; await API.restoreSingleImage( new ControlMeta( controlWrapper ).getImageId() ); } catch ( error ) { states.renderError( error ); } } async handleOptimizationDetailsOpen( e ) { if ( ! e.target.closest( `${ SELECTORS.optimizationDetailsButtonSelector }` ) ) { return; } const controlWrapper = e.target.closest( SELECTORS.controlWrapperSelector ); const imageId = new ControlMeta( controlWrapper ).getImageId(); try { OptimizationDetails.initModal(); OptimizationDetails.renderLoading(); const details = await API.getOptimizationDetails( imageId ); OptimizationDetails.openModal(); OptimizationDetails.renderData( imageId, details ); } catch ( error ) { OptimizationDetails.openModal(); OptimizationDetails.renderError( error.message ); } } async handleOptimizationDetailsClick( e ) { if ( ! e.target.closest( `${ SELECTORS.optimizationDetailsOptimizeButtonSelector }` ) ) { return; } const imageId = parseInt( e.target.dataset?.imageId, 10 ); await API.optimizeSingleImage( { imageId } ); const controlWrapper = document.querySelector( `.image-optimization-control[data-image-optimization-image-id="${ imageId }"]` ); if ( controlWrapper ) { new ControlStates( controlWrapper ).renderLoading( 'optimize' ); } OptimizationDetails.closeModal(); } } export default OptimizationControl; { "name": "woocommerce/product-image", "title": "Product Image", "description": "Display the main product image.", "category": "woocommerce-product-elements", "attributes": { "showProductLink": { "type": "boolean", "default": true }, "showSaleBadge": { "type": "boolean", "default": true }, "saleBadgeAlign": { "type": "string", "default": "right" }, "imageSizing": { "type": "string", "default": "single" }, "productId": { "type": "number", "default": 0 }, "isDescendentOfQueryLoop": { "type": "boolean", "default": false }, "isDescendentOfSingleProductBlock": { "type": "boolean", "default": false }, "width": { "type": "string" }, "height": { "type": "string" }, "scale": { "type": "string", "default": "cover" }, "aspectRatio": { "type": "string" } }, "supports": { "interactivity": { "clientNavigation": true }, "html": false, "__experimentalBorder": { "radius": true, "__experimentalSkipSerialization": true }, "typography": { "fontSize": true, "__experimentalSkipSerialization": true }, "spacing": { "margin": true, "padding": true }, "dimensions": { "aspectRatio": true, "__experimentalSkipSerialization": true }, "email": true }, "selectors": { "root": ".wp-block-woocommerce-product-image.wc-block-components-product-image, .wp-block-woocommerce-product-image .wc-block-components-product-image" }, "ancestor": [ "woocommerce/all-products", "woocommerce/single-product", "woocommerce/product-template", "core/post-template" ], "usesContext": [ "imageId", "postId", "query", "queryId" ], "keywords": [ "WooCommerce" ], "textdomain": "woocommerce", "apiVersion": 3, "$schema": "https://schemas.wp.org/trunk/block.json" } Commentaires pour Les Filles du Thé https://les-filles-du-the.com Apprenez facilement à choisir, préparer et déguster votre Thé ! Thu, 21 Jul 2022 10:19:47 +0000 hourly 1 Commentaires sur Souvenir d’un Gyokuro chez Ippodo à Kyoto par Juliette des Filles du Thé par emilie https://les-filles-du-the.com/souvenir-dun-gyokuro-chez-ippodo-kyoto-par-juliette-des-filles-du-the/#comment-1993 Wed, 14 Apr 2021 12:30:32 +0000 http://les-filles-du-the.com/?p=1053#comment-1993 Bonjour et pour celle qui aimerai gouter ce thé sans pouvoir aller au japon, vous pouvez aussi vous le procurer à la boutique Midori sur Strasbourg ^^ (seul revendeur officiel de ce thé), il est super bon ce thé, moi j’adore en boire.

]]>
Commentaires sur 2 ASTUCES POUR MIEUX GÉRER SON STOCK DE THÉ par Lucie Moreau https://les-filles-du-the.com/2-astuces-pour-mieux-gerer-son-stock-de-the/#comment-1937 Tue, 26 Jan 2021 10:08:34 +0000 https://les-filles-du-the.com/?p=2529#comment-1937 Merci pour les conseils pour mieux gérer son stock de thé. J’aimerais bien acheter du thé en vrac, mais ne sais pas combien il me faut. Bien à savoir que je peux multiplier les infusions et les utiliser jusqu’à 4 fois dans la même journée. Je dois donc pas commander autant de thé que je pensais.

]]>
Commentaires sur Que boire le matin pour avoir la même forme qu’Antoine Griezmann ? par Juliette et Mylène https://les-filles-du-the.com/que-boire-le-matin-pour-avoir-la-meme-forme-quantoine-griezmann/#comment-1755 Mon, 06 Apr 2020 14:36:11 +0000 http://les-filles-du-the.com/?p=915#comment-1755 En réponse à Jeremie.

Merci pour cette info ! 🙂

]]>
Commentaires sur Que boire le matin pour avoir la même forme qu’Antoine Griezmann ? par Jeremie https://les-filles-du-the.com/que-boire-le-matin-pour-avoir-la-meme-forme-quantoine-griezmann/#comment-1749 Wed, 25 Mar 2020 14:39:26 +0000 http://les-filles-du-the.com/?p=915#comment-1749 Hello,
Merci pour cet article ! Pour info, le maté Kraus n’est pas du maté vert mais du maté affiné. La principale différence étant que le maté vert est un peu amer, tandis que le maté affiné a un goût beaucoup plus fort. Une info que j’ai lu sur un article du blog de La Bombilla. Je vous le laisse ici pour ceux qui veulent en savoir plus à ce propos -> https://labombilla.fr/blogs/bombiblog/mate-vert-difference-mate-traditionnel
Ciao !

]]>
Commentaires sur Comment faire son Thé Glacé Maison ? par Pizza Gourmet https://les-filles-du-the.com/comment-faire-son-the-glace-maison/#comment-1196 Tue, 17 Apr 2018 16:54:34 +0000 http://les-filles-du-the.com/?p=1082#comment-1196 Avec ou sans patates ?

]]>
Commentaires sur Définition d’un Mauvais Thé par les Filles du Thé ! par René https://les-filles-du-the.com/definition-dun-mauvais-the-par-les-filles-du-the/#comment-1025 Fri, 09 Feb 2018 20:08:29 +0000 http://les-filles-du-the.com/?p=1301#comment-1025 Bonjour, peut-on dire qu’un thé est gras? Et serait-ce un effet de rondeur comme certain café ou le vin?

]]>
Commentaires sur Les Secrets de Fabrication du Thé Mojito signé Les Filles du Thé ! par Juliette et Mylène https://les-filles-du-the.com/les-secrets-de-fabrication-du-the-mojito-signe-les-filles-du-the/#comment-791 Thu, 03 Aug 2017 14:02:30 +0000 http://les-filles-du-the.com/?p=2178#comment-791 En réponse à Diane.

Merci Diane pour ton commentaire et ton compliment !
A très bientôt

]]>
Commentaires sur Les Secrets de Fabrication du Thé Mojito signé Les Filles du Thé ! par Diane https://les-filles-du-the.com/les-secrets-de-fabrication-du-the-mojito-signe-les-filles-du-the/#comment-790 Thu, 03 Aug 2017 13:15:55 +0000 http://les-filles-du-the.com/?p=2178#comment-790 Super idée pour l’été ! Et facile en plus!

]]>
Commentaires sur Le goût du gras… une nouvelle saveur ! Peut-on la retrouver dans le Thé ? Ou peut-elle aller se « Gras Thé » ? par Clôture Carnaval d'articles "Mission: Détox" : "Nouveaux regards sur les matières grasses" https://les-filles-du-the.com/le-gout-du-gras-une-nouvelle-saveur-peut-on-la-retrouver-dans-le-the-ou-peut-elle-aller-se-gras-the/#comment-716 Tue, 23 May 2017 07:46:14 +0000 http://les-filles-du-the.com/?p=2109#comment-716 […] Oui ! je veux lire l'article de Mylène : Le goût du gras… une nouvelle saveur… […]

]]>
Commentaires sur Le goût du gras… une nouvelle saveur ! Peut-on la retrouver dans le Thé ? Ou peut-elle aller se « Gras Thé » ? par Juliette et Mylène https://les-filles-du-the.com/le-gout-du-gras-une-nouvelle-saveur-peut-on-la-retrouver-dans-le-the-ou-peut-elle-aller-se-gras-the/#comment-714 Sun, 21 May 2017 20:49:11 +0000 http://les-filles-du-the.com/?p=2109#comment-714 En réponse à Hervé RV.

Merci à toi Hervé pour ton commentaire, comme je l’ai stipulé, il s’agit vraiment d’une sensation très légère dans le thé.

]]>