• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Tasty Daily Home

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

Tasty Daily Home

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

Moroccan Spiced Chicken Briouats

Jump to Recipe·Print Recipe

If you’re looking for a delicious and impressive appetizer that will wow your friends and family, then these Moroccan Spiced Chicken Briouats are just the ticket! These crispy pastry triangles are filled with tender chicken, aromatic spices, and fresh herbs, making them a delightful treat that’s perfect for any occasion. Whether it’s a busy weeknight, a family gathering, or a festive party, these briouats are sure to be a hit!

Moroccan Spiced Chicken Briouats image 2

What makes this recipe truly special is not just the bold flavors but also how easy it is to prepare. With just a few simple steps, you can create a platter of mouthwatering bites that are as pleasing to the eyes as they are to the palate.

Moroccan Spiced Chicken Briouats image 3
Moroccan Spiced Chicken Briouats image 4

Why You’ll Love This Recipe

  • Quick to make: In less than an hour, you can have these golden bites ready for serving!
  • Full of flavor: The blend of spices makes every bite an explosion of taste.
  • Family-friendly: Kids and adults alike will love these savory treats.
  • Make-ahead option: Prepare them in advance and bake right before serving for convenience.
  • Versatile serving options: Pair with your favorite dips like harissa or yogurt for an extra flavor boost.

Ingredients You’ll Need

These Moroccan Spiced Chicken Briouats come together with simple, wholesome ingredients that you can easily find at your local grocery store. Here’s what you’ll need:

For the Filling

  • 2 cups cooked shredded chicken (breast or thigh)
  • 1 small onion, finely chopped
  • 2 tablespoons olive oil
  • 2 garlic cloves, minced
  • 1 teaspoon ground cumin
  • 1 teaspoon paprika
  • 1/2 teaspoon ground ginger
  • 1/2 teaspoon cinnamon
  • Salt and pepper to taste
  • 2 tablespoons chopped fresh parsley
  • 2 tablespoons chopped fresh coriander

For the Pastry

  • 8 phyllo sheets or brick pastry
  • 1 egg yolk (for sealing)
  • 2 tablespoons melted butter or neutral oil (for brushing)
  • Dried mint or parsley flakes (for garnish)

Variations

One of the best things about these briouats is their flexibility! You can easily customize them to suit different tastes or dietary needs.

  • Swap the protein: Use shredded turkey or even chickpeas for a vegetarian twist.
  • Add some heat: Toss in some chili flakes or diced jalapeños for an extra spicy kick.
  • Herb infusion: Experiment with other herbs like dill or mint for unique flavor profiles.
  • Cheesy delight: Add crumbled feta cheese into the filling for a creamy surprise!

How to Make Moroccan Spiced Chicken Briouats

Step 1: Sauté the Aromatics

In a skillet, heat olive oil over medium heat. Add the finely chopped onion and minced garlic. Sauté until translucent, about 3-4 minutes. This step is crucial as it enhances the sweetness of the onions and brings out the rich aroma of garlic.

Step 2: Season the Filling

Stir in your cooked shredded chicken along with cumin, paprika, ginger, cinnamon, salt, and pepper. Cook everything together for another 3-4 minutes until well combined. This is where all those wonderful spices infuse into the chicken, creating layers of flavor that make each briouat so delectable.

Step 3: Prepare the Pastry Sheets

Once your filling has cooled slightly, cut phyllo or brick sheets into strips about 3 inches wide. Working with phyllo can be tricky since it’s delicate; be gentle while cutting to ensure it stays intact.

Step 4: Assemble the Briouats

Place a spoonful of filling at one end of each strip and fold it into triangles like a flag until fully sealed. Brush the end with egg yolk to secure it tightly. This technique not only seals in all that flavorful goodness but also gives your briouats an appealing shape.

Step 5: Bake Until Golden

Arrange your triangles on a baking tray lined with parchment paper and brush lightly with melted butter or oil. Bake them in a preheated oven at 375°F (190°C) for about 20-25 minutes until they turn golden brown and crisp. Keep an eye on them; this is when they transform into irresistible golden bites!

Step 6: Garnish and Serve

Once baked, sprinkle some dried mint or parsley flakes over your warm briouats before serving. They’re best enjoyed hot alongside dips such as harissa or yogurt — perfect for sharing with loved ones!

Pro Tips for Making Moroccan Spiced Chicken Briouats

To ensure your Moroccan Spiced Chicken Briouats turn out perfectly crispy and flavorful, here are some handy tips to keep in mind:

  • Keep phyllo covered: Always cover the phyllo sheets with a damp cloth when not in use. This prevents them from drying out and becoming brittle.

  • Don’t overfill: Use a moderate amount of filling for each briouat. Overfilling can make it difficult to seal and may cause them to burst during baking.

  • Brush generously: Make sure to brush the phyllo with enough melted butter or oil. This not only enhances flavor but also contributes to that beautiful, golden-brown color.

  • Experiment with seasonings: While the spices listed are traditional, don’t hesitate to add your own twist. A pinch of cayenne or some lemon zest can elevate the flavors even further.

  • Serve immediately: For the best texture, serve the briouats fresh out of the oven. They are irresistibly crispy when warm!

