Connect with us

Midwest

Army reservist, 20, killed in Iranian drone strike in Kuwait, spent final hours reassuring family: ‘I’m good’

Published

on

Army reservist, 20, killed in Iranian drone strike in Kuwait, spent final hours reassuring family: ‘I’m good’

NEWYou can now listen to Fox News articles!

Fallen U.S. Army Reserve Sgt. Declan Coady, 20, spent his final hours in Kuwait sending steady updates home to ease his family’s fears amid the war with Iran and before silence replaced his messages and uniformed officers arrived at his parents’ door.

Coady, a Drake University student from Des Moines, Iowa, was one of six Army Reserve soldiers killed Saturday in an Iranian drone attack at the Port of Shuaiba in Kuwait while supporting Operation Epic Fury, according to the Department of War (DOW).

He was the youngest of the fallen soldiers identified by the DOW after enlisting in the Army Reserve in 2023 as an Army information technology specialist.

In an emotional interview, his father, Andrew Coady, said the family learned about the casualties shortly after waking up Sunday morning but did not believe Declan was involved because he had spoken to his brother in Italy earlier in the morning.

Advertisement

Sgt. Declan Coady and five other U.S. Army Reserve soldiers were killed in a drone attack in Kuwait Sunday. (U.S. Army Reserve Command Press Desk)

FORMER TOP GUN PILOT DECLARES IRAN MILITARY ‘OVER WITH’ AMID US AIR SUPERIORITY, BUT WARNS OF ANOTHER DANGER

“Declan just was checking in with him, and the reason being is Declan is nine hours ahead of us,” Andrew said. “He was two hours ahead of his brother, so he called his brother. Declan had been sending us updates every one to two hours, like, ‘Hey, everything’s still good. I’m good.’ Which goes to show you, you know, he was thinking about us. Like, ‘Don’t worry about me’ and so forth.”

Based on information the family received, Andrew said Declan’s operation center was likely hit shortly after he got off the phone with his brother.

“At the time, my wife had sent another message to him … and we didn’t hear back,” Andrew said. “They may not always be able to respond, but I will say most of us started to [worry]. Your gut starts to get a feeling. We go to bed fairly early, so we got ready Sunday night to go to bed, and we had just turned the lights off and went into the bedroom and the doorbell rang at 8 p.m.”

Advertisement

Andrew Coady and his daughter, Keira, right, talk about his son, Sgt. Declan Coady, 20, of West Des Moines, Iowa, outside their home Tuesday, in West Des Moines, Iowa. (Charlie Neibergall/AP Photo)

RED CROSS SHARES AUDIO OF IRANIAN CIVILIAN EXPLAINING SITUATION ON THE GROUND IN TEHRAN: ‘NO RESPITE’

Declan’s unit deployed to Kuwait in September and was due home in May, according to his father.

“There was a request for the role that he could do and fill, that a new unit was coming in and didn’t have so many in that slot, and if he’d be willing to extend nine more months,” Andrew Coady said. “So, we were discussing that, pros and cons. He hadn’t made a decision yet.”

He reminisced about a conversation with his son, during which Declan told him his previous jobs did not compare to the love he had for service.

Advertisement

“But one thing he did say is that, ‘You know, I haven’t had a lot of jobs, but I’ve had jobs in the civilian world. And I’ve been over here for six months, and I work 12-plus hour days. I work six to seven days a week,’” Andrew said. “And he goes, ‘I love it.’”

This photo provided by Andrew Coady shows his son, Declan Coady, posing for a photo on the day of his graduation at the U.S. Army Training Center at Fort Sill, Okla. (Andrew Coady via AP)

GOFUNDME FOR US SOLDIER KILLED IN IRAN WAR RAISES MORE THAN $94K

His father explained Declan could have continued attending nearby Drake University, where he was studying information systems, cybersecurity and computer science, and was commissioned as an officer after graduating from the Reserve Officers’ Training Corps (ROTC).

However, he decided to redeploy with this unit and continue online classes in Kuwait.

Advertisement

“He kind of planned it out, that he was adamant, like, ‘I’m gonna go with my unit,’” Andrew said.

Just a week before the fatal attack, his father said, Declan called him to let him know he was recommended for a promotion from specialist to sergeant, a rank he received posthumously.

