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; Brownies au Pu Er, une recette qui rime avec bien être ! | Les Filles du Thé
unnamed

Brownies au Pu Er, une recette qui rime avec bien être !

Bonjour à vous, nos très chers Ami(e)s Thé !

brownies-puer-les-filles-du-the

Dans cette recette, une partie du chocolat est remplacée par le Pu Er, ce qui explique la relation que nous faisons avec le bien être !

Il s’agit d’une recette inspirée de notre amie Béa, vous pouvez retrouver des recettes gourmandes, équilibrées et subtilement mise en scène. Tous nos sens sont en éveil !  Retrouvez là sur Facebook en tapant : Sweet béatitude.

Dans la plupart de nos recettes, nous vous donnerons des conseils pour de petites parts individuelles: nous préférons en reprendre un plutôt que de couper nos créations en 2 !

Nous continuons sur notre lancée du sans gluten, sans protéines animales et le moins sucré possible avec des ingrédients d’origine végétale et bio.

Pour 12 petits Brownies, ou 6 Brownies

, voici les ingrédients en image…

unnamed

Et les marques utilisées pour cette recette toujours en images !

farine-sarrasin-les-filles-du-thecaroube-puer-les-filles-du-themascobado-puer-les-filles-di-themargarine-puer-les-filles-du-theoeuf-puer-les-filles-du-thenoix-jardin-puer-les-filles-du-thepuer-les-filles-du-thé

Les œufs de notre voisin et les noix de notre jardin !

La recette des Brownies au Pu Er

1. Au préalable, mixez le Pu Er en poudre très fine et mélangez-le dans 3 ou 4 cm d’eau bouillante afin de ne pas avoir de grumeaux.

puer-moulu-recette-les-filles-du-thepuer-infusé-les-filles-du-the-recettes

2. Mélangez la margarine avec le Mascobado.

recette-puer-les-filles-du-the

3. Ajoutez les 2 œufs.

etape-trois-les-filles-du-the-pu-er

4. Puis la farine de sarrasin et la caroube et enfin le pu er infusé.

etape-une-recette-les-filles-du-the-puer

5. la pâte aurait pu être encore plus noire, nous avons eu la main légère sur le pu er  !

6. Nous avons ajouté une demie noix sur le dessus de 6 Brownies au Pu Er. Nous vous laissons le soin de décorer vos créations comme bon vous semble !

7. Faites cuire, selon votre four et la taille de vos brownies, environ 9 à 12 minutes à 180°C afin que le centre ne soit pas totalement cuit pour plus de fondant.

presentation-recette-puer-les-filles-du-thetemps-cuisson-puer-les-filles-du-the

brownies-the-puer-les-filles-du-the

C’est prêt, vous n’avez plus qu’à déguster avec un oolong peu fermenté comme un Tie Guan Yin, ou un Jade de Dong Ding !

Belle pause bien être les ami(e)s Thé !

Les Filles du Thé

Laisser un commentaire