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

Simple Daily Eats

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

Simple Daily Eats

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

Steak Salad

Jump to Recipe·Print Recipe

If you’re looking for a meal that feels special yet is simple enough for a weeknight, this Steak Salad is just the ticket! Juicy marinated flat iron steak paired with roasted potatoes and fresh greens brings together comfort and freshness in every bite. It’s perfect for family gatherings, casual dinners with friends, or even a satisfying lunch prep for the week ahead!

Steak Salad image 2

This recipe not only satisfies those cravings but also offers a delightful balance of flavors and textures. The homemade ranch dressing adds a creamy touch that’s hard to resist, making this dish a favorite across many kitchens.

Steak Salad image 3
Steak Salad image 4

Why You’ll Love This Recipe

  • Quick to prepare: With just 30 minutes of prep time, you can have a delicious dinner on the table in no time.
  • Family-friendly: Everyone will love the combination of hearty steak, crispy potatoes, and vibrant greens.
  • Make-ahead convenience: Marinating the steak overnight enhances the flavor and allows you to enjoy less stress during busy evenings.
  • Flavor-packed: The blend of fresh herbs and homemade ranch dressing elevates this salad to something truly special.
  • Versatile dish: Perfect as a main course or as part of a buffet spread; it fits right in at any occasion!

Ingredients You’ll Need

Let’s gather some simple, wholesome ingredients that come together beautifully in this Steak Salad. You’ll find everything you need for a flavorful and satisfying meal right here!

For the Marinade

  • 1/2 cup olive oil
  • 1/4 cup apple cider vinegar
  • 1 tablespoon kosher salt
  • 5 cloves garlic (minced)
  • 1 pound flat iron steak (or flank steak)

For the Roasted Potatoes

  • 1 pound red potatoes (cut into small wedges)
  • 2 tablespoons olive oil
  • 1 teaspoon dill (fresh, freeze dried, or dried)
  • 1 teaspoon parsley (fresh, freeze dried, or dried)
  • 1 teaspoon chives (fresh, freeze dried, or dried)
  • 1/2 teaspoon kosher salt
  • 1/2 teaspoon freshly ground pepper

For the Salad

  • 8 ounces baby greens
  • 2 ears corn
  • 8 ounces cherry tomatoes (quartered or halved)
  • 1/2 cup green onions (thinly sliced)
  • 1/2 cup ranch dressing

Variations

This Steak Salad is wonderfully flexible! Here are some fun ways to switch things up based on your preferences:

  • Swap the protein: Try using grilled chicken or tofu instead of steak for different flavor profiles while keeping it hearty.
  • Add more veggies: Toss in bell peppers, cucumbers, or avocado for extra crunch and nutrition.
  • Make it spicy: Drizzle some hot honey over your salad for an exciting sweet-heat kick!
  • Change up the dressing: Experiment with different dressings like balsamic vinaigrette or tahini sauce if ranch isn’t your favorite.

How to Make Steak Salad

Step 1: Marinate the Steak

To marinate the steak, combine all marinade ingredients—olive oil, apple cider vinegar, kosher salt, and minced garlic—in a large resealable plastic bag. Add the flat iron steak, squeeze out all air from the bag before sealing it tightly. Pop it in the fridge to marinate for at least 2 hours; overnight is even better! This step infuses the meat with flavor and helps tenderize it.

Step 2: Roast the Potatoes

Next up are those delicious roasted potatoes! In a bowl, toss together your potato wedges with olive oil, dill, parsley, chives, kosher salt, and freshly ground pepper until well-coated. Spread them out on a parchment-lined baking sheet in a single layer. Bake these beauties in a preheated oven at 400°F for about an hour. Stir occasionally to get all sides nicely browned.

Step 3: Grill the Corn

While those potatoes are roasting away, let’s get that corn ready! Grill two ears over high heat until they’re perfectly charred—turning them often ensures they cook evenly without burning. Once done, cut off those golden kernels from the cob; they add such sweetness to our salad!