The fallen service members were identified as Sgt. 1st Class Noah Tietjens, 42, of Bellevue, Neb.; Sgt. 1st Class Nicole Amor, 39, of White Bear Lake, Minn.; Capt. Cody Khork, 35, of Lakeland, Fla.; and Sgt. Declan Coady, 20, of Des Moines, Iowa. Two additional soldiers killed in the attack have not yet been publicly identified. (U.S. Army Reserve Command Press Desk; Fox News)

PENTAGON IDENTIFIES FOUR SOLDIERS KILLED IN MARCH 1 DRONE STRIKE DURING KUWAIT MILITARY OPERATION

Declan’s sister, Keira Coady, tearfully remembered the day her brother left for Kuwait, showing reporters photos of him with their family’s cat.

Advertisement

“This was the morning before we dropped him off for him to leave,” Keira said. “He was our cat Autumn’s favorite. She’d sit in his room while he would game for hours and beg for attention, and he would give it to her. He’s 20. He was going to be 21 in two months.”

Keira Coady talks about her brother, Sgt. Declan Coady, 20, of West Des Moines, Iowa, outside her home Tuesday in West Des Moines, Iowa. (Charlie Neibergall/AP Photo)

Keira said the shock has not yet subsided, explaining, “I still don’t fully think it’s real.”

“I didn’t think it was real when they told us,” Keira said. “I just remember all of our conversations about what he was gonna do when he came back. And, so, I’ll just be sitting and thinking about it. It’s just, it’s really hard. … I didn’t have the same call this weekend that my dad and like my brother did [with Declan]. I just really wish I got to tell him I love you one more time because he was just so amazing.”

She added her brother was not one to let his emotions show, but she can imagine his fear on the day of the attack.

Advertisement

CLICK HERE TO DOWNLOAD THE FOX NEWS APP

“I can’t help but think, just, he was my little brother, and he was probably really scared even if he didn’t want people to know,” Keira said. “I wish he could have known one more time that we all loved him because he was so amazing and kind. … He was just like the best little brother you could have.”

The Associated Press contributed to this report.

Read the full article from Here

Illinois

Tornadoes confirmed in Illinois as severe weather outbreak continues

Published

on

Tornadoes confirmed in Illinois as severe weather outbreak continues


There have been multiple tornado warnings in Illinois Thursday, including at least one confirmed tornado near Dixon.

According to the National Weather Service, that tornado was confirmed by spotters and radar at approximately 6:15 p.m.

The storms that produced the tornado are moving to the northeast at 45 miles per hour.

More tornado warnings were also reported by NWS near the Quad Cities, according to officials.

Advertisement

Those storms are part of a system that is pushing toward the Chicago area, with a tornado watch in effect for McHenry, DeKalb, Kane, LaSalle, Kendall and Grundy counties until 8 p.m.

The entire Chicago area is at an enhanced risk of severe weather, with large hail and gusty winds also possible, officials warn.

We will update this story with more details as they become available.



Source link

Advertisement
Continue Reading

Indiana

Severe thunderstorm watch canceled for Indianapolis and surrounding counties

Published

on

Severe thunderstorm watch canceled for Indianapolis and surrounding counties


(WISH) — A severe thunderstorm watch for Indianapolis and other central Indiana counties, which had been set to run through midnight Thursday, was canceled about 9:15 p.m. Thursday.

The Severe Thunderstorm Prediction Center at 7:45 p.m. Thursday issued the watch for these Indiana counties: Allen, Blackford, Boone, Carroll, Cass, Clay, Clinton, Delaware, De Kalb, Fulton, Grant, Hamilton, Hancock, Hendricks, Howard, Huntington, Johnson, Kosciusko, Lagrange, Madison, Marion, Miami, Montgomery, Morgan, Noble, Owen, Putnam, Steuben, Tippecanoe, Tipton, Wabash, Wells and Whitley.
Other cities in the watch area are Angola, Carmel, Crawfordsville, Fishers, Fort Wayne, Kokomo, Logansport, Noblesville, Marion, Muncie, Warsaw and Westfield.

Storm warnings that had been issued earlier for the watch area warned over 60 mph gusts, which can cause damage to roofs, siding and trees. Tornadoes were possible, but the National Weather Service at Indianapolis did not issue any tornado warnings.