How to Serve Moroccan Spiced Chicken Briouats

Presenting your Moroccan Spiced Chicken Briouats beautifully will enhance their appeal and make your gathering even more special. Here are some serving suggestions:

Garnishes

  • Chopped fresh herbs: A sprinkle of fresh parsley or coriander on top adds a vibrant touch and freshness.
  • Lemon wedges: Providing lemon wedges on the side allows guests to squeeze some tangy juice over the briouats for an extra burst of flavor.

Side Dishes

  • Couscous salad: A light couscous salad with diced cucumbers, tomatoes, and a lemon vinaigrette complements the rich flavors of the briouats while adding a refreshing crunch.

  • Moroccan carrot salad: This sweet and spicy salad made with grated carrots, raisins, and warm spices provides a delightful contrast to the savory chicken filling.

  • Hummus: A creamy hummus served with pita bread or vegetable sticks makes for an excellent dip alongside your briouats, enhancing their flavor profile.

  • Roasted vegetables: A medley of roasted zucchini, bell peppers, and eggplant drizzled with olive oil brings color and nutritional balance to your meal.

Make Ahead and Storage

This Moroccan Spiced Chicken Briouats recipe is fantastic for meal prep! You can easily make a batch ahead of time, making it perfect for busy weeknights or gatherings.

Storing Leftovers

  • Allow the briouats to cool completely before storing.
  • Place them in an airtight container in the refrigerator.
  • They can be stored for up to 3 days.

Freezing

  • Freeze briouats before baking for optimal freshness.
  • Arrange them in a single layer on a baking sheet and freeze until solid.
  • Transfer frozen briouats to a freezer-safe bag or container; they can last for up to 2 months.

Reheating

  • For best results, reheat in the oven at 375°F (190°C) for about 10-15 minutes until crispy.
  • Alternatively, you can microwave them, but this may result in a softer texture.

FAQs

Can I use chicken thighs instead of chicken breast for Moroccan Spiced Chicken Briouats?

Yes! Chicken thighs will add more moisture and richness to your briouats. Just ensure they’re cooked and shredded before mixing with the spices.

How do I make Moroccan Spiced Chicken Briouats gluten-free?

You can substitute phyllo pastry with gluten-free alternatives like rice paper or gluten-free wraps, ensuring they are pliable enough to fold.

What dips pair well with Moroccan Spiced Chicken Briouats?

These briouats are delicious with yogurt-based dips, garlic sauce, or even a spicy harissa sauce. Choose one that complements the flavors!

How long does it take to prepare Moroccan Spiced Chicken Briouats?

The total time is about 50 minutes, which includes both preparation and cooking. It’s a quick yet impressive dish!

Final Thoughts

I hope you find joy in making these Moroccan Spiced Chicken Briouats! They’re not just a delightful treat but also a wonderful way to share bold flavors with friends and family. Give this recipe a try, and let the aromatic spices take you on a culinary journey. Happy cooking!

Print

Moroccan Spiced Chicken Briouats

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Moroccan Spiced Chicken Briouats are a delicious and impressive appetizer that will delight your guests at any gathering. These crispy pastry triangles are filled with tender chicken, aromatic spices, and fresh herbs, offering a burst of flavor in every bite. Quick to make and perfect for sharing, these briouats can be prepared ahead of time and baked just before serving. Pair them with your favorite dips for an extra touch of indulgence. Whether it’s a busy weeknight or a festive celebration, Moroccan Spiced Chicken Briouats are sure to be the highlight of your table.

  • Author: Chef Adrian Vale
  • Prep Time: 20 minutes
  • Cook Time: 25 minutes
  • Total Time: 45 minutes
  • Yield: Approximately 12 servings 1x
  • Category: Appetizer
  • Method: Baking
  • Cuisine: Moroccan

Ingredients


Scale
  • 2 cups cooked shredded chicken
  • 1 small onion, finely chopped
  • 2 tablespoons olive oil
  • 2 garlic cloves, minced
  • 1 teaspoon ground cumin
  • 1 teaspoon paprika
  • 1/2 teaspoon ground ginger
  • 1/2 teaspoon cinnamon
  • Salt and pepper to taste
  • 2 tablespoons chopped fresh parsley
  • 2 tablespoons chopped fresh coriander
  • 8 phyllo sheets or brick pastry
  • 1 egg yolk (for sealing)
  • 2 tablespoons melted butter or neutral oil (for brushing)
  • Dried mint or parsley flakes (for garnish)


