• 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

Irresistible Sausage Baked Brie Appetizer Perfect for Gatherings

Jump to Recipe·Print Recipe

If you’re looking for a show-stopping appetizer that will impress your guests, then this Irresistible Sausage Baked Brie Appetizer Perfect for Gatherings is just what you need! This delightful dish combines creamy brie cheese with savory sausage, all wrapped in golden puff pastry. It’s perfect for everything from busy weeknights to festive family gatherings or even casual get-togethers with friends. Trust me, once you try it, you’ll be adding it to your favorites!

What makes this baked brie special is not just its amazing flavor but also how easy it is to prepare. You’ll find that everyone will be reaching for seconds, and you’ll love how simple it is to whip up!

Irresistible Sausage Baked Brie Appetizer Perfect

Why You’ll Love This Recipe

  • Quick and Easy: With just 15 minutes of prep time, you can have this appetizer ready in no time!
  • Crowd-Pleaser: The combination of flavors makes it a hit at any gathering, ensuring happy faces all around.
  • Versatile Ingredients: Use ingredients you likely already have on hand, making this recipe both practical and delicious.
  • Make-Ahead Friendly: Prepare it in advance and bake it right before serving for stress-free entertaining.
  • Customizable: Feel free to add your favorite herbs or spices to make the recipe your own!
Irresistible Sausage Baked Brie Appetizer Perfect

Ingredients You’ll Need

This recipe calls for simple and wholesome ingredients that come together beautifully. Let’s gather everything you need to create this mouthwatering appetizer!

For the Baked Brie

  • 1 round Brie cheese (sliced into ½ inch pieces)
  • 0.5 lb Sausage (Italian or breakfast style, casings removed)
  • 0.5 cup Onion (finely diced)
  • 1 clove Garlic (minced)
  • 1 tsp Fresh thyme (or ½ tsp dried)
  • 2 tbsp Fig jam (or apricot preserves, optional for a sweet note)
  • 1 sheet Puff pastry (thawed)
  • 1 egg (beaten, for egg wash)

For Serving

  • Crackers, baguette slices, or apple wedges

Variations

This recipe is wonderfully flexible! Here are some fun ideas to mix things up:

  • Swap the protein: Try using turkey sausage or a plant-based sausage alternative for a lighter version.
  • Add some spice: Incorporate red pepper flakes or chopped jalapeños for a kick of heat!
  • Experiment with cheeses: Swap out brie for camembert or goat cheese if you’re feeling adventurous.
  • Go sweet: Drizzle a little honey over the top before serving for an irresistible sweet touch.

How to Make Irresistible Sausage Baked Brie Appetizer Perfect for Gatherings

Step 1: Sauté the Filling

Start by heating a skillet over medium heat. Add the sausage and cook until browned. This step is crucial as browning adds depth of flavor. Once cooked, add in the diced onions and minced garlic. Sauté until they are translucent—this brings out their sweetness, enhancing the overall taste of your filling.

Step 2: Season It Up

Once your sausage mixture is nicely sautéed, stir in the fresh thyme. This herb adds an aromatic touch that elevates the dish. If you’re using fig jam or apricot preserves, now’s the time to mix them in! The sweet note balances perfectly with the savory sausage.

Step 3: Assemble the Brie

Preheat your oven according to puff pastry instructions. On a lightly floured surface, roll out your thawed puff pastry sheet. Place slices of brie in the center and then spoon your sausage mixture on top. Fold over the pastry edges carefully to enclose everything—this creates a beautiful package that will bake up golden brown.

Step 4: Bake It

Brush the outside of your pastry with beaten egg; this will give it that lovely golden color when baked. Place your assembled brie on a baking sheet lined with parchment paper and pop it in the oven! Baking until golden brown takes about 25 minutes—perfect timing to set up your serving platter.

Step 5: Serve Warm

Once baked, let it cool slightly before serving. Pair with crackers, baguette slices, or apple wedges for dipping. Enjoy every creamy bite of this delicious appetizer at your next gathering!

Pro Tips for Making Irresistible Sausage Baked Brie Appetizer Perfect for Gatherings

Creating the perfect Sausage Baked Brie is easier with a few handy tips!

  • Use room temperature ingredients: Allow your brie and puff pastry to sit at room temperature for about 30 minutes before starting. This ensures even baking and a beautifully melted cheese center.

  • Don’t overfill: While it may be tempting to pack in as much sausage and jam as possible, leaving some space allows the cheese to melt properly without overflowing, creating a delightful presentation.

  • Seal the pastry well: When wrapping the brie, make sure to pinch the puff pastry edges tightly. This prevents any leaks during baking and ensures a perfectly golden crust.

  • Brush generously with egg wash: Applying a good layer of beaten egg on top of the pastry not only gives it a rich color but also adds a beautiful sheen that makes your appetizer look irresistible.

  • Let it cool slightly before serving: Allowing the baked brie to rest for about 5 minutes after taking it out of the oven helps prevent burns and makes it easier to slice without losing all that melty goodness.

How to Serve Irresistible Sausage Baked Brie Appetizer Perfect for Gatherings

Presenting your Sausage Baked Brie beautifully can elevate your gathering and impress your guests!