Step 4: Grill the Steak

Now it’s time to grill your marinated steak! Sear it over high heat on either a grill or griddle until it reaches an internal temperature of about 130°F for medium doneness. Remember to turn it only once after getting those lovely grill marks! Once cooked to perfection, let it rest on a cutting board for at least 10-15 minutes before slicing thinly against the grain.

Step 5: Assemble Your Salad

Finally, let’s bring this glorious dish together! In a large bowl or platter, toss together baby greens with cherry tomatoes and green onions. Add ranch dressing to taste—mix it all up so every bite is coated with deliciousness! Alternatively, arrange everything artfully on a platter if you want to impress at dinner parties. Serve immediately alongside some warm garlic bread for an irresistible meal!

Pro Tips for Making Steak Salad

To ensure your steak salad turns out perfectly every time, consider these helpful tips!

  • Marinate Longer for Flavor: Allowing the steak to marinate overnight enhances its flavor and tenderness. The longer it soaks in the marinade, the more delicious it will be.

  • Use a Meat Thermometer: To achieve the perfect doneness, invest in a meat thermometer. This takes the guesswork out of cooking, ensuring your steak is cooked just right.

  • Rest the Steak: Letting the grilled steak rest after cooking allows the juices to redistribute. This results in a juicier and more flavorful slice.

  • Mix Greens for Texture: Combine different types of greens like arugula and spinach for varied textures and flavors. This adds depth to your salad and makes it visually appealing.

  • Serve Chilled Corn: After grilling, let the corn cool slightly before adding it to your salad. Chilled corn provides a refreshing crunch that contrasts beautifully with warm ingredients.

How to Serve Steak Salad

Presenting your delicious steak salad can enhance both its appeal and enjoyment—here’s how to do it right!

Garnishes

  • Fresh Herbs: Sprinkle fresh herbs like parsley or cilantro over the top for a burst of color and flavor.
  • Lemon Wedges: Serve with lemon wedges on the side to add a zesty brightness that complements the rich flavors of the dish.

Side Dishes

  • Garlic Bread: Crispy garlic bread is perfect for soaking up any leftover dressing or juices from the salad.
  • Grilled Asparagus: Lightly seasoned grilled asparagus adds a nice crunch and earthy flavor that pairs well with steak.
  • Quinoa Salad: A refreshing quinoa salad with cucumber, tomatoes, and lemon vinaigrette offers a nutritious contrast to the heavier elements of the dish.
  • Roasted Brussels Sprouts: Caramelized roasted Brussels sprouts bring a delightful sweetness that balances out the savory profile of your steak salad.

Make Ahead and Storage

This Steak Salad is perfect for meal prep, allowing you to enjoy a flavorful dish throughout the week without spending too much time in the kitchen.

Storing Leftovers

  • Store leftover steak salad in an airtight container in the refrigerator.
  • Consume within 3-4 days for optimal freshness.
  • Keep the dressing separate until ready to serve to maintain crispness.

Freezing

  • It’s best to freeze the marinated steak before cooking if you plan to make it ahead.
  • Cooked potatoes and corn can also be frozen, but the fresh greens and dressing should be added just before serving.
  • Wrap individual portions tightly in plastic wrap or use freezer-safe containers.

Reheating

  • To reheat, thaw any frozen components in the refrigerator overnight.
  • Warm up steak gently on a grill or skillet over low heat until heated through; avoid overcooking.
  • Serve with freshly tossed greens and dressing for the best taste.

FAQs

Can I use a different cut of meat for my Steak Salad?

Certainly! While flat iron steak is delicious, flank steak or sirloin can also work well. Just be mindful of cooking times as they may vary slightly.

How can I customize my Steak Salad?

There are endless possibilities! You can add your favorite vegetables like bell peppers or cucumbers, switch up the dressing with a vinaigrette, or even include grains like quinoa for added texture.

What is the best way to serve Steak Salad?

For an impressive presentation, arrange sliced steak over a bed of baby greens and colorful veggies. Drizzle with ranch dressing just before serving for maximum flavor!

