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

Quick Daily Dish

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

Quick Daily Dish

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

Philly Cheesesteak Bowls – Easy Low-Carb Dinner Idea

Jump to Recipe·Print Recipe

If you’re looking for a quick and delicious meal that packs a punch of flavor without the carbs, these Philly Cheesesteak Bowls – Easy Low-Carb Dinner Idea are just what you need! This recipe has become a favorite in my house because it takes all the classic elements of a Philly cheesesteak and turns them into an easy-to-make bowl. Perfect for busy weeknights or when you want to impress family and friends without spending hours in the kitchen.

Philly Cheesesteak Bowls – Easy Low-Carb Dinner Idea image 2

The combination of tender steak, sautéed bell peppers, and melty cheese is always a crowd-pleaser. Not to mention, they’re customizable and great for meal prep! You can whip these up in just 20 minutes, making them an ideal choice for any occasion.

Philly Cheesesteak Bowls – Easy Low-Carb Dinner Idea image 3
Philly Cheesesteak Bowls – Easy Low-Carb Dinner Idea image 4

Why You’ll Love This Recipe

  • Quick to make: This dish can be on the table in just 20 minutes, perfect for those hectic nights.
  • High-protein goodness: Packed with protein from the steak and cheese, these bowls will keep you feeling satisfied.
  • Family-friendly: Everyone loves the flavors of a cheesesteak, making it a hit with both kids and adults.
  • Versatile serving options: Pair it with cauliflower rice or mashed potatoes to suit your dietary preferences.
  • Simple ingredients: The recipe uses wholesome ingredients you likely already have on hand.

Ingredients You’ll Need

These Philly Cheesesteak Bowls come together using simple, wholesome ingredients that create comfort food magic. Here’s what you’ll need:

For the Steak and Veggies

  • 1 lb ribeye or sirloin steak, thinly sliced
  • 1 small onion, sliced
  • 1 green bell pepper, sliced
  • 1 red bell pepper, sliced
  • 2 cloves garlic, minced
  • 1 tbsp olive oil
  • 1 tsp Worcestershire sauce
  • 1 tsp salt (to taste)
  • 1 tsp black pepper (to taste)

For the Toppings

  • 1 cup shredded provolone or mozzarella cheese
  • Chopped parsley (for garnish)

For Serving

  • Cauliflower rice, mashed potatoes, or white rice

Variations

This recipe is wonderfully flexible, allowing you to mix things up based on what you have at home or your taste preferences. Here are some fun variations to try:

  • Swap the protein: Use chicken breast or even plant-based meat alternatives for a lighter version.
  • Add more veggies: Sneak in some mushrooms or spinach for extra nutrition and flavor.
  • Spice it up: Drizzle some hot honey over the top for a sweet and spicy twist that elevates each bite.
  • Make it vegan: Substitute steak with chickpeas or lentils and use vegan cheese for a plant-based delight.

How to Make Philly Cheesesteak Bowls – Easy Low-Carb Dinner Idea

Step 1: Cook the Steak

Heat olive oil in a skillet over medium-high heat. Add the sliced steak along with Worcestershire sauce, salt, and pepper. Searing the steak for about 3-4 minutes until browned locks in those delicious juices. Once nicely browned, remove from heat and set aside.

Step 2: Sauté the Veggies

In that same pan (don’t worry about washing it!), toss in your onions, bell peppers, and garlic. Cooking them for about 4-5 minutes allows their natural sweetness to shine through while softening their texture. This step is crucial because it adds depth to your dish!

Step 3: Assemble the Bowls

Now it’s time to bring everything together! Divide your choice of cauliflower rice, mashed potatoes, or white rice into bowls. Layer on that flavorful cooked steak along with those vibrant sautéed veggies.

Step 4: Melt the Cheese

Sprinkle shredded cheese generously over your warm ingredients and let it melt naturally—this will create that gooey cheesiness we all love! If you want an extra crispy finish, pop them under the broiler for just 1-2 minutes until bubbly.

Step 5: Garnish and Serve

Finish off your bowls with fresh chopped parsley for that pop of color and freshness. And there you have it—a delightful low-carb dinner that’s sure to satisfy everyone at your table! Enjoy every bite of these Philly Cheesesteak Bowls!

Pro Tips for Making Philly Cheesesteak Bowls – Easy Low-Carb Dinner Idea

