Connect with us

Iowa

Housing Programs Will Help Iowa Recovery

Published

on

Housing Programs Will Help Iowa Recovery


(TNS) – With more than 5,000 homes impacted by recent natural disasters – primarily flooding in Northwest Iowa and tornadoes in Southwest Iowa – state leaders Thursday announced new programs designed to assist Iowans coping with the aftermath.

The programs, from both the state and federal governments, will supply grants, loans and other financial assistance to Iowans whose homes have been damaged or destroyed by the tornadoes and floods.

More than 5,000 homes in Iowa have been impacted by the natural disasters, including roughly 2,000 that have been destroyed, Gov. Kim Reynolds said during a news conference at the Iowa Capitol.


Reynolds said the figures are expected to increase, and that housing has become a top concern in the communities that were hit hardest by the disasters. Iowa, like much of the country, faced a housing shortage even before the recent storms displaced thousands of Iowans.

Advertisement

Many of those Iowans want to stay in their communities, Reynolds said. For that to happen, more housing will be needed.

“We have been developing plans for the state’s immediate and long-term recovery for one of the most urgent needs that we’ve heard at every single stop, almost, that we’ve been at, and that is housing,” Reynolds said.

She described new state programs she said were designed “to address this need for not only temporary housing, but for plans to get permanent housing in place as soon as possible.”

Reynolds highlighted three state and federal programs in particular.

Major General Stephen Osborn , Adjutant General of the Iowa National Guard , provides an update on the state’s natural disaster recovery efforts during a news conference at the Capitol in Des Moines on Thursday.

Advertisement

Housing assistance

The State Disaster Recovery New Housing Grant will provide $50,000 grants to developers who build single-family homes, duplexes and town homes in Iowa counties that fall under the federal disaster declaration.

As of Thursday afternoon, 23 counties were included in that declaration, with Woodbury County being the most recent addition. Reynolds and other state leaders said they expected more counties to be added.

That program is being funded with $10 million of federal pandemic relief assistance funding, the governor’s office said.

The Disaster Recovery Housing Assistance program provides forgivable, five-year loans up to $50,000 for housing recovery needs not covered by insurance or federal assistance. The program is not new – it was established by the Iowa Legislature in 2021, but never funded. The governor’s office said a $6.5 million transfer of state funds will now fund it.

Advertisement

This program is available to impacted Iowans in any of the counties under state disaster proclamations. A list of counties with an active state disaster declaration can be found on the state homeland security department’s website at homelandsecurity.iowa.gov.

Reynolds said the state also will designate for sale to disaster-impacted Iowans five homes newly constructed by the state’s Homes for Iowa program – under which homes are constructed by prison inmates – that are scheduled to be available within the next roughly four months. Each home is 1,200 square feet, features three bedrooms and two bathrooms, and costs $95,000.

Applications for those new programs can be submitted starting Monday at iowagrants.gov.

State working with feds

The state also has applied for federal approval to use a Federal Emergency Management Agency program that traditionally has been used by Southern states in hurricane recovery efforts, Reynolds said.

Advertisement

The program provides temporary housing in impacted communities while displaced residents work toward a more permanent housing solution. Under the program, Iowans in need would be eligible for six-month placements trailers, recreational vehicles or mobile homes.

Iowa has submitted an application to use the program here; a state official said the early signals from the federal government appear to indicate the state will be approved for the program.

A similar FEMA program would provide housing for up to 18 months. The state also has submitted an application for that program.

“The idea is that we work with those survivors, put them into a safe, sound situation, where, as the governor noted, they can work on their long-term housing,” Iowa Homeland Security and Emergency Management Director John Benson said during the news conference. “Some of that will occur relatively quickly if they’re refurnishing their home, have to refurbish it, (that will take) a couple of months. Others will take longer. That’s why we want to work on the long-term housing one with FEMA to get out to that 18 months.”

Iowa Homeland Security and Emergency Management Director John Benson provides an update on the state’s natural disaster recovery efforts during a news conference at the Capitol in Des Moines on Thursday.

