• 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 / Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes

Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes

April 6, 2026 by JenniferHayes

Jump to Recipe·Print Recipe

If you’re looking for a dish that brings comfort and joy to your dinner table, then you’ve stumbled upon the right recipe! This Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes is not just a meal; it’s an experience. Perfect for busy weeknights or family gatherings, this recipe combines savory and sweet flavors in a way that will have everyone asking for seconds. Trust me, once you try this dish, it’ll quickly become a cherished favorite in your home.

Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes image 2

Imagine the aroma of honey-infused BBQ chicken wafting through your kitchen while creamy, garlicky potatoes elevate the whole experience. It’s deliciousness on a plate, making it ideal for any occasion—whether it’s a casual Friday night or a special family celebration.

Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes image 3
Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes image 4

Why You’ll Love This Recipe

  • Quick and Easy: This dish comes together in just about an hour, making it perfect for those evenings when time is tight but flavor is non-negotiable.
  • Family-Friendly: With its irresistible combination of sweet and savory flavors, it’s a hit with both kids and adults alike!
  • Comfort Food at Its Best: The creamy garlic Parmesan potatoes are the ultimate sidekick to the honey BBQ chicken, creating a satisfying meal that warms the soul.
  • Make-Ahead Option: You can prep the chicken and potatoes ahead of time, so all you need to do is pop them in the oven when you’re ready to eat.
  • Endless Customization: Feel free to adapt the ingredients to suit your tastes or dietary needs—this recipe is as flexible as it is delicious!

Ingredients You’ll Need

Gathering wholesome ingredients is part of the fun! For this delightful Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes recipe, you’ll be using simple staples that pack a punch of flavor.

For the Chicken

  • 4 pieces bone-in, skin-on chicken thighs (About 2 lbs.)
  • 1 cup BBQ sauce
  • 1/4 cup honey
  • 1 tablespoon olive oil
  • 1 teaspoon garlic powder
  • 1 teaspoon smoked paprika
  • to taste salt
  • to taste pepper

For the Potatoes

  • 2 lbs small Yukon Gold potatoes
  • 1/2 cup heavy cream
  • 1/2 cup grated Parmesan cheese
  • 4 cloves garlic, minced
  • 2 tablespoons unsalted butter
  • to taste salt
  • to taste pepper
  • optional Fresh parsley for garnish

Variations

This recipe is wonderfully adaptable and can be customized to suit different tastes or dietary preferences. Here are some fun variations to consider:

  • Swap the protein: Use boneless chicken breasts or even tofu for a plant-based twist!
  • Make it lighter: Substitute heavy cream with cashew cream or Greek yogurt for a healthier version without sacrificing flavor.
  • Add veggies: Toss in some steamed broccoli or green beans alongside the potatoes for an extra serving of vegetables.
  • Spice it up: Incorporate some cayenne pepper or chili flakes into the marinade for those who love a little heat!

How to Make Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes

Step 1: Preheat Your Oven

Start by preheating your oven to 400°F (200°C). This ensures that once your chicken is ready to go in, it’ll cook evenly and come out perfectly golden brown.

Step 2: Prepare the Marinade

In a mixing bowl, whisk together the BBQ sauce, honey, olive oil, garlic powder, smoked paprika, salt, and pepper. This flavorful mixture will not only coat your chicken but also infuse it with that delightful sweet and smoky taste we all love.

Step 3: Coat the Chicken

Place your chicken thighs in a baking dish and pour that gorgeous honey BBQ mixture over them. Make sure each piece gets coated well—it’s all about maximizing that flavor as they bake!

Step 4: Bake Until Perfect

Slide your baking dish into the preheated oven and let those thighs bake for about 35-40 minutes. You want them to reach an internal temperature of 165°F (75°C) while looking beautifully caramelized on top. It’ll be hard not to sneak bites during this time!

Step 5: Prepare Your Potatoes

While your chicken bakes away, peel those Yukon Gold potatoes and cut them into halves or quarters. Cooking them until tender will ensure they mash beautifully later on.

Step 6: Cook the Potatoes

Place your potato pieces into a saucepan covered with water. Add some salt and bring everything to a boil. Cook until they’re fork-tender—about 15-20 minutes should do it.

Step 7: Mash It Up

Drain your potatoes and return them to the saucepan. Add in heavy cream, grated Parmesan cheese, minced garlic, butter, salt, and pepper. Mash everything together until creamy; this step creates that dreamy texture that’s simply irresistible.

Step 8: Let It Rest

Once your chicken has finished baking, remove it from the oven and allow it to rest for a few minutes before serving. This helps retain its juiciness!

Step 9: Serve & Enjoy!

Finally, plate up your honey BBQ chicken alongside those creamy garlic Parmesan potatoes. Feel free to garnish with fresh parsley if you like—a little color never hurt anyone! Enjoy every delicious bite!

Pro Tips for Making Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes

To ensure your dish turns out perfectly, here are some helpful tips to keep in mind!

  • Choose the right chicken: Bone-in, skin-on chicken thighs are ideal because they remain juicy and flavorful while baking, ensuring a delightful eating experience.

  • Marinate for extra flavor: If you have time, let the chicken marinate in the honey BBQ mixture for at least an hour (or overnight) before baking. This allows the flavors to penetrate deeply into the meat.

  • Check the doneness: Use a meat thermometer to check that your chicken reaches an internal temperature of 165°F (75°C). This guarantees that it’s safe to eat and perfectly cooked.

  • Adjust the creaminess: For creamier potatoes, feel free to add more heavy cream or butter during mashing. It adds richness and enhances the overall texture.

  • Rest before serving: Let your chicken rest after baking for about 5 minutes. This helps the juices redistribute, making each bite succulent and tender.

