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

Family Table Ideas

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

Family Table Ideas

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact
Cheat Meal / Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners

Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners

May 31, 2026 by JenniferHayes

Jump to Recipe·Print Recipe

If you’re looking for a meal that’s bursting with flavor and perfect for both game day and busy weeknights, you’ve come to the right place! These Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners are a personal favorite of mine. They combine tender shredded chicken with fluffy rice and fresh toppings, giving you that perfect spicy kick in every bite. Whether it’s a family gathering or just a cozy dinner at home, this dish is sure to please everyone at the table.

Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners image 2

What I love most about these bowls is how easily they can be customized. You can whip them up in no time, making them an ideal choice when life gets hectic. Plus, they’re great for meal prep—just make a big batch and enjoy them all week long!

Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners image 3
Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners image 4

Why You’ll Love This Recipe

  • Quick and easy: With just 40 minutes from start to finish, these bowls fit perfectly into your busy schedule.
  • Family-friendly appeal: Everyone loves the combination of flavors here—it’s a hit with both kids and adults!
  • Meal prep friendly: Make a big batch ahead of time, and you have delicious meals ready for lunches or dinners throughout the week.
  • Customizable toppings: Feel free to mix and match ingredients based on what you have on hand or your taste preferences.
  • Packed with flavor: The spicy buffalo sauce paired with fresh ingredients makes each bowl utterly satisfying.

Ingredients You’ll Need

These Buffalo Chicken Bowls use simple, wholesome ingredients that you probably already have in your pantry. Together, they create a deliciously balanced meal that’s perfect for any occasion!

  • 1 pound boneless, skinless chicken breasts
  • 1 cup buffalo sauce (store-bought or homemade)
  • 1 tablespoon olive oil
  • 1 teaspoon garlic powder
  • 1 teaspoon onion powder
  • Salt and pepper to taste
  • 2 cups cooked rice (white, brown, or cauliflower rice)
  • 1 cup shredded cheddar cheese
  • 1 cup chopped celery
  • 1 cup cherry tomatoes, halved
  • 1 avocado, sliced
  • 1/2 cup ranch dressing or blue cheese dressing
  • Fresh parsley, chopped (for garnish)

Variations

One of the best things about this recipe is its flexibility! Here are some fun variations to keep things exciting:

  • Swap the protein: Use shredded rotisserie chicken or even tofu for a vegetarian twist!
  • Change the grain: Try quinoa or barley instead of rice for added texture and nutrition.
  • Add different veggies: Incorporate bell peppers or corn for extra crunch and color.
  • Make it spicy-sweet: Drizzle some hot honey on top before serving for that delightful spicy-sweet combo.

How to Make Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners

Step 1: Preheat Your Oven

Start by preheating your oven to 400°F (200°C). This ensures that your chicken gets nice and cooked through while developing that lovely roasted flavor.

Step 2: Prepare the Chicken

In a large mixing bowl, combine the chicken breasts with olive oil, garlic powder, onion powder, salt, and pepper. Toss everything until the chicken is well coated. This step is crucial as it builds flavor right from the beginning!

Step 3: Add Buffalo Sauce

Pour half of the buffalo sauce over the chicken. Make sure each piece is coated evenly; this will create those mouthwatering flavors we all crave in buffalo dishes.

Step 4: Bake the Chicken

Line a baking sheet with parchment paper or aluminum foil. Place your chicken breasts on it, ensuring they’re spaced evenly apart. Bake for about 20-25 minutes until the internal temperature reaches 165°F (75°C). This step allows your chicken to become tender and juicy!

Step 5: Shred the Chicken

Once baked, remove the chicken from the oven and let it rest for about five minutes. Shred it using two forks or chop into bite-sized pieces before tossing it with the remaining buffalo sauce. This adds an extra layer of flavor!

Step 6: Cook Your Rice

While your chicken is baking, cook your rice according to package instructions if using white or brown rice. If you prefer cauliflower rice, sauté it in olive oil for 5-7 minutes until tender. Fluffing it up nicely will make every bite light and fluffy.

Step 7: Assemble Your Bowls

In each bowl, place a generous scoop of rice as your base. Top it off with shredded buffalo chicken—feel free to add more buffalo sauce if you’re feeling adventurous!

Step 8: Add Fresh Toppings

Sprinkle chopped celery over the chicken for crunchiness followed by halved cherry tomatoes and sliced avocado on top. These fresh ingredients add brightness to every bite.

Step 9: Drizzle Dressing

Finish off by drizzling ranch dressing (or blue cheese dressing if you prefer) over everything before garnishing with freshly chopped parsley. This adds not just flavor but also a beautiful pop of color!

Pro Tips for Making Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners

Making Buffalo Chicken Bowls can be a breeze with these helpful tips!

  • Use pre-cooked chicken: If you’re short on time, rotisserie chicken works great! Just shred it and toss it with buffalo sauce for a quick shortcut.
  • Adjust the spice level: If you prefer a milder taste, start with half the buffalo sauce and mix in more gradually to find your perfect balance.
  • Prep ingredients ahead of time: Chop veggies and cook rice in advance to save time on busy weeknights. This way, assembly is quick and easy!
  • Experiment with toppings: Don’t hesitate to add your favorite toppings like sliced jalapeños or corn for an extra kick or sweetness.
  • Make it a meal prep star: These bowls are perfect for meal prep! Store components separately in the fridge, and simply assemble when ready to eat.

How to Serve Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners

Presenting your Buffalo Chicken Bowls creatively can make mealtime even more fun! Here are some ideas on how to serve this delightful dish.

Garnishes

  • Chopped green onions: Add a pop of color and fresh flavor that complements the spicy chicken.
  • Crumbled tortilla chips: For a crunchy texture that contrasts beautifully with the creamy avocado and dressing.