Final Thoughts

This Steak Salad truly stands out as a delightful combination of flavors and textures, making it a fantastic choice for any occasion. I hope you enjoy making this recipe as much as I do! Gather your loved ones around the table and savor every bite—happy cooking!

Print

Steak Salad

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Indulge in a delicious Steak Salad that perfectly balances juicy marinated beef, crispy roasted potatoes, and vibrant fresh greens. This meal is simple enough for a weeknight yet feels special enough for family gatherings or casual dinners with friends. The homemade ranch dressing adds a creamy touch that enhances every bite, making this dish a beloved favorite. Ideal for meal prep, you can enjoy it throughout the week with minimal effort. Whether served as a main course or part of a buffet spread, this versatile salad is sure to impress.

  • Author: Sarah Mitchell
  • Prep Time: 30 minutes
  • Cook Time: 60 minutes
  • Total Time: 1 hour 30 minutes
  • Yield: Serves 4
  • Category: Main
  • Method: Grilling/Roasting
  • Cuisine: American

Ingredients


Scale

  • 1 pound flat iron steak
  • 1/2 cup olive oil
  • 1/4 cup apple cider vinegar
  • 1 tablespoon kosher salt
  • 5 cloves garlic (minced)
  • 1 pound red potatoes (cut into small wedges)
  • 2 tablespoons olive oil
  • 1 teaspoon dill (fresh, freeze dried, or dried)
  • 1 teaspoon parsley (fresh, freeze dried, or dried)
  • 1 teaspoon chives (fresh, freeze dried, or dried)
  • 1/2 teaspoon kosher salt
  • 1/2 teaspoon freshly ground pepper
  • 8 ounces baby greens
  • 2 ears corn
  • 8 ounces cherry tomatoes (quartered or halved)
  • 1/2 cup green onions (thinly sliced)
  • 1/2 cup ranch dressing

Instructions

  1. Marinate the steak with olive oil, apple cider vinegar, kosher salt, and minced garlic for at least 2 hours, preferably overnight.
  2. Toss potato wedges with olive oil and seasonings; roast in the oven at 400°F for about an hour, stirring occasionally.
  3. Grill corn until charred and remove kernels from the cob.
  4. Grill marinated steak until desired doneness; let rest before slicing thinly.
  5. Assemble the salad by tossing together baby greens, tomatoes, green onions, and ranch dressing.

Nutrition

  • Serving Size: 1 generous plate (350g)
  • Calories: 590
  • Sugar: 3g
  • Sodium: 680mg
  • Fat: 36g
  • Saturated Fat: 8g
  • Unsaturated Fat: 24g
  • Trans Fat: 0g
  • Carbohydrates: 31g
  • Fiber: 5g
  • Protein: 38g
  • Cholesterol: 95mg

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.simpledailyeats.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”37e219e1ea”,”postId”:2798};
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
Soft Strawberry Cheesecake Cookies - Sweet & Creamy Bites
Next Post »
Mediterranean Steak Bowl Recipe

If you enjoyed this…

Greek Cabbage Salad - Lahanosalata (vinegar coleslaw)

Greek Cabbage Salad – Lahanosalata (vinegar coleslaw)

Triple Berry Cheesecake Fruit Salad

Triple Berry Cheesecake Fruit Salad

Lemon Cheesecake Delight Recipe is a must-try dessert!

Lemon Cheesecake Delight Recipe is a must-try dessert!

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
Chili-Lime Quinoa Black Bean Salad with Corn

Chili-Lime Quinoa Black Bean Salad with Corn

Garlic Butter Beef Bites with Potatoes

Garlic Butter Beef Bites with Potatoes

Mediterranean Bean Salad

Mediterranean Bean Salad

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

© 2026 Simple Daily Eats · All Rights Reserved · Created with heart by Sarah Mitchell · About · Privacy Policy · Terms & Conditions · Disclaimer · Affiliate Disclosure · Contact