Garnishes

  • Fresh herbs: Sprinkle some freshly chopped parsley or thyme on top for a pop of color and an aromatic touch.
  • Chili flakes: For those who enjoy a bit of heat, a light sprinkle of chili flakes can add an exciting kick.

Side Dishes

  • Crackers: A variety of crunchy crackers provide texture and contrast, balancing the creamy brie.
  • Baguette slices: Warm, toasted baguette slices are perfect for scooping up that gooey cheese.
  • Apple wedges: Fresh apple slices add a crisp sweetness that complements the savory flavors.
  • Vegetable sticks: Offer carrot or cucumber sticks for a refreshing crunch that lightens up the meal.
Irresistible Sausage Baked Brie Appetizer Perfect

Make Ahead and Storage

This Irresistible Sausage Baked Brie Appetizer is perfect for meal prep, making it ideal for gatherings where you want to save time without sacrificing flavor.

Storing Leftovers

  • Store any leftover baked brie in an airtight container in the refrigerator.
  • It is best consumed within 2-3 days for optimal freshness.
  • To reheat, follow the reheating instructions below.

Freezing

  • This appetizer can be prepped ahead of time and frozen unbaked.
  • Wrap the assembled brie tightly in plastic wrap and then foil to prevent freezer burn.
  • Freeze for up to 2 months; when ready to bake, let it thaw overnight in the refrigerator before baking.

Reheating

  • Preheat your oven to 350°F (175°C).
  • Place the baked brie on a baking sheet and cover lightly with aluminum foil.
  • Heat for about 10-15 minutes until warmed through.

FAQs

Can I make Irresistible Sausage Baked Brie Appetizer Perfect for Gatherings ahead of time?

Yes! You can prepare this appetizer in advance and either refrigerate or freeze it. Just remember to bake it fresh before serving!

What can I serve with Irresistible Sausage Baked Brie Appetizer Perfect for Gatherings?

This delicious appetizer pairs well with crackers, baguette slices, or fresh apple wedges. Feel free to get creative with your serving options!

Can I use a different type of cheese instead of brie?

Absolutely! While brie adds a creamy texture, you can substitute with camembert or even a soft goat cheese if preferred.

Final Thoughts

I hope you find joy in making this Irresistible Sausage Baked Brie Appetizer Perfect for Gatherings! It’s not just about the flavors; it’s about bringing people together and creating special moments. Enjoy every bite, and don’t hesitate to share your experience or variations. Happy cooking!

Print

Irresistible Sausage Baked Brie Appetizer

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

If you’re seeking an eye-catching appetizer that will wow your guests, look no further than this Irresistible Sausage Baked Brie Appetizer. This delightful dish features creamy brie cheese enveloped in savory sausage and wrapped in flaky puff pastry, creating a warm and indulgent treat that’s perfect for any occasion. With just a handful of simple ingredients and minimal prep time, you can impress your friends and family during casual get-togethers or festive celebrations alike. Whether served with crunchy crackers, fresh apple wedges, or warm baguette slices, this mouthwatering appetizer is sure to be a crowd-pleaser. Get ready to enjoy the rich flavors and delightful textures that make this dish a favorite at gatherings!

  • Author: Chef Adrian Vale
  • Prep Time: 15 minutes
  • Cook Time: 25 minutes
  • Total Time: 40 minutes
  • Yield: Serves approximately 6 people 1x
  • Category: Appetizer
  • Method: Baking
  • Cuisine: American

Ingredients


Scale
  • 1 round Brie cheese (sliced into ½ inch pieces)
  • 0.5 lb chicken sausage (Italian or breakfast style, casings removed)
  • 0.5 cup onion (finely diced)
  • 1 clove garlic (minced)
  • 1 tsp fresh thyme (or ½ tsp dried)
  • 2 tbsp fig jam (or apricot preserves, optional)
  • 1 sheet puff pastry (thawed)
  • 1 egg (beaten for egg wash)


Instructions

  1. Preheat your oven to 375°F (190°C).
  2. In a skillet over medium heat, cook the chicken sausage until browned. Add diced onion and minced garlic; sauté until softened.
  3. Stir in fresh thyme for flavor enhancement and remove from heat.
  4. Roll out the puff pastry on a floured surface. Layer half of the brie slices in the center.
  5. Spread fig jam over the brie, then top with the sausage mixture and remaining brie slices.
  6. Fold the pastry around the cheese, sealing it tightly, and brush the top with beaten egg.
  7. Bake for approximately 25 minutes or until golden brown.
  8. Allow to cool slightly before serving.

Nutrition

  • Serving Size: 1 serving
  • Calories: 290
  • Sugar: 3g
  • Sodium: 630mg
  • Fat: 19g
  • Saturated Fat: 10g
  • Unsaturated Fat: 9g
  • Trans Fat: 0g
  • Carbohydrates: 24g
  • Fiber: 1g
  • Protein: 7g
  • Cholesterol: 60mg

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”:”34ecdd0a45″,”postId”:180};
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
The Best Salted Caramel Pretzel Bark
Next Post »
Easy Homemade Meat Sauce

If you enjoyed this…

Flourless Pumpkin Muffins

Flourless Pumpkin Muffins

Hot Italian Sub Sliders

Hot Italian Sub Sliders

Refreshing Apple Cranberry Carrot Salad

Refreshing Apple Cranberry Carrot Salad

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