Instructions

  1. In a skillet over medium heat, sauté the chopped onion and minced garlic in olive oil until translucent (3-4 minutes).
  2. Add cooked shredded chicken along with spices and herbs; stir well and cook for another 3-4 minutes.
  3. Cut phyllo sheets into strips. Place a spoonful of filling at one end of each strip, folding into triangles until sealed.
  4. Arrange on a baking tray, brush with melted butter or oil, and bake at 375°F (190°C) for 20-25 minutes until golden brown.
  5. Garnish with dried mint or parsley flakes before serving.

Nutrition

  • Serving Size: 1 serving
  • Calories: 90
  • Sugar: 0g
  • Sodium: 150mg
  • Fat: 6g
  • Saturated Fat: 1g
  • Unsaturated Fat: 5g
  • Trans Fat: 0g
  • Carbohydrates: 7g
  • Fiber: 1g
  • Protein: 4g
  • Cholesterol: 15mg

Did you make this recipe?

Share a photo and tag us — we can’t wait to see what you’ve made!

window.trCommon={“minRating”:6,”ajaxurl”:”https:\/\/www.tastydailyhome.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”dbb73bf681″,”postId”:4086};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}

if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}

const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}

e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};

document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);

(function(){

var bothEquals = function( d1, d2, D ) {
var ret = 0;
if (d1<=D) {
ret++;
}
if (d2<=D) {
ret++;
}
return ret === 2;
};

var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2d2){d2=D+1;}else {d1=D+1;}break}else if(xD){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-AD){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(“%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D”));

window.tastyRecipesFormatAmount = function(amount, el) {
if ( parseFloat( amount ) === parseInt( amount ) ) {
return amount;
}
var roundType = ‘frac’;
if (typeof el.dataset.amountShouldRound !== ‘undefined’) {
if (‘false’ !== el.dataset.amountShouldRound) {
if ( ‘number’ === el.dataset.amountShouldRound ) {
roundType = ‘number’;
} else if (‘frac’ === el.dataset.amountShouldRound) {
roundType = ‘frac’;
} else if (‘vulgar’ === el.dataset.amountShouldRound) {
roundType = ‘vulgar’;
} else {
roundType = ‘integer’;
}
}
}
if (‘number’ === roundType) {
amount = Number.parseFloat(amount).toPrecision(2);
} else if (‘integer’ === roundType) {
amount = Math.round(amount);
} else if (‘frac’ === roundType || ‘vulgar’ === roundType) {
var denom = 8;
if (typeof el.dataset.unit !== ‘undefined’) {
var unit = el.dataset.unit;
if ([‘cups’,’cup’,’c’].includes(unit)) {
denom = 4;
if (0.125 === amount) {
denom = 8;
}
if (“0.1667″ === Number.parseFloat( amount ).toPrecision(4)) {
denom = 6;
}
}
if ([‘tablespoons’,’tablespoon’,’tbsp’].includes(unit)) {
denom = 2;
}
if ([‘teaspoons’,’teaspoon’,’tsp’].includes(unit)) {
denom = 8;
}
}
var amountArray = frac.cont( amount, denom, true );
var newAmount = ”;
if ( amountArray[1] !== 0 ) {
newAmount = amountArray[1] + ‘/’ + amountArray[2];
if (‘vulgar’ === roundType) {
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {
newAmount = vulgar;
}
});
}
}
if ( newAmount ) {
newAmount = ‘ ‘ + newAmount;
}
if ( amountArray[0] ) {
newAmount = amountArray[0] + newAmount;
}
amount = newAmount;
}
return amount;
};

window.tastyRecipesUpdatePrintLink = () => {

const printButton = document.querySelector( ‘.tasty-recipes-print-button’ );

if ( ! printButton ) {
return;
}

const printURL = new URL( printButton.href );
const searchParams = new URLSearchParams( printURL.search );

const unitButton = document.querySelector( ‘.tasty-recipes-convert-button-active’ );
const scaleButton = document.querySelector( ‘.tasty-recipes-scale-button-active’ );

let unit = ”;
let scale = ”;

if ( unitButton ) {
unit = unitButton.dataset.unitType;
searchParams.delete(‘unit’);
searchParams.set( ‘unit’, unit );
}

if ( scaleButton ) {
scale = scaleButton.dataset.amount;
searchParams.set( ‘scale’, scale );
}

const paramString = searchParams.toString();
const newURL = ” === paramString ? printURL.href : printURL.origin + printURL.pathname + ‘?’ + paramString;
const printLinks = document.querySelectorAll( ‘.tasty-recipes-print-link’ );

printLinks.forEach( ( el ) => {
el.href = newURL;
});

const printButtons = document.querySelectorAll( ‘.tasty-recipes-print-button’ );
printButtons.forEach( ( el ) => {
el.href = newURL;
});
};

