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; Comment faire son Thé Glacé Bio et Maison ? | Les Filles du Thé
the-glace-recette-les-filles-du-the

Comment faire son Thé Glacé Maison ?

Bonjour à toutes et à tous !

Voici aujourd’hui, nous vous proposons de vous rafraîchir avec la recette pour 1 litre de Thé Glacé !

Thé ou infusion, tout est possible !

Ingrédients dont vous aurez besoin pour optimiser la préparation et le gout de votre Thé Glacé Maison

the-glace-recette-les-filles-du-the

– 1L d’eau peu minéralisée ou filtrée ( Mont Roucous, Volvic, MontCalm ) J’ai déjà essayé avec d’autres eaux et le résultat en terme de gout et de couleur est complètement différent.

– 10 g d’un Thé vert ou noir, un mélange floral ou un Rooibos aussi, tout est vraiment possible et fonction de vos gouts et envies du moment.

Ustensiles

brake-ustensiles-les-filles-du-the

La baignoire n’est pas indispensable et Joy, ma chienne coupée en 2 par la bouteille non plus !

– votre bouilloire à température variable

– un entonnoir

– une passette

– un minuteur

– 2 bouteilles dont une en verre

La recette !

bouteille-verre-les-filles-du-the

1) Déposer les 10 g de Thé ou mélange floral dans votre bouteille en verre. Il s’agit de Pomme d’Amour que vous pouvez retrouver sur notre e-boutique en cliquant ici !

infusion-a-chaud-les-filles-du-the (2)2) Faire chauffer l’eau à la température indiquée sur votre sachet de Thé.

Pomme D’Amour, c’est 95 °C.

3) Verser l’eau chaude sur les feuilles de sorte à ce qu’elles soient  recouvertes. Laissez les s’infuser pendant le temps indiqué sur le sachet. Je les ai laissées s’infuser pendant 5 min.

infusion-a-froid-les-filles-du-the4) Remplissez la bouteille complètement avec le reste de Volvic ou de Mont Roucous. Laissez de nouveau infuser à froid pendant 30 minutes.

La couleur rouge de ce Mélange de Fruits est dû à la présence de fleurs d’hibiscus. Tout est totalement naturel  ! 

5) Filtrez le tout et mettez votre infusion ou votre thé glacé au réfrigérateur.

filtrage-les-filles-du-thefiltrer-les-filles-du-theinfusion-les-filles-du-therefrigerateur-les-filles-du-the

6) Dégustez à tout moment de la journée pour profiter de l’instant Thé glacé !

les-filles-du-the-recette-the-glace-pomme-damour

– avec ou sans glaçon !

– avec ou sans sucre !

– avec ou sans paille !

– avec ou sans personne !

– avec ou sans soleil !

– avec ou sans piscine !

– avec ou sans lunettes !

C’est vraiment comme vous le souhaitez !

Belles dégustations !

logo-les-filles-du-the

1 réflexion au sujet de « Comment faire son Thé Glacé Maison ? »

Laisser un commentaire