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

Easy Cook Inspo

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

Easy Cook Inspo

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • Contact
  • About
Cheat Meal / Crispy Honey Mustard Smashed Potato Salad

Crispy Honey Mustard Smashed Potato Salad

February 2, 2026 by Kaylee

Jump to Recipe·Print Recipe

If you’re looking for a side dish that’s bursting with flavor and sure to impress, then this Crispy Honey Mustard Smashed Potato Salad is just what you need! It’s a delightful mix of crispy potatoes, tangy mustard, and sweet honey that creates a beautiful harmony of taste and texture. This salad is not only perfect for summer barbecues or holiday gatherings but also makes a great addition to busy weeknight dinners. You’ll find it easy to prepare and irresistible to eat!

Crispy Honey Mustard Smashed Potato Salad image 2

This recipe has quickly become one of my favorites because it manages to be both comforting and refreshing. The crispy potatoes are so satisfying, while the honey mustard dressing adds a zesty lift. Whether you’re serving it at a picnic or enjoying it at home, this salad will surely bring smiles all around.

Crispy Honey Mustard Smashed Potato Salad image 3
Crispy Honey Mustard Smashed Potato Salad image 4

Why You’ll Love This Recipe

  • Easy to prepare: With simple steps, this dish comes together in under an hour.
  • Family-friendly appeal: Everyone loves crispy potatoes, and the flavors are a hit with kids and adults alike!
  • Make-ahead convenience: This salad can be prepared ahead of time, making it perfect for potlucks or meal prep.
  • Deliciously versatile: Serve it warm or cold; it tastes great either way!
  • Nutritious ingredients: Packed with wholesome ingredients that not only taste good but make you feel good too.

Ingredients You’ll Need

For this Crispy Honey Mustard Smashed Potato Salad, you’ll need some simple, wholesome ingredients that create a delightful combination of flavors. Let’s gather everything you need!

For the Potatoes

  • 1 lb. petite gold potatoes
  • 2 tablespoons avocado oil
  • 1 pinch kosher salt
  • Cracked black pepper (few turns)

For the Dressing

  • ¼ cup extra virgin olive oil
  • 1.5 tablespoons apple cider vinegar
  • 1.5 tablespoons honey
  • 1 tablespoon whole grain mustard
  • 1 pinch kosher salt (to taste)

For the Mix-Ins

  • 1 shallot (finely diced)
  • 5-6 slices thick cut bacon (roughly chopped)
  • 1 tablespoon chives (chopped small)
  • 2 hard boiled eggs (sliced)

Variations

This recipe is wonderfully flexible! Here are some fun ways to customize your Crispy Honey Mustard Smashed Potato Salad.

  • Swap the protein: Try adding grilled chicken or chickpeas instead of bacon for a vegetarian option.
  • Add more veggies: Toss in some cherry tomatoes or spinach for an extra burst of color and nutrition.
  • Change up the herbs: Fresh dill or parsley can replace chives for a different flavor profile.
  • Make it creamy: Stir in some Greek yogurt or plant-based yogurt to give the salad a creamy texture.

How to Make Crispy Honey Mustard Smashed Potato Salad

Step 1: Prepare the Dressing

Start by combining the whole grain mustard, apple cider vinegar, honey, extra virgin olive oil, and a pinch of kosher salt in a mixing bowl. Whisk until all ingredients are well combined. This dressing is key—it brings all the flavors together beautifully!

Step 2: Cook the Potatoes

Preheat your oven to 450 degrees F. Clean the petite gold potatoes and place them in a pot. Cover with cold water so that it’s about 2 inches above the potatoes. Bring them to a boil and cook for about 15 minutes until fork-tender. Drain them well and transfer them into a mixing bowl. Toss with avocado oil, kosher salt, and cracked black pepper—this step ensures they’re perfectly seasoned before roasting.

Step 3: Roast for Crispiness

Line a baking tray with parchment paper and arrange your seasoned potatoes on it. Using the bottom of a sturdy cup or measuring cup, carefully smash each potato down gently but firmly—this creates those delicious crispy edges! Roast them in the oven for 20-25 minutes until they turn golden brown and crispy; you might even want to broil them for an additional 2-3 minutes for extra crunch.

Step 4: Prepare Your Mix-Ins

While your potatoes are roasting away, take this time to cook your bacon in a pan until crispy. Chop your chives, slice your hard-boiled eggs, and finely dice your shallots so everything’s ready when those potatoes come out of the oven.

Step 5: Combine Everything Together