Side Dishes

  • Crispy veggie sticks: Carrots, cucumbers, or bell peppers served with hummus make for a refreshing crunch alongside your bowls.
  • Mixed green salad: A simple side salad with vinaigrette helps balance the richness of the buffalo chicken while adding freshness.
  • Roasted sweet potatoes: Their natural sweetness pairs perfectly with the spiciness of the dish and adds wholesome nutrients.

Make Ahead and Storage

This Buffalo Chicken Bowl recipe is perfect for meal prep, allowing you to enjoy delicious and satisfying meals throughout the week with minimal effort.

Storing Leftovers

  • Store any leftover buffalo chicken bowls in airtight containers.
  • Keep them in the refrigerator for up to 3-4 days.
  • If separating components, store chicken, rice, and toppings separately to maintain freshness.

Freezing

  • Allow the buffalo chicken to cool completely before freezing.
  • Place portions in freezer-safe bags or containers, ensuring to remove as much air as possible.
  • Freeze for up to 2-3 months. Label with the date for easy reference.

Reheating

  • Thaw overnight in the refrigerator if frozen.
  • Reheat in the microwave until heated through, about 2-3 minutes.
  • For best results, reheat chicken in the oven at 350°F (175°C) for about 15-20 minutes.

FAQs

Can I make Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners in advance?

Yes! You can prepare the chicken and rice ahead of time and combine them just before serving. This makes it a great option for busy weeknights or game day gatherings.

What can I use instead of ranch dressing in Buffalo Chicken Bowls?

If you prefer a lighter option, try using Greek yogurt mixed with herbs or a dairy-free dressing. Both options will complement the buffalo flavor nicely.

How long do Buffalo Chicken Bowls last in the fridge?

Properly stored in an airtight container, they can last for 3-4 days in the refrigerator. Just remember to keep all components separate until you’re ready to enjoy!

Final Thoughts

I hope you find joy in making these Buffalo Chicken Bowls! They are not only full of flavor but also incredibly versatile. Whether it’s game day or a cozy weeknight dinner, this recipe is sure to delight everyone at your table. Enjoy every bite and don’t hesitate to share your experience!

Print

Buffalo Chicken Bowls

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Buffalo Chicken Bowls are a flavorful and satisfying meal that perfectly blends tender chicken, fluffy rice, and fresh toppings, making them ideal for both game day and busy weeknights. This recipe is not only quick and easy to prepare but also allows for customization based on your preferences or what you have on hand. With just 40 minutes from start to finish, these bowls are a crowd-pleaser that can be enjoyed at family gatherings or as a comforting dinner at home. The combination of spicy buffalo sauce with fresh ingredients delivers a delicious kick in every bite, ensuring that this dish will become a staple in your weekly meal rotation.

  • Author: JenniferHayes
  • Prep Time: 15 minutes
  • Cook Time: 25 minutes
  • Total Time: 40 minutes
  • Yield: Serves 4
  • Category: Main
  • Method: Baking
  • Cuisine: American

Ingredients


Scale

  • 1 pound boneless, skinless chicken breasts
  • 1 cup buffalo sauce (store-bought or homemade)
  • 2 cups cooked rice (white, brown, or cauliflower rice)
  • 1 tablespoon olive oil
  • 1 teaspoon garlic powder
  • 1 teaspoon onion powder
  • Salt and pepper to taste
  • 1 cup shredded cheddar cheese
  • 1 cup chopped celery
  • 1 cup cherry tomatoes, halved
  • 1 avocado, sliced
  • 1/2 cup ranch dressing or dairy-free dressing
  • Fresh parsley, chopped (for garnish)

Instructions

  1. Preheat oven to 400°F (200°C).
  2. In a large bowl, mix chicken with olive oil, garlic powder, onion powder, salt, and pepper.
  3. Pour half of the buffalo sauce over the chicken and coat evenly.
  4. Place chicken on a lined baking sheet and bake for 20-25 minutes until cooked through.
  5. Let chicken rest for five minutes, then shred and toss with remaining buffalo sauce.
  6. Cook rice as per package instructions; fluff before serving.
  7. Assemble bowls with rice as the base, topped with shredded chicken.
  8. Add chopped celery, halved cherry tomatoes, and sliced avocado.
  9. Drizzle with dressing and garnish with parsley.

Nutrition

  • Serving Size: 1 serving
  • Calories: 590
  • Sugar: 4g
  • Sodium: 950mg
  • Fat: 27g
  • Saturated Fat: 10g
  • Unsaturated Fat: 15g
  • Trans Fat: 0g
  • Carbohydrates: 56g
  • Fiber: 5g
  • Protein: 33g
  • Cholesterol: 85mg

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.familytableideas.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”57407fb51c”,”postId”:3631};
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 );
});

« Previous Post
Apple Pie Rice Krispie Treats
Next Post »
Apple Pie Tacos

If you enjoyed this…

Carrot Cake Cinnamon Rolls

Carrot Cake Cinnamon Rolls

Chimichurri Grilled Chicken Bowl with Garlic Sauce

Chimichurri Grilled Chicken Bowl with Garlic Sauce

10-Minute Peach & Burrata Salad

10-Minute Peach & Burrata Salad

Reader Interactions

Leave a Comment Cancel reply

Helpful comments include feedback on the post or changes you made.

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
  • About
  • Contact
  • Disclaimer
  • Homepage
  • Privacy Policy
  • Recipe Index
  • Terms and Conditions

© 2026 Family Table Ideas · All Rights Reserved · Created with heart by Jennifer Hayes · About · Privacy Policy · Terms & Conditions · Disclaimer · Affiliate Disclosure · Contact