Advertisement

New farmer assistance

Reynolds also announced a new program that will reimburse one year of interest paid on federal loans to farmers who are recovering from property damage and losses caused by the severe weather.

Briefings on what the state is doing to help Iowans, businesses and communities recover from the natural disasters were given at Thursday’s news conference by leaders of the state departments on transportation, education, inspections, insurance, health and human services, and natural resources and the Iowa National Guard .

Some examples:

* The Iowa National Guard has deployed 10 high-water clearing vehicles to assist with transportation of people, equipment and supplies in flooded communities.

Advertisement

* The Iowa Department of Transportation has deployed nearly 100 trucks and other pieces of equipment to assist with the removal of debris and other damaged materials.

* The Iowa Department of Education is working with schools that were damaged to help them be ready for the start of the new school year in late August.

* The Iowa Health and Human Services Department is helping recruit volunteers through Volunteer Iowa for cleanup efforts and is preparing to provide behavioral health services in impacted communities.

Reynolds described the response and recovery assistance efforts as a “whole of government effort” that includes federal, state and local action. She in particular praised local government and emergency response officials, some of whom are facing serious disaster recovery issues of their own.

“Iowans are special people. They continue to look out for the needs of others before they take care of themselves,” Reynolds said. “We’re making progress. We know we still have a long way to go. But we’re determined to get there.”

Advertisement

Iowans interested in the various state and federal assistance programs designed to help them recover from recent natural disasters can start at two websites: disasterrecovery.iowa.gov for state assistance and disasterassistance.gov for federal assistance. State grant applications can be submitted at iowagrants.gov.

__

©2024 Waterloo-Cedar Falls Courier (Waterloo, Iowa)
Distributed by Tribune Content Agency, LLC.





Source link

Advertisement

Iowa

Iowa house passes bill requiring parental consent for minors to receive HPV vaccine

Published

on

Iowa house passes bill requiring parental consent for minors to receive HPV vaccine


DES MOINES, Iowa (IOWA CAPITAL DISPATCH) – The Iowa House passed legislation Tuesday requiring parental consent for minors to receive certain vaccines associated with sexually transmitted diseases — a measure that Democrats said could lead to higher cancer rates in Iowa.

Iowa requires parental consent for minors to receive a vast majority of vaccinations. But there’s currently a carveout in Iowa law for human papillomavirus (HPV) and hepatitis B vaccines. Iowans under age 18 can consent, without parental approval, for these vaccines, as they specifically deal with sexually transmitted diseases and infections.

Senate File 304, which passed on a 63-29 vote — would remove this exemption, requiring parental consent for minors to receive HPV and hepatitis B vaccines. Rep. Austin Baeth, D-Des Moines, an internal medicine physician, said the measure was a “pro-cancer bill, period.”

At subcommittee meetings on the measure, advocates representing health care providers and organizations have said HPV is linked with multiple forms of genital cancer, including cervical, penile, anal cancer and vaginal cancers — and that studies have found the HPV vaccine in particular has been linked with much lower instances of cervical cancer especially when a person is vaccinated before age 17.

Advertisement

“We have, with these vaccines, a way to save people’s lives,” Baeth said. “And in a state with the fastest-rising cancer rates, the second highest cancer rate overall, we should be doing more to prevent cancer, not less.”

Rep. Jeff Shipley, R-Fairfield, who supported the bill, said the measure was not limiting access to the HPV vaccine, but ensuring that parents approve of these vaccines being administered to young children.

Rep. Megan Srinivas, D-Des Moines, said the reason why this carveout was introduced in Iowa law in the first place was because there were instances where a parent may not be a trusted adult in a child’s life — including in situations of child abuse or child sexual assault.

“This conversation about needing to always trust our adults does not take the bad actors into account,” Srinivas said. “And what we should be keeping in mind, as we are passing legislation, are the most vulnerable in our society, which are the children that we have been entrusted to protect. By removing one of the most important things we can do in protecting children who might be the victims, we are making a bad decision, and that is why I urge you to vote no on this.”