As of 9 p.m., an automated system from the Indianapolis weather service said a storm spotter reported a large tree being uprooted on the southwest side of Terre Haute about 7:14 p.m. due to thunderstorm winds.

Advertisement

Also, about 14% of electricity customers in Parke County, north of Terre Haute, were without power at 9 p.m. Thursday. About 40 minutes earlier, about 24% of Parke County electricity customers were without power.



Source link

Continue Reading

Iowa

Iowa wide receiver becomes first-ever back-to-back winner of Jet Award

Published

on

Iowa wide receiver becomes first-ever back-to-back winner of Jet Award


Iowa wide receiver Kaden Wetjen becomes first-ever back-to-back winner of Jet Award

Advertisement

OUR TEAM. SOMEONE TO LOOK OUT FOR THIS UPCOMING YEAR, STICKING WITH FOOTBALL, THE JET AWARD GALA HAPPENING TONIGHT IN OMAHA ON THE 15TH YEAR OF THE AWARD. THE AWARD IS GIVEN TO THE COLLEGE RETURN SPECIALIST OF THE YEAR, IOWA’S KADEN WETJEN MAKES HISTORY, BECOMING THE FIRST EVER BACK TO BACK WINNER. OF JOHNNY THE JET RODGERS AWARD. IT’S AWESOME. AND I KIND OF JOKED AROUND LAST YEAR, TOLD ME I WAS GOING TO COME BACK HERE NEXT YEAR AND HERE WE ARE ACTUALLY ACTUALLY DID IT. AND WE ACTUALLY HAD TWICE THE SUCCESS WE HAD LAST YEAR WHEN WE WON IT. SO JUST ME AND THE UNIT, THE TEAM THAT WE HAD WAS, WAS SUPER AWESOME. IT’S NOT JUST THIS AWARD ISN’T JUST FOR ME. IT’S FOR MY, FOR MY TEAMMATES AS WELL. YES. ALSO BEING HONORED TONIGHT, MILLARD SOUTH ALMA JOBJET TAMALA AS MR. FOOTBALL 2025. RECOGNIZING THE TOP HIGH SCHOOL FOOTBALL TALENT IN THE STATE. GUYS, OBVIOUSLY KAMALA TAKING HIS TALENTS TO ALABAMA. HE’LL BE PLAYING IN TUSCALOOSA THIS YEAR AS FAR AS IT COMES WITH EACH AND EVERY TIME ANYBODY WOULD KICK TO HIM, I WOULD SAY, WHAT ARE YOU DOING? DON’T KICK, KICK, KICK IT. HE’S SO GOOD. I MEAN, LOO

Advertisement

Iowa wide receiver Kaden Wetjen becomes first-ever back-to-back winner of Jet Award

Updated: 8:57 PM CDT Apr 2, 2026

Editorial Standards

Advertisement

Omaha hosted the Jet Award Gala on Thursday.It was the 15th year of the award, which was given to the College Return Specialist of the Year.Iowa’s Kaden Wetjen made history, becoming the first-ever back-to-back winner of the Johnny the Jet Rodgers Award.The gala also honored Millard South alum Jett Thomalla as Mr. Football 2025, recognizing the top high school football talent in the state.Make sure you can always see the latest news, weather, sports and more from KETV NewsWatch 7 on Google search.NAVIGATE: Home | Weather | Local News | National | Sports | Newscasts on demand |

Omaha hosted the Jet Award Gala on Thursday.

Advertisement

It was the 15th year of the award, which was given to the College Return Specialist of the Year.

Iowa’s Kaden Wetjen made history, becoming the first-ever back-to-back winner of the Johnny the Jet Rodgers Award.

The gala also honored Millard South alum Jett Thomalla as Mr. Football 2025, recognizing the top high school football talent in the state.

Advertisement

Make sure you can always see the latest news, weather, sports and more from KETV NewsWatch 7 on Google search.

NAVIGATE: Home | Weather | Local News | National | Sports | Newscasts on demand |

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

Advertisement

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

Advertisement

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

Advertisement

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.ketv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.ketv.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

Advertisement

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

Advertisement

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

Advertisement

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

Advertisement

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

Advertisement

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.ketv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.ketv.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

Advertisement

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

Advertisement

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…

Advertisement



Source link

Continue Reading

Trending