document.addEventListener( ‘DOMContentLoaded’, () => {

if ( ! window.location.href.includes( ‘/print/’ ) ) {
return;
}

const searchParams = new URLSearchParams( window.location.search );

const unit = searchParams.get( ‘unit’ );
const scale = searchParams.get( ‘scale’ );

if ( unit && ( ‘metric’ === unit || ‘usc’ === unit ) ) {
document.querySelector( ‘.tasty-recipes-convert-button[data-unit-type=”‘ + unit + ‘”]’ ).click();
}

if ( scale && Number(scale) > 0 ) {
document.querySelector( ‘.tasty-recipes-scale-button[data-amount=”‘ + Number(scale) + ‘”]’ ).click();
}
});
}());

(function(){
var buttonClass = ‘tasty-recipes-scale-button’,
buttonActiveClass = ‘tasty-recipes-scale-button-active’,
buttons = document.querySelectorAll(‘.tasty-recipes-scale-button’);
if ( ! buttons ) {
return;
}

buttons.forEach(function(button){
button.addEventListener(‘click’, function(event){
event.preventDefault();
var recipe = event.target.closest(‘.tasty-recipes’);
if ( ! recipe ) {
return;
}
var otherButtons = recipe.querySelectorAll(‘.’ + buttonClass);
otherButtons.forEach(function(bt){
bt.classList.remove(buttonActiveClass);
});
button.classList.add(buttonActiveClass);

var scalables = recipe.querySelectorAll(‘span[data-amount]’);
var buttonAmount = parseFloat( button.dataset.amount );
scalables.forEach(function(scalable){
if (typeof scalable.dataset.amountOriginalType === ‘undefined’
&& typeof scalable.dataset.nfOriginal === ‘undefined’) {
if (-1 !== scalable.innerText.indexOf(‘/’)) {
scalable.dataset.amountOriginalType = ‘frac’;
}
if (-1 !== scalable.innerText.indexOf(‘.’)) {
scalable.dataset.amountOriginalType = ‘number’;
}
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (-1 !== scalable.innerText.indexOf(vulgar)) {
scalable.dataset.amountOriginalType = ‘vulgar’;
}
});
if (typeof scalable.dataset.amountOriginalType !== ‘undefined’) {
scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;
}
}
var amount = parseFloat( scalable.dataset.amount ) * buttonAmount;
amount = window.tastyRecipesFormatAmount(amount, scalable);
if ( typeof scalable.dataset.unit !== ‘undefined’ ) {
if ( ! scalable.classList.contains(‘nutrifox-quantity’) ) {
if ( ! scalable.classList.contains(‘nutrifox-second-quantity’) ) {
amount += ‘ ‘ + scalable.dataset.unit;
}
}
}
scalable.innerText = amount;
});

var nonNumerics = recipe.querySelectorAll(‘[data-has-non-numeric-amount]’);
nonNumerics.forEach(function(nonNumeric){
var indicator = nonNumeric.querySelector(‘span[data-non-numeric-label]’);
if ( indicator ) {
nonNumeric.removeChild(indicator);
}
if ( 1 !== buttonAmount ) {
indicator = document.createElement(‘span’);
indicator.setAttribute(‘data-non-numeric-label’, true);
var text = document.createTextNode(‘ (x’ + buttonAmount + ‘)’);
indicator.appendChild(text);
nonNumeric.appendChild(indicator);
}
});

window.tastyRecipesUpdatePrintLink();
});
});
}());

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});

window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}

this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );

setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );

const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}

this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}

const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );

this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );

},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};

window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );

xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}

failure( xhr );
};

xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();

for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};

window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;

this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}

window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}

if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );

// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );

if ( ! data.count ) {
return;
}

const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}

const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}

if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}

const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}

const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}

const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}

const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}

const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}

// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;

// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;

this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}

const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}

if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}

const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

« Previous Post
That's amore! cheesy BREAD BOWL PIZZA DIP!
Next Post »
Sweet Corn Risotto

If you enjoyed this…

Dark Chocolate Raspberry Cheesecake: Indulge in a Decadent Dessert Delight

Dark Chocolate Raspberry Cheesecake: Indulge in a Decadent Dessert Delight

Honey Mustard Chicken Salad with Avocado, Bacon & Goat Cheese

Honey Mustard Chicken Salad with Avocado, Bacon & Goat Cheese

Spanish Churro-Inspired Pancakes: A Breakfast Delight!

Spanish Churro-Inspired Pancakes: A Breakfast Delight!

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
  • About
  • Contact
  • DISCLAIMER
  • Homepage
  • PRIVACY POLICY
  • Recipe Index
  • TERMS AND CONDITIONS

© 2026 Tasty Daily Home · All Rights Reserved · Created by Chef Adrian Vale · About · Privacy Policy · Terms & Conditions · Disclaimer · Contact