Rep. Austin Harris, R-Moulton, disagreed with the assertion that the measure was “pro-cancer” — saying it only subjects the HPV and Hepatitis B vaccines to the same requirements as other vaccines.

Advertisement

“Are we pro-polio because we require parental consent?” Harris said. “Pro-measles, pro-mumps, everything else? And I take it personally as someone who has a mother, who is a breast cancer survivor, to be accused of saying, ‘I’m pro-cancer.’”

The measure heads to Gov. Kim Reynolds’ desk for final approval.



Source link

Advertisement
Continue Reading

Iowa

Are tornadoes in Iowa possible today? Here’s what forecasters say

Published

on

Are tornadoes in Iowa possible today? Here’s what forecasters say


play

  • Severe storms are expected to hit Iowa again Tuesday, bringing the possibility of tornadoes, large hail, and damaging winds.
  • The National Weather Service has issued an Enhanced Risk for parts of Iowa, indicating a higher chance of organized severe thunderstorms.
  • Forecasters warn that strong tornadoes and giant hail are possible with the most intense storms.
  • The severe weather threat is expected to continue through the week, with another strong system anticipated on Friday.

Severe storms are expected to sweep across Iowa again in the afternoon of Tuesday, April 14, with forecasters warning of all severe weather hazards possible — including tornadoes, large hail and damaging winds — as multiple rounds of storms move through the region through midweek.

The National Weather Service Storm Prediction Center has placed parts of Iowa under an Enhanced Risk (Level 3 of 5) for Tuesday, signaling a higher likelihood of organized severe thunderstorms, including supercells capable of producing strong tornadoes and very large hail.

Advertisement

What is the weather today in Iowa?

Forecasters expect storms to develop late Tuesday afternoon into the evening as a stalled frontal boundary sits across eastern Iowa into Wisconsin. A surge of warm, moisture-rich air moving north from the Missouri Valley will collide with steep mid-level lapse rates and strong wind shear, creating an environment supportive of severe storms.

If storms can form, they are expected to quickly become supercells.

“Large to giant hail and an intense tornado will be possible with the strongest storms,” the Storm Prediction Center noted, especially where wind shear is maximized near surface boundaries.

Are tornadoes in Iowa possible?

Yes — tornadoes are possible across Iowa Tuesday afternoon and evening, though forecasters say the setup is still uncertain and depends on how storms evolve during the day, according to the National Weather Service.

Advertisement

A key factor is a “cap” in the atmosphere that could delay or limit storm development, making the exact timing and placement of storms difficult to pin down early.

Even if afternoon storms remain scattered, activity is expected to increase later Tuesday night as a low-level jet strengthens over the Plains and Midwest. That pattern should help trigger more widespread thunderstorms, especially across southern and central Iowa.

Some of these storms may become elevated above the surface overnight, which could slightly reduce the tornado threat at that point. However, that setup would still support hazards such as heavy rainfall, frequent lightning and hail, particularly in stronger storm clusters.

Advertisement

Still, forecasters say all severe weather hazards remain on the table.

Tornadoes are possible, and a few could be strong if storms stay isolated and develop into discrete supercells.

Large to giant hail is also a concern within the strongest rotating storms that form along boundaries in the warm sector.

Damaging wind gusts may become more widespread later in the evening if storms organize into larger clusters or storm complexes moving across the state.

Advertisement

Storms continue through Friday

Additional severe weather is possible on Wednesday as another upper-level disturbance moves into the region. The exact risk will depend on how Tuesday’s storms evolve and how much instability remains in place.

If conditions recover, supercells with all hazards — including tornadoes — could redevelop across parts of Iowa during peak daytime heating. For now, forecasters have maintained a Slight Risk (Level 2 of 5) for Wednesday.

The active pattern does not end midweek. Another strong system is expected on Friday, bringing a new round of severe storms across much of Iowa ahead of a fast-moving cold front.

Behind it, temperatures will drop sharply over the weekend, with highs falling into the 40s and 50s and a hard freeze possible in northern areas by Saturday night.