Making delicious Philly Cheesesteak Bowls is a breeze with these helpful tips!

  • Slice meat thinly: Ensuring your steak is cut thinly allows for quicker cooking and a more tender texture, making each bite melt in your mouth.
  • Use high heat: Cooking the steak on medium-high heat will give it a nice sear, locking in juices and enhancing flavor.
  • Don’t overcrowd the pan: If you’re cooking in batches, avoid overcrowding the skillet to ensure even cooking and prevent steaming the ingredients.
  • Experiment with cheeses: While provolone and mozzarella are classic choices, trying out different cheeses like cheddar or pepper jack can add exciting new flavors to your bowls.
  • Let cheese melt naturally: Allowing the cheese to melt on top of the warm ingredients ensures it becomes gooey and perfectly integrated into every bite.

How to Serve Philly Cheesesteak Bowls – Easy Low-Carb Dinner Idea

Presenting your Philly Cheesesteak Bowls in an appealing way can elevate your dining experience. Here are some ideas:

Garnishes

  • Chopped green onions: These add a fresh crunch and vibrant color that complements the dish beautifully.
  • Sliced jalapeños: For those who enjoy a kick of heat, fresh jalapeños provide a spicy contrast to the rich flavors of the cheesesteak.

Side Dishes

  • Roasted broccoli: This nutritious side adds a delightful crunch and balances out the richness of the cheesesteak bowls.
  • Zucchini noodles: A low-carb alternative to pasta that soaks up flavors well while adding an extra veggie boost.
  • Crispy Brussels sprouts: Their charred edges bring a lovely depth of flavor that pairs wonderfully with savory steak.
  • Mixed green salad: A light salad with vinaigrette offers freshness and acidity, cutting through the richness of the meal.

Make Ahead and Storage

These Philly Cheesesteak Bowls are perfect for meal prep, allowing you to enjoy a delicious, low-carb dinner throughout the week. Here’s how to store and reheat them:

Storing Leftovers

  • Store in airtight containers in the refrigerator.
  • Consume within 3-4 days for optimal freshness.
  • Keep the cheese separate if you prefer it not to get too soft.

Freezing

  • Allow the bowls to cool completely before freezing.
  • Use freezer-safe containers or bags, removing as much air as possible.
  • They can be frozen for up to 2 months.

Reheating

  • For best results, thaw overnight in the fridge before reheating.
  • Microwave on medium power until heated through, stirring occasionally.
  • Alternatively, reheat in a skillet over medium heat until warmed, adding a splash of water if needed to revive moisture.

FAQs

Here are some common questions about Philly Cheesesteak Bowls that might help you out!

Can I make Philly Cheesesteak Bowls in advance?

Absolutely! These bowls are great for meal prepping. You can cook everything ahead of time and store them in portions for quick meals during the week.

What can I use instead of rice in Philly Cheesesteak Bowls?

You can use cauliflower rice, mashed potatoes, or white rice as a base. Each option provides a delicious and satisfying way to enjoy this easy low-carb dinner idea!

How do I make Philly Cheesesteak Bowls more flavorful?

To enhance the flavor, consider adding spices like smoked paprika or even jalapeños for some heat. Experiment with different cheese types too for varied tastes!

Final Thoughts

I hope you find joy in making these Philly Cheesesteak Bowls! They bring together so many wonderful flavors while keeping things low-carb and satisfying. Enjoy this easy dinner idea with your loved ones; it’s bound to become a favorite at your table. Happy cooking!

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

Philly Cheesesteak Bowls – Easy Low-Carb Dinner Idea

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Print Recipe

If you’re searching for a flavorful and satisfying meal that’s low in carbs, look no further than these Philly Cheesesteak Bowls! This quick and easy recipe transforms all the classic elements of a traditional Philly cheesesteak into a vibrant bowl that’s perfect for busy weeknights or impressing guests. Featuring tender steak, sautéed bell peppers, and gooey cheese, this dish is not only delicious but also highly customizable, making it a hit with everyone at the table. In just 20 minutes, you can enjoy a wholesome dinner that fits seamlessly into your healthy lifestyle.

  • Total Time:

    20 minutes
  • Yield:

    Serves 4

Ingredients


Scale
  • 1 lb ribeye or sirloin steak, thinly sliced
  • 1 small onion, sliced
  • 1 green bell pepper, sliced
  • 1 red bell pepper, sliced
  • 2 cloves garlic, minced
  • 1 tbsp olive oil
  • 1 tsp vinegar (substitute for Worcestershire sauce)
  • Salt and black pepper to taste
  • 1 cup shredded provolone or mozzarella cheese
  • Cauliflower rice, mashed potatoes, or white rice for serving


Instructions

  1. Heat olive oil in a skillet over medium-high heat. Add the sliced steak along with vinegar, salt, and pepper. Sear for about 3-4 minutes until browned. Remove from heat.
  2. In the same pan, add onions, bell peppers, and garlic. Sauté for about 4-5 minutes until softened.
  3. Assemble bowls with your chosen base (cauliflower rice, mashed potatoes, or white rice), layer with cooked steak and vegetables.
  4. Sprinkle cheese on top and let it melt naturally; optionally broil for an extra minute until bubbly.
  5. Garnish with chopped parsley and serve immediately.
  • Author: Nova
  • Prep Time: 10 minutes
  • Cook Time: 10 minutes
  • Category: Main
  • Method: Sautéing
  • Cuisine: American

Nutrition

  • Serving Size: 1 bowl (approx. 400g)
  • Calories: 550
  • Sugar: 4g
  • Sodium: 800mg
  • Fat: 32g
  • Saturated Fat: 14g
  • Unsaturated Fat: 18g
  • Trans Fat: 0g
  • Carbohydrates: 20g
  • Fiber: 6g
  • Protein: 45g
  • Cholesterol: 120mg

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.quickdailydish.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”ee983ce99b”,”postId”:3622};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}

if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}

const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}

e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};

document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);

(function(){

var bothEquals = function( d1, d2, D ) {
var ret = 0;
if (d1<=D) {
ret++;
}
if (d2<=D) {
ret++;
}
return ret === 2;
};

var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2d2){d2=D+1;}else {d1=D+1;}break}else if(xD){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-AD){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(“%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D”));

window.tastyRecipesFormatAmount = function(amount, el) {
if ( parseFloat( amount ) === parseInt( amount ) ) {
return amount;
}
var roundType = ‘frac’;
if (typeof el.dataset.amountShouldRound !== ‘undefined’) {
if (‘false’ !== el.dataset.amountShouldRound) {
if ( ‘number’ === el.dataset.amountShouldRound ) {
roundType = ‘number’;
} else if (‘frac’ === el.dataset.amountShouldRound) {
roundType = ‘frac’;
} else if (‘vulgar’ === el.dataset.amountShouldRound) {
roundType = ‘vulgar’;
} else {
roundType = ‘integer’;
}
}
}
if (‘number’ === roundType) {
amount = Number.parseFloat(amount).toPrecision(2);
} else if (‘integer’ === roundType) {
amount = Math.round(amount);
} else if (‘frac’ === roundType || ‘vulgar’ === roundType) {
var denom = 8;
if (typeof el.dataset.unit !== ‘undefined’) {
var unit = el.dataset.unit;
if ([‘cups’,’cup’,’c’].includes(unit)) {
denom = 4;
if (0.125 === amount) {
denom = 8;
}
if (“0.1667″ === Number.parseFloat( amount ).toPrecision(4)) {
denom = 6;
}
}
if ([‘tablespoons’,’tablespoon’,’tbsp’].includes(unit)) {
denom = 2;
}
if ([‘teaspoons’,’teaspoon’,’tsp’].includes(unit)) {
denom = 8;
}
}
var amountArray = frac.cont( amount, denom, true );
var newAmount = ”;
if ( amountArray[1] !== 0 ) {
newAmount = amountArray[1] + ‘/’ + amountArray[2];
if (‘vulgar’ === roundType) {
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {
newAmount = vulgar;
}
});
}
}
if ( newAmount ) {
newAmount = ‘ ‘ + newAmount;
}
if ( amountArray[0] ) {
newAmount = amountArray[0] + newAmount;
}
amount = newAmount;
}
return amount;
};

window.tastyRecipesUpdatePrintLink = () => {

const printButton = document.querySelector( ‘.tasty-recipes-print-button’ );

if ( ! printButton ) {
return;
}

const printURL = new URL( printButton.href );
const searchParams = new URLSearchParams( printURL.search );

const unitButton = document.querySelector( ‘.tasty-recipes-convert-button-active’ );
const scaleButton = document.querySelector( ‘.tasty-recipes-scale-button-active’ );

let unit = ”;
let scale = ”;

if ( unitButton ) {
unit = unitButton.dataset.unitType;
searchParams.delete(‘unit’);
searchParams.set( ‘unit’, unit );
}

if ( scaleButton ) {
scale = scaleButton.dataset.amount;
searchParams.set( ‘scale’, scale );
}

const paramString = searchParams.toString();
const newURL = ” === paramString ? printURL.href : printURL.origin + printURL.pathname + ‘?’ + paramString;
const printLinks = document.querySelectorAll( ‘.tasty-recipes-print-link’ );

printLinks.forEach( ( el ) => {
el.href = newURL;
});

const printButtons = document.querySelectorAll( ‘.tasty-recipes-print-button’ );
printButtons.forEach( ( el ) => {
el.href = newURL;
});
};

document.addEventListener( ‘DOMContentLoaded’, () => {

if ( ! window.location.href.includes( ‘/print/’ ) ) {
return;
}

const searchParams = new URLSearchParams( window.location.search );

const unit = searchParams.get( ‘unit’ );
const scale = searchParams.get( ‘scale’ );

if ( unit && ( ‘metric’ === unit || ‘usc’ === unit ) ) {
document.querySelector( ‘.tasty-recipes-convert-button[data-unit-type=”‘ + unit + ‘”]’ ).click();
}

if ( scale && Number(scale) > 0 ) {
document.querySelector( ‘.tasty-recipes-scale-button[data-amount=”‘ + Number(scale) + ‘”]’ ).click();
}
});
}());

(function(){
var buttonClass = ‘tasty-recipes-scale-button’,
buttonActiveClass = ‘tasty-recipes-scale-button-active’,
buttons = document.querySelectorAll(‘.tasty-recipes-scale-button’);
if ( ! buttons ) {
return;
}

buttons.forEach(function(button){
button.addEventListener(‘click’, function(event){
event.preventDefault();
var recipe = event.target.closest(‘.tasty-recipes’);
if ( ! recipe ) {
return;
}
var otherButtons = recipe.querySelectorAll(‘.’ + buttonClass);
otherButtons.forEach(function(bt){
bt.classList.remove(buttonActiveClass);
});
button.classList.add(buttonActiveClass);

var scalables = recipe.querySelectorAll(‘span[data-amount]’);
var buttonAmount = parseFloat( button.dataset.amount );
scalables.forEach(function(scalable){
if (typeof scalable.dataset.amountOriginalType === ‘undefined’
&& typeof scalable.dataset.nfOriginal === ‘undefined’) {
if (-1 !== scalable.innerText.indexOf(‘/’)) {
scalable.dataset.amountOriginalType = ‘frac’;
}
if (-1 !== scalable.innerText.indexOf(‘.’)) {
scalable.dataset.amountOriginalType = ‘number’;
}
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (-1 !== scalable.innerText.indexOf(vulgar)) {
scalable.dataset.amountOriginalType = ‘vulgar’;
}
});
if (typeof scalable.dataset.amountOriginalType !== ‘undefined’) {
scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;
}
}
var amount = parseFloat( scalable.dataset.amount ) * buttonAmount;
amount = window.tastyRecipesFormatAmount(amount, scalable);
if ( typeof scalable.dataset.unit !== ‘undefined’ ) {
if ( ! scalable.classList.contains(‘nutrifox-quantity’) ) {
if ( ! scalable.classList.contains(‘nutrifox-second-quantity’) ) {
amount += ‘ ‘ + scalable.dataset.unit;
}
}
}
scalable.innerText = amount;
});

var nonNumerics = recipe.querySelectorAll(‘[data-has-non-numeric-amount]’);
nonNumerics.forEach(function(nonNumeric){
var indicator = nonNumeric.querySelector(‘span[data-non-numeric-label]’);
if ( indicator ) {
nonNumeric.removeChild(indicator);
}
if ( 1 !== buttonAmount ) {
indicator = document.createElement(‘span’);
indicator.setAttribute(‘data-non-numeric-label’, true);
var text = document.createTextNode(‘ (x’ + buttonAmount + ‘)’);
indicator.appendChild(text);
nonNumeric.appendChild(indicator);
}
});

window.tastyRecipesUpdatePrintLink();
});
});
}());

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});

window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}

this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );

setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );

const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}

this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}

const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );

this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );

},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};

window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );

xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}

failure( xhr );
};

xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();

for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};

window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;

this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}

window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}

if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );

// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );

if ( ! data.count ) {
return;
}

const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}

const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}

if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}

const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}

const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}

const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}

const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}

const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}

// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;

// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;

this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}

const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}

if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}

const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
« Previous Post
Taste Air Fryer Rice Paper Noodle Rolls: A Crispy, Healthy Appetizer You'll Love
Next Post »
Crispy Bang Bang Salmon Bites Bowls

If you enjoyed this…

Oreo Cookies and Cream Cinnamon Rolls

Oreo Cookies and Cream Cinnamon Rolls

No Bake Banana Pudding

No Bake Banana Pudding

Grilled Chicken & Broccoli Bowls with Creamy Garlic Sauce

Grilled Chicken & Broccoli Bowls with Creamy Garlic Sauce

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
Banana Foster Chex Mix

Banana Foster Chex Mix

Steak and Egg Breakfast Burrito

Steak and Egg Breakfast Burrito

20-Minute Chili Lime Flank Steak That Melts Hearts

20-Minute Chili Lime Flank Steak That Melts Hearts

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

© 2026 Quick Daily Dish · All Rights Reserved · Created by Chef Nova Blake · About · Privacy Policy · Terms & Conditions · Disclaimer · Contact