How to Serve Honey Bbq Chicken & Creamy Garlic Parmesan Potatoes

Presenting your delicious Honey BBQ Chicken & Creamy Garlic Parmesan Potatoes can elevate your dining experience! Here are some ideas on how to showcase this comforting dish beautifully.

Garnishes

  • Fresh parsley: Chopped fresh parsley adds a vibrant color contrast and a hint of freshness that complements the rich flavors.
  • Lemon wedges: Providing lemon wedges on the side not only adds visual appeal but also offers a zesty kick when squeezed over the chicken.

Side Dishes

  • Steamed broccoli: The bright green color and crisp texture of steamed broccoli add a nutritious element while balancing out the rich flavors of your meal.
  • Garden salad: A simple salad with mixed greens, cherry tomatoes, and a light vinaigrette brings freshness and crunch to your plate.
  • Corn on the cob: Grilled or boiled corn on the cob makes for a sweet and savory side that pairs wonderfully with BBQ dishes.
  • Garlic bread: A slice of warm garlic bread is perfect for soaking up any leftover sauce from your plate, making it an indulgent addition to your meal.

Make Ahead and Storage

This Honey BBQ Chicken & Creamy Garlic Parmesan Potatoes recipe is perfect for meal prep, allowing you to enjoy delicious home-cooked meals throughout the week.

Storing Leftovers

  • Allow the chicken and potatoes to cool completely.
  • Store them in an airtight container in the refrigerator for up to 3 days.
  • Reheat portions as needed for quick lunches or dinners.

Freezing

  • For long-term storage, place cooled chicken and potatoes in freezer-safe containers.
  • Ensure you label them with the date and contents before sealing.
  • Freeze for up to 3 months. Thaw in the refrigerator overnight before reheating.

Reheating

  • For best results, reheat chicken in the oven at 350°F (175°C) until warmed through, about 15-20 minutes.
  • Microwave individual portions of potatoes until heated thoroughly, stirring occasionally.

FAQs

Can I use boneless chicken for Honey BBQ Chicken & Creamy Garlic Parmesan Potatoes?

Yes! Boneless chicken thighs or breasts can be substituted, but adjust cooking time as they may cook faster than bone-in cuts.

What should I serve with Honey BBQ Chicken & Creamy Garlic Parmesan Potatoes?

This dish pairs well with a fresh salad or steamed vegetables for a balanced meal.

How do I make Honey BBQ Chicken & Creamy Garlic Parmesan Potatoes healthier?

You can reduce the amount of honey in the BBQ sauce or use a low-sugar BBQ sauce. Additionally, consider using Greek yogurt instead of heavy cream for the potatoes.

Final Thoughts

I hope you find joy in making this Honey BBQ Chicken & Creamy Garlic Parmesan Potatoes recipe! It’s not only incredibly satisfying but also brings comfort to any meal. Enjoy this flavorful dish with your loved ones, and don’t hesitate to get creative with your own variations. Happy cooking!

Print

Honey BBQ Chicken & Creamy Garlic Parmesan Potatoes

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Indulge in the comforting flavors of Honey BBQ Chicken & Creamy Garlic Parmesan Potatoes—a dish that transforms any meal into a delightful experience. This recipe features juicy chicken thighs coated in a sweet and smoky honey BBQ glaze, paired with creamy garlic-infused mashed potatoes. Perfect for busy weeknights or family gatherings, this dish will quickly become a favorite at your dinner table. Enjoy the aromatic blend of flavors that will have everyone asking for seconds!

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

Ingredients


Scale

  • 4 bone-in, skin-on chicken thighs (about 2 lbs)
  • 1 cup BBQ sauce
  • 1/4 cup honey
  • 2 lbs small Yukon Gold potatoes
  • 1/2 cup heavy cream
  • 1/2 cup grated Parmesan cheese
  • 4 cloves garlic, minced
  • 1 tablespoon olive oil
  • 1 teaspoon garlic powder
  • 1 teaspoon smoked paprika
  • to taste salt
  • to taste pepper

Instructions

  1. Preheat your oven to 400°F (200°C).
  2. In a mixing bowl, whisk together BBQ sauce, honey, olive oil, garlic powder, smoked paprika, salt, and pepper.
  3. Coat chicken thighs in the marinade and place them in a baking dish.
  4. Bake for 35-40 minutes or until the internal temperature reaches 165°F (75°C).
  5. While the chicken bakes, boil halved Yukon Gold potatoes in salted water until tender (15-20 minutes).
  6. Drain potatoes and mash with heavy cream, Parmesan cheese, minced garlic, butter, salt, and pepper until creamy.
  7. Let chicken rest for a few minutes before serving alongside mashed potatoes.

Nutrition

  • Serving Size: 1 plate (approximately 300g)
  • Calories: 520
  • Sugar: 8g
  • Sodium: 820mg
  • Fat: 25g
  • Saturated Fat: 10g
  • Unsaturated Fat: 12g
  • Trans Fat: 0g
  • Carbohydrates: 56g
  • Fiber: 5g
  • Protein: 24g
  • Cholesterol: 100mg

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”:”d7adafd5db”,”postId”:1468};
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
Strawberry Iced Oatmeal Cookies Recipe
Next Post »
Keto Air Fryer Avocado Baked Egg

If you enjoyed this…

Mediterranean Quesadillas

Mediterranean Quesadillas

Hibiscus Lemon Bars

Hibiscus Lemon Bars

Pistachio Muffins Recipe

Pistachio Muffins Recipe

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

Powered by
►
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
►
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
►
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
►
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
►
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by