Advertisement

Iowa weather radar

Iowa weather watches and warnings

Here are the watches and warnings for the area.

Stay informed. Get weather alerts via text.

Brandi D. Addison covers weather across the United States as the Weather Connect Reporter for the USA TODAY Network. She can be reached at baddison@gannett.com.



Source link

Continue Reading

Iowa

Tornadoes and hail reported across northern Iowa counties

Published

on

Tornadoes and hail reported across northern Iowa counties


Tornadoes and hail reported across northern Iowa counties

Advertisement

KCCI EIGHT NEWS AT TEN STARTS NOW. GOOD EVENING. IT HAS BEEN AN ACTIVE EVENING IN NORTHERN IOWA. ACTIVE WEATHER EVENING. THIS PICTURE SENT TO US BY STEVE FITCHETT SHOWS A TORNADO ON THE GROUND NEAR GILLETT GROVE. YOU CAN SEE THE DEBRIS KICK UP THERE. THIS WAS IN CLAY COUNTY. THIS WAS A TORNADO WARNED STORM NEAR THAT AREA. TONIGHT. A TORNADO WARNED STORM ALSO MOVED THROUGH KOSSUTH COUNTY THIS EVENING. THAT’S A LIVE LOOK RIGHT NOW FROM ALGONA. THANKFULLY THE TORNADO WATCH FOR THE COUNTY JUST EXPIRED AT THE TOP OF THE HOUR, SO IT SHOULD BE A MUCH CALMER NIGHT AHEAD. THE STORM ROLLED THROUGH SANBORN THIS AFTERNOON. TAKE A LOOK AT THIS. ALYSSA BECKER SENT US THESE PICTURES OF THE HAIL THAT FELL THERE TODAY. THAT’S A BIG HAIL AND DOES SOME DAMAGE. ABSOLUTELY. WE SAW EVEN THE LIVE LOOK FROM ALGONA. YOU SAW SOME LIGHTNING THERE. SO EVEN FOR THESE AREAS THAT ARE OUT OF KIND OF THE ROUGH STUFF THERE, JASON, STILL A LITTLE BIT OF A, YOU KNOW, I DON’T KNOW, THINGS THAT CATCHES THEIR EYE TONIGHT. ABSOLUTELY. THERE’S

Advertisement

Tornadoes and hail reported across northern Iowa counties

Updated: 11:16 PM CDT Apr 13, 2026

Editorial Standards

Advertisement

Severe storms swept through northern Iowa Monday evening, bringing tornadoes and hail to several counties.A tornado was spotted on the ground near Gillett Grove in Clay County, as shown in a photo sent by Steve Fitchett. The area experienced a tornado-warned storm Monday night. A tornado-warned storm also moved through Kossuth County this evening. A live view from Algona showed the conditions, and the tornado watch for the county expired at 10 p.m.Earlier in the day, the storm rolled through Sandborn, bringing hail to the area. Alyssa Becker shared pictures of the hail from the scene.

Severe storms swept through northern Iowa Monday evening, bringing tornadoes and hail to several counties.

Advertisement

A tornado was spotted on the ground near Gillett Grove in Clay County, as shown in a photo sent by Steve Fitchett. The area experienced a tornado-warned storm Monday night.

A tornado-warned storm also moved through Kossuth County this evening. A live view from Algona showed the conditions, and the tornado watch for the county expired at 10 p.m.

Earlier in the day, the storm rolled through Sandborn, bringing hail to the area. Alyssa Becker shared pictures of the hail from the scene.

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

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

Advertisement

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

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

Advertisement

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;

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.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kcci.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);
}
}
}
}

Advertisement

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

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

Advertisement

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

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

Advertisement

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

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

Advertisement

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

var location = { zip: window.DEFAULT_ZIPCODE };

Advertisement

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;

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

Advertisement

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.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kcci.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;
}

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

Advertisement

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

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

Advertisement

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…



Source link

Advertisement
Continue Reading

Trending