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

Week Meal Ideas

  • Recipe Index
  • Homepage
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About

Week Meal Ideas

  • Recipe Index
  • Homepage
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
Healthy / DINNER / Sheet Pan Greek Chicken and Veggies (Easy One-Pan Meal)

Sheet Pan Greek Chicken and Veggies (Easy One-Pan Meal)

March 13, 2026 by Alex

Jump to Recipe·Print Recipe

If you’re looking for a delicious and stress-free dinner option, this Sheet Pan Greek Chicken and Veggies (Easy One-Pan Meal) is just what you need. It’s the kind of recipe that makes weeknight cooking feel like a breeze while delivering big on flavor. The blend of juicy marinated chicken and vibrant roasted vegetables brings those sunny Mediterranean vibes right to your kitchen. Whether it’s a busy Tuesday or a special family gathering, this dish fits perfectly into any occasion.

What I love most about this recipe is how simple it is to prepare. You can throw everything on a single tray, let the oven do its magic, and enjoy an impressive meal without the fuss!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
Sheet Pan Greek Chicken and Veggies (Easy One-Pan

Why You’ll Love This Recipe

  • Super easy to make: With just a few steps and minimal cleanup, dinner is ready in no time!
  • Packed with flavor: Bold Mediterranean spices and fresh ingredients ensure every bite is bursting with taste.
  • Family-friendly: Everyone from kids to adults loves the colorful veggies and tender chicken.
  • Healthy & satisfying: A balanced meal full of protein and nutrients that keeps you feeling good.
  • Perfect for meal prep: Make it ahead of time for quick lunches or dinners throughout the week.
Sheet Pan Greek Chicken and Veggies (Easy One-Pan

Ingredients You’ll Need

You’ll find that these ingredients are not only simple but also wholesome—perfect for creating a vibrant dish that everyone will love! Let’s gather what you need for this delightful Sheet Pan Greek Chicken and Veggies.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

For the Chicken Marinade

  • 1.5 lbs boneless (skinless chicken breasts or thighs)
  • 3 tbsp olive oil
  • 2 tbsp lemon juice (freshly squeezed)
  • 1 tsp lemon zest
  • 3 garlic cloves (minced)
  • 1 tbsp Greek seasoning (oregano, thyme, salt, pepper)
  • 1 tbsp apple cider vinegar

For the Veggies

  • 1 red bell pepper (sliced)
  • 1 yellow bell pepper (sliced)
  • 1 zucchini (sliced)
  • 1 small red onion (sliced)
  • 1 cup cherry tomatoes
  • ½ cup Kalamata olives

Seasoning

  • 2 tbsp olive oil
  • 1 tsp dried oregano
  • ½ tsp salt
  • ¼ tsp black pepper

For Serving

  • ½ cup crumbled feta cheese (for serving)
  • Fresh parsley (optional garnish)

Variations

One of the best things about this recipe is its flexibility! You can easily swap out ingredients based on your preferences or what you have on hand. Here are some fun ideas:

  • Swap the protein: Use boneless turkey or chicken thighs for a different flavor profile.
  • Add more veggies: Toss in your favorites like asparagus, broccoli, or sweet potatoes for added nutrition.
  • Go vegan: Substitute chicken with chickpeas or tofu for a delightful plant-based version.
  • Spice it up: Add chili flakes or drizzle hot honey over before serving for an extra kick!

How to Make Sheet Pan Greek Chicken and Veggies (Easy One-Pan Meal)

Step 1: Marinate the Chicken

Start by marinating your chicken. In a large bowl, combine olive oil, lemon juice, lemon zest, minced garlic, Greek seasoning, and apple cider vinegar. This marinade infuses the chicken with zesty flavors that will keep it juicy during roasting. Add your chicken pieces to the bowl, ensuring they’re well coated. Cover and let it marinate in the fridge for at least 30 minutes if you can—this step really enhances the flavor!

Step 2: Prepare the Vegetables

While your chicken is soaking up those delicious flavors, it’s time to prepare your veggies! Slice up your bell peppers, zucchini, red onion, and cherry tomatoes into bite-sized pieces. Mixing these colorful veggies not only makes your dish visually appealing but also adds various nutrients that complement the protein beautifully.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Step 3: Assemble Everything on a Sheet Pan

Preheat your oven to 400°F (200°C). On a large sheet pan, arrange the marinated chicken pieces in the center and scatter the prepared vegetables around them. Drizzle additional olive oil over everything along with dried oregano, salt, and black pepper. This ensures that all components roast evenly while developing incredible flavors.

Step 4: Roast to Perfection

Place your sheet pan in the preheated oven and roast for about 20 minutes until the chicken is cooked through and reaches an internal temperature of 165°F (75°C). The vegetables should be tender with crispy edges—a perfect contrast to the juicy chicken! If you like them extra crispy, feel free to broil them for an additional couple of minutes at the end.

Step 5: Serve & Enjoy!

Once everything is cooked to perfection, remove it from the oven. Sprinkle crumbled feta cheese over your dish for that classic Greek touch and garnish with fresh parsley if desired. Serve it warm straight from the pan—enjoy every bite of this delightful Sheet Pan Greek Chicken and Veggies!

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Pro Tips for Making Sheet Pan Greek Chicken and Veggies (Easy One-Pan Meal)

To ensure your Sheet Pan Greek Chicken and Veggies turns out perfectly every time, here are some helpful tips!

  • Marinate longer for flavor: Allow the chicken to marinate for at least 30 minutes or overnight. This enhances the flavors and makes the chicken juicier.
  • Use even-sized veggies: Cut your vegetables into uniform pieces to ensure they cook evenly. This way, everything will be tender and ready to enjoy at the same time.
  • Don’t overcrowd the pan: Give each ingredient space on the sheet pan. Overcrowding can lead to steaming instead of roasting, which affects texture and flavor.
  • Check doneness with a thermometer: Use a meat thermometer to check that chicken reaches an internal temperature of 165°F. This ensures it’s safe to eat while remaining juicy.
  • Feel free to customize: Experiment with different vegetables or seasonings based on what you have on hand or your personal preferences. This recipe is versatile and can be tailored to suit your taste.

How to Serve Sheet Pan Greek Chicken and Veggies (Easy One-Pan Meal)

Serving this delightful dish is as easy as it is delicious! Here are some ideas to present it beautifully.

Garnishes

  • Fresh parsley: Sprinkle chopped fresh parsley over the top for a pop of color and freshness.
  • Lemon wedges: Serve with lemon wedges on the side for an extra burst of citrus flavor.

Side Dishes

  • Quinoa salad: A light quinoa salad with cucumber, tomatoes, and a lemon vinaigrette complements the Mediterranean flavors perfectly.
  • Pita bread: Warm pita bread is great for scooping up chicken and veggies or enjoying with some hummus on the side.
  • Greek yogurt dip: A tangy Greek yogurt dip mixed with garlic and herbs can serve as a refreshing accompaniment.
  • Roasted potatoes: Crispy roasted potatoes seasoned with olive oil and herbs make a hearty side that pairs well with your meal.
Sheet Pan Greek Chicken and Veggies (Easy One-Pan

Make Ahead and Storage

This Sheet Pan Greek Chicken and Veggies recipe is perfect for meal prep, allowing you to enjoy healthy, flavorful meals throughout the week with minimal fuss.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Storing Leftovers

  • Allow the dish to cool completely before storing.
  • Transfer leftovers to an airtight container.
  • Store in the refrigerator for up to 3-4 days.

Freezing

  • Portion out the chicken and veggies into freezer-safe containers or bags.
  • Remove as much air as possible before sealing.
  • Freeze for up to 2 months for best quality.

Reheating

  • Thaw frozen portions in the refrigerator overnight before reheating.
  • Reheat in a microwave until heated through, or place in an oven at 350°F (175°C) for about 15-20 minutes.

FAQs

Can I use other vegetables in Sheet Pan Greek Chicken and Veggies?

Absolutely! Feel free to swap in your favorite seasonal vegetables or whatever you have on hand. Just ensure they have similar cooking times for even roasting.

How can I make Sheet Pan Greek Chicken and Veggies ahead of time?

You can marinate the chicken and chop the vegetables a day in advance. Store them separately in the fridge until you’re ready to roast them.

Is this recipe suitable for meal prep?

Yes! This Sheet Pan Greek Chicken and Veggies is great for meal prep, as it stores well and reheats beautifully.

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

What should I serve with Sheet Pan Greek Chicken and Veggies?

This dish is complete on its own but pairs wonderfully with whole grains like quinoa or brown rice, or a fresh salad for extra crunch.

Final Thoughts

I hope you enjoy making this Sheet Pan Greek Chicken and Veggies as much as I do! It’s a delightful way to bring bold Mediterranean flavors into your home while keeping things simple and healthy. Don’t hesitate to share your experiences or variations; I’d love to hear how you made this dish your own!

Print

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Sheet Pan Greek Chicken and Veggies

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

No reviews

Looking for a vibrant and easy dinner option that delights the taste buds? This Sheet Pan Greek Chicken and Veggies is the answer! Bursting with Mediterranean flavors, this one-pan meal features marinated chicken paired with colorful roasted vegetables, making it a feast for both the eyes and palate. Perfect for busy weeknights, family gatherings, or meal prep, this dish is not only simple to make but also healthy and satisfying. With minimal cleanup required, you can focus more on enjoying your delicious meal and less on the hassle of cooking.

  • Author: Alex
  • Prep Time: 15 minutes
  • Cook Time: 25 minutes
  • Total Time: 40 minutes
  • Yield: Serves approximately four people 1x
  • Category: Main
  • Method: Baking
  • Cuisine: Mediterranean

Ingredients


Scale
  • 1.5 lbs boneless skinless chicken breasts or thighs
  • 3 tbsp olive oil
  • 2 tbsp lemon juice (freshly squeezed)
  • 1 tsp lemon zest
  • 3 garlic cloves (minced)
  • 1 tbsp Greek seasoning (oregano, thyme, salt, pepper)
  • 1 red bell pepper (sliced)
  • 1 yellow bell pepper (sliced)
  • 1 zucchini (sliced)
  • 1 small red onion (sliced)
  • 1 cup cherry tomatoes
  • ½ cup Kalamata olives
  • Fresh parsley (optional garnish)

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

Instructions

  1. Marinate the Chicken: In a bowl, whisk together olive oil, lemon juice, lemon zest, minced garlic, Greek seasoning. Add chicken and coat well. Let marinate in the fridge for at least 30 minutes.
  2. Prepare the Veggies: Preheat oven to 400°F (200°C). On a large sheet pan, toss bell peppers, zucchini, red onion, cherry tomatoes, and olives with olive oil and seasonings.
  3. Combine and Bake: Nestle marinated chicken among veggies on the sheet pan. Bake for 20-25 minutes or until the chicken reaches an internal temperature of 165°F.
  4. Serve: Remove from oven and sprinkle with crumbled feta cheese and parsley before serving.

Nutrition

  • Serving Size: 1 plate (approximately 300g)
  • Calories: 420
  • Sugar: 5g
  • Sodium: 750mg
  • Fat: 22g
  • Saturated Fat: 4g
  • Unsaturated Fat: 16g
  • Trans Fat: 0g
  • Carbohydrates: 22g
  • Fiber: 6g
  • Protein: 38g
  • Cholesterol: 110mg

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.weekmealideas.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”732a71e4a4″,”postId”:5363};
window.TastyRecipes = window.TastyRecipes || {};

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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(){

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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”));

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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’ );

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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’ );

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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 );
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;
});
};

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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

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

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

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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();
}
});
}());

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

(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;
});

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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();
});

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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’ );

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;
}
};

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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 );
};

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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 );

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

// 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 );
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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;
}

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN

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
Keto Chicken Nugget Parmesan Casserole
Next Post »
The Best Jam Cookies

If you enjoyed this…

Sheet Pan Baked Chicken Chimichangas (Crispy & Flavorful!)

Sheet Pan Baked Chicken Chimichangas (Crispy & Flavorful!)

Healthy Baked Mac and Cheese

Healthy Baked Mac and Cheese

Egg Waffles with Romesco and Goat Cheese

Egg Waffles with Romesco and Goat Cheese

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
Healthy Chocolate Banana Bread

Healthy Chocolate Banana Bread

Steak Fajita Bowl Recipe

Steak Fajita Bowl Recipe

Healthy Apple Pie Granola

Healthy Apple Pie Granola

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

© 2026 · © Week Meal Ideas · All Rights Reserved · Created by Alex ·