If you’re looking for a delicious and easy side dish that will have everyone asking for seconds, then you’ve come to the right place! These Garlic Parmesan Sweet Potato Wedges Made Easy in Air Fryer are my go-to recipe for busy weeknights or family gatherings. They offer a wholesome twist on traditional fries, making them not only tasty but also guilt-free. Plus, the combination of savory garlic and rich parmesan cheese makes these wedges absolutely irresistible!

What I love most about this recipe is how simple it is to whip up. With just a handful of ingredients and minimal prep time, you can have a delightful side ready in no time. Whether you serve them alongside your favorite main dish or enjoy them as a snack, these sweet potato wedges are sure to be a hit.


Why You’ll Love This Recipe
- Quick Preparation: With just 5 minutes of prep time, you can easily fit this dish into your busy schedule.
- Family-Friendly: Kids and adults alike will enjoy the tasty flavor of garlic and cheese combined with sweet potatoes.
- Healthy Alternative: These wedges are baked in an air fryer, making them a lighter option compared to traditional fries.
- Versatile Serving: Perfect for any occasion—whether it’s dinner at home or a casual get-together with friends.
- Make-Ahead Option: You can prepare the wedges in advance and simply pop them in the air fryer when you’re ready to eat.
Ingredients You’ll Need
Let’s take a look at the simple, wholesome ingredients you’ll need to make these delightful Garlic Parmesan Sweet Potato Wedges. You probably have most of these items on hand already!
- 2 small sweet potatoes (washed and scrubbed)
- 2 tablespoon olive oil (for drizzling)
- ¼ teaspoon garlic powder
- ½ teaspoon salt
- ¼ teaspoon black pepper
- ¼ teaspoon paprika
- ⅛ teaspoon chili powder
- ⅓ cup parmesan cheese
Variations
One of the best things about this recipe is its flexibility! Feel free to customize it to suit your tastes. Here are some fun variation ideas:
- Add Fresh Herbs: Sprinkle in some fresh parsley or rosemary after baking for added flavor and freshness.
- Spice It Up: If you love heat, consider adding cayenne pepper or more chili powder for an extra kick.
- Cheesy Twist: Swap out parmesan with cheddar or mozzarella for a different cheesy experience.
- Sweet Touch: Drizzle with honey or maple syrup before serving for a sweet contrast to the savory flavors.
How to Make Garlic Parmesan Sweet Potato Wedges Made Easy in Air Fryer
Step 1: Preheat the Air Fryer
Start by preheating your air fryer to 390°F. This step ensures that your sweet potato wedges cook evenly and get that perfect crispy texture we all love.
Step 2: Prepare the Sweet Potatoes
Wash and scrub the sweet potatoes until they’re clean. Pat them dry with a towel before slicing them into ¼ inch thick wedges. Cutting them evenly is key; it allows all the pieces to cook at the same rate!
Step 3: Season Your Wedges
In a medium bowl, add your sweet potato wedges along with olive oil, garlic powder, salt, black pepper, paprika, chili powder, and parmesan cheese. Toss everything together until each wedge is well-coated. Coating them properly helps maximize flavor on every bite!
Step 4: Arrange in the Air Fryer
Carefully arrange the seasoned wedges in a single layer along the bottom of your air fryer basket. It’s essential not to overcrowd them; otherwise, they won’t crisp up nicely. If needed, cook them in batches.
Step 5: Cook Until Crispy
Air fry those beautiful wedges for about 16-20 minutes. Be sure to shake the basket halfway through cooking so they brown evenly on all sides. The end result should be golden-brown crispy perfection—just thinking about it makes my mouth water!
Now you’re ready to enjoy these Garlic Parmesan Sweet Potato Wedges! Serve them warm and watch how quickly they disappear from your table. Happy cooking!
Pro Tips for Making Garlic Parmesan Sweet Potato Wedges Made Easy in Air Fryer
These tasty sweet potato wedges are a breeze to make, and with a few handy tips, you can elevate your dish even further!
-
Cut Uniformly: Ensure all wedges are cut to a similar size. This helps them cook evenly, so you can enjoy that perfect crispy texture all around.
-
Don’t Skip the Soak: If you have time, soaking the sweet potato wedges in cold water for 30 minutes before cooking helps remove excess starch. This results in a crispier finish that you’ll love!
-
Adjust Seasoning to Taste: Feel free to tweak the spice mix based on your preferences. For a spicier kick, add more chili powder or even some cayenne pepper for an extra punch.
-
Experiment with Cheeses: While Parmesan is delicious, don’t hesitate to try other grated cheeses like pecorino or nutritional yeast for a vegan option. Each will give a unique flavor profile that can change up your dish beautifully.
-
Shake It Up: Halfway through cooking, shake the basket gently to ensure that all sides of the wedges get equally crispy. It’s an easy way to enhance the texture without any extra effort!
How to Serve Garlic Parmesan Sweet Potato Wedges Made Easy in Air Fryer
Serving these delightful sweet potato wedges is just as fun as making them! With their vibrant color and savory flavor, they make an appealing addition to any meal.
Garnishes
-
Chopped Fresh Herbs: Adding freshly chopped parsley or cilantro not only enhances the visual appeal but also adds a burst of freshness that complements the rich flavors.
-
Squeeze of Lemon Juice: A drizzle of fresh lemon juice right before serving brightens up the dish and balances out the savory notes beautifully.
Side Dishes
-
Quinoa Salad: A light quinoa salad with cucumbers, tomatoes, and feta provides a refreshing contrast to the warmth of the sweet potato wedges while adding protein and fiber.
-
Creamy Avocado Dip: Whip up a quick avocado dip using mashed avocado, lime juice, and garlic. This creamy side pairs well with the crunchiness of the wedges and adds healthy fats.
-
Roasted Veggies: Serve alongside a medley of roasted vegetables such as bell peppers, zucchini, and carrots. The caramelized flavors from roasting bring out natural sweetness that complements your sweet potato wedges wonderfully.
-
Hummus: A side of hummus offers a creamy texture and nutty flavor that makes for an excellent dip. It’s nutritious and satisfying—perfect for rounding out your meal!
With these serving suggestions and pro tips in hand, you’re ready to impress family and friends with your Garlic Parmesan Sweet Potato Wedges made easy in the air fryer! Enjoy!
Make Ahead and Storage
These Garlic Parmesan Sweet Potato Wedges are perfect for meal prep, making it easy to enjoy a delicious, healthy side throughout the week. You can whip up a batch, store them, and have them ready whenever you want a tasty snack or side dish!
Storing Leftovers
- Allow the sweet potato wedges to cool completely.
- Place them in an airtight container and store in the refrigerator.
- They will keep well for up to 3 days.
Freezing
- Lay the cooked sweet potato wedges on a baking sheet in a single layer.
- Freeze them for about 1-2 hours until firm.
- Transfer the frozen wedges to a freezer-safe bag or container and store for up to 3 months.
Reheating
- Preheat your air fryer to 370°F.
- Place the refrigerated or frozen wedges in the basket in a single layer.
- Air fry for about 5-8 minutes until heated through and crispy again.
FAQs
Here are some common questions you might have about this recipe!
Can I make Garlic Parmesan Sweet Potato Wedges Made Easy in Air Fryer without cheese?
Yes! You can simply omit the Parmesan cheese or use a dairy-free cheese alternative if you’re looking for a vegan option. The spices will still provide plenty of flavor.
How do I get my Garlic Parmesan Sweet Potato Wedges Made Easy in Air Fryer extra crispy?
For extra crispiness, ensure that you spread the wedges out in a single layer without overcrowding in the air fryer. You can also soak the sweet potato wedges in water for about 30 minutes before cooking; just be sure to pat them dry before tossing with oil and seasonings.
Can I add other spices to these sweet potato wedges?
Absolutely! Feel free to experiment with your favorite spices such as garlic salt, onion powder, or even a sprinkle of nutritional yeast for an extra cheesy flavor without using dairy.
What dipping sauces go well with Garlic Parmesan Sweet Potato Wedges?
These wedges pair beautifully with an array of dips! Try serving them with garlic aioli, ranch dressing, or even a spicy sriracha mayo for an added kick.
Final Thoughts
I hope you find joy in making these Garlic Parmesan Sweet Potato Wedges — they truly are special! With their crispy exterior and savory flavors, they make any meal feel like a treat. Enjoy experimenting with different spices and dips, and remember: cooking is all about having fun! I can’t wait for you to try this recipe!
Garlic Parmesan Sweet Potato Wedges Made Easy in Air Fryer
If you’re on the hunt for a healthy, delicious side dish that’s super easy to prepare, look no further than these Garlic Parmesan Sweet Potato Wedges made in the air fryer! With their perfectly crispy texture and irresistible garlic-parmesan flavor, these wedges are a delightful twist on traditional fries. They’re not only a fantastic accompaniment to any meal but also make for a tasty snack that everyone will love. In just minutes, you can whip up this wholesome dish that’s both satisfying and guilt-free—perfect for busy weeknights or casual gatherings with friends.
- Prep Time: 5 minutes
- Cook Time: 20 minutes
- Total Time: 25 minutes
- Yield: Approximately 4 servings 1x
- Category: Side Dish
- Method: Frying
- Cuisine: American
Ingredients
Scale
- 2 small sweet potatoes
- 2 tablespoons olive oil
- ¼ teaspoon garlic powder
- ½ teaspoon salt
- ¼ teaspoon black pepper
- ¼ teaspoon paprika
- ⅛ teaspoon chili powder
- ⅓ cup parmesan cheese
Instructions
- Preheat your air fryer to 390°F.
- Wash and scrub the sweet potatoes, then pat dry and slice into ¼-inch thick wedges.
- In a medium bowl, combine sweet potato wedges with olive oil and spices, tossing until well coated.
- Arrange the wedges in a single layer in the air fryer basket; cook for about 16-20 minutes, shaking halfway through for even crispiness.
- Serve warm and enjoy!
Nutrition
- Serving Size: 1 cup (150g)
- Calories: 210
- Sugar: 4g
- Sodium: 400mg
- Fat: 10g
- Saturated Fat: 2g
- Unsaturated Fat: 7g
- Trans Fat: 0g
- Carbohydrates: 32g
- Fiber: 5g
- Protein: 4g
- Cholesterol: 10mg
window.trCommon={“minRating”:6,”ajaxurl”:”https:\/\/www.fullrecipeshub.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”e3af28e2cd”,”postId”:2229};
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 );
});



Leave a Comment