Once you’ve pulled those beautiful roasted potatoes from the oven, quickly add in your diced shallots and crispy bacon while they’re still hot—this allows those flavors to meld perfectly! Drizzle over your prepared dressing and toss everything together until well-coated. Transfer this gorgeous mix into your serving dish and finish by garnishing with chopped chives, cracked black pepper, and sliced eggs.

Now you’re ready to serve up this delightful Crispy Honey Mustard Smashed Potato Salad! Enjoy every bite!

Pro Tips for Making Crispy Honey Mustard Smashed Potato Salad

Creating the perfect Crispy Honey Mustard Smashed Potato Salad is all about attention to detail, so here are some tips to ensure your dish shines!

  • Choose the Right Potatoes: Using petite gold potatoes offers a creamy texture that complements the crispy outside. Their naturally buttery flavor will enhance the overall taste of your salad.

  • Don’t Skip the Smash: Smashing the potatoes before roasting increases their surface area, allowing for more crispy edges. The contrast between crunchy and tender is what makes this dish truly special!

  • Adjust Seasoning to Taste: Adding a pinch of kosher salt at various stages can elevate flavors significantly. Taste as you go to ensure every bite bursts with flavor.

  • Let Them Roast Properly: Ensure your oven is preheated properly before roasting and give them enough time to turn golden brown. This step is vital for achieving that desirable crunch.

  • Dress Warm Potatoes: Tossing warm potatoes with the dressing allows them to absorb more flavor, making each bite delectable. It’s a small step that makes a big difference!

How to Serve Crispy Honey Mustard Smashed Potato Salad

Presentation can make your dish even more delightful! Here are some ideas on how to serve this colorful salad at your next gathering.

Garnishes

  • Chopped Fresh Herbs: A sprinkle of parsley or dill adds a fresh burst of color and flavor that complements the tangy dressing beautifully.
  • Extra Cracked Black Pepper: A few extra turns of cracked black pepper on top adds not only a touch of heat but also an appealing visual element.
  • Microgreens: These tiny greens can add a sophisticated touch and are packed with nutrients, making your salad look as good as it tastes.

Side Dishes

  • Grilled Vegetables: Brightly colored grilled veggies like bell peppers, zucchini, and asparagus bring vibrant flavors and textures, creating a well-rounded meal.
  • Quinoa Salad: A light quinoa salad mixed with cherry tomatoes, cucumber, and lemon vinaigrette offers a refreshing contrast to the richness of the potato salad.
  • Roasted Chicken Thighs: Juicy roasted chicken thighs seasoned with herbs provide protein that pairs perfectly with your potato salad without overpowering it.
  • Cucumber Yogurt Dip: This cooling dip made from plant-based yogurt mixed with cucumber and dill serves as a refreshing side that balances out the dish’s flavors.

With these tips and serving suggestions, you’re all set to impress family and friends with your delicious Crispy Honey Mustard Smashed Potato Salad. Enjoy every bite!

Make Ahead and Storage

This Crispy Honey Mustard Smashed Potato Salad is perfect for meal prep! You can easily make it ahead of time and enjoy the delightful flavors throughout the week.

Storing Leftovers

  • Allow the salad to cool completely before storing.
  • Transfer to an airtight container.
  • Store in the refrigerator for up to 3 days.
  • Keep the dressing separate if you want the potatoes to stay crispy.

Freezing

  • This potato salad is best enjoyed fresh, but if you need to freeze it:
  • Allow it to cool completely.
  • Place in a freezer-safe container, leaving some space for expansion.
  • Freeze for up to 1 month.
  • Thaw overnight in the refrigerator before serving.

Reheating

  • To reheat, place the salad in a preheated oven at 350°F until warmed through.
  • Alternatively, microwave in short bursts, stirring between intervals.
  • For extra crispiness, consider broiling for a few minutes after reheating.

FAQs

Here are some common questions about this delicious recipe!

Can I make Crispy Honey Mustard Smashed Potato Salad without bacon?

Absolutely! You can skip the bacon or replace it with a plant-based alternative like crispy chickpeas or mushrooms for added texture.

How do I keep my Crispy Honey Mustard Smashed Potato Salad crispy?

To maintain crispness, store the dressing separately and only drizzle it on just before serving. Enjoying it fresh out of the oven also helps!

What type of mustard works best for this potato salad?

Whole grain mustard adds a nice texture and depth of flavor, but you can also use Dijon or yellow mustard based on your preference.

Can I use other types of potatoes for this recipe?

Yes! While petite gold potatoes are great for their creamy texture, you can also try red potatoes or Yukon Golds for similar results.

How long does Crispy Honey Mustard Smashed Potato Salad last in the fridge?

Stored properly in an airtight container, this salad will stay fresh for about 3 days in the refrigerator.

Final Thoughts

I hope you find joy in creating this Crispy Honey Mustard Smashed Potato Salad! It’s not only a delicious side dish but also a fantastic way to bring people together around the dining table. Enjoy experimenting with flavors and textures that suit your taste. I can’t wait for you to try it—happy cooking!


CRITICAL: SEO Information Block
(YOU MUST include the entire SEO block below, precisely as formatted. Fill in the bracketed placeholders with ACTUAL content.)

Print

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

Crispy Honey Mustard Smashed Potato Salad

5 Stars 4 Stars 3 Stars 2 Stars 1 Star
No reviews


  • Author:
    Kaylee
  • Prep Time: 15 minutes

  • Cook Time: 30 minutes

  • Total Time: 45 minutes

  • Yield: Serves approximately 4

  • Category: Side Dish

  • Method: Baking

  • Cuisine: American

Print Recipe

Pin Recipe

const share_pin_buttons = document.getElementsByClassName( ‘share-pin button’ );
if ( share_pin_buttons ) {
for ( let share_key = 0; share_key {
e.stopPropagation();
window.open(e.target.dataset.href,’targetWindow’,’toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500′);
return false;
} );
}
}


Description

If you’re in search of a side dish that impresses with both flavor and presentation, look no further than this Crispy Honey Mustard Smashed Potato Salad. This delightful recipe combines tender, crispy petite gold potatoes with a zesty honey mustard dressing, creating an irresistible harmony of taste and texture. Perfect for summer barbecues, picnics, or busy weeknight dinners, this salad is not only easy to prepare but also incredibly versatile—enjoy it warm or cold! Your family and friends will love the comforting yet refreshing flavors with every bite.


Ingredients


Scale

  • 1 lb. petite gold potatoes
  • 2 tablespoons avocado oil
  • ¼ cup extra virgin olive oil
  • 1.5 tablespoons apple cider vinegar
  • 1.5 tablespoons honey
  • 1 tablespoon whole grain mustard
  • 1 shallot (finely diced)
  • Chopped chives (for garnish)


Instructions

  1. Preheat oven to 450°F.
  2. Boil the petite gold potatoes in salted water until fork-tender (about 15 minutes). Drain and toss with avocado oil, salt, and pepper.
  3. Smash each potato gently on a lined baking tray and roast for 20-25 minutes until golden brown.
  4. While roasting, mix dressing ingredients in a bowl: olive oil, apple cider vinegar, honey, whole grain mustard, and salt.
  5. Combine hot potatoes with diced shallots and drizzle dressing over them; toss until coated.
  6. Garnish with chopped chives before serving.



Nutrition

  • Serving Size: 1 cup (150g)
  • Calories: 210
  • Sugar: 5g
  • Sodium: 220mg
  • Fat: 9g
  • Saturated Fat: 1g
  • Unsaturated Fat: 7g
  • Trans Fat: 0g
  • Carbohydrates: 30g
  • Fiber: 4g
  • Protein: 3g
  • Cholesterol: 0mg

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.easycookinspo.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”d6999d9e8c”,”postId”:2457};
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
Sweet and Sour Chicken with a Sticky Glaze and Crispy Coating
Next Post »
Brown Butter Sugar Cookies

If you enjoyed this…

Chicken Pesto Pasta Recipe That’s Creamy, Easy, and Family-Approved

Chicken Pesto Pasta Recipe That’s Creamy, Easy, and Family-Approved

Vegan Enchilada Recipe

Vegan Enchilada Recipe

Pumpkin Cheesecake Bars with Gingersnap Crust

Pumpkin Cheesecake Bars with Gingersnap Crust

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
Copycat Crumbl Salted Caramel Cheesecake Cookies

Copycat Crumbl Salted Caramel Cheesecake Cookies

Crispy Chicken Ranch Snack Wrap – A Quick and Delicious Snack

Crispy Chicken Ranch Snack Wrap – A Quick and Delicious Snack

Mexican Street Corn Salad Recipe

  • About
  • Disclaimer
  • Terms and Conditions
  • Privacy Policy
  • Contact

© 2026 · © Easy Cook Inspo · All Rights Reserved · Created by Kaylee ·