Connect with us

Louisiana

Landry’s plan could overhaul Louisiana’s overly-complex tax system – Washington Examiner

Published

on

Landry’s plan could overhaul Louisiana’s overly-complex tax system – Washington Examiner


(The Center Square) — The Louisiana Legislature could soon contemplate the state’s most comprehensive tax overhaul in decades.

The package from Gov. Jeff Landry — dubbed the “Louisiana Forward” initiative — includes 10 bills intended to simplify and modernize the state’s tax system while spurring economic growth.

“This plan seeks to attract investment, while protecting low income earners, our middle class, and our seniors,” Landry said at a recent news conference. “A plan that will fix Louisiana to compete for new jobs, greater wages and produce a thriving economy in a new Industrial South.”

The proposal seeks to eliminate what Landry calls “uncompetitive taxes,” such as the franchise and inventory taxes. Recent testimony from Richard Nelson, the secretary of the Louisiana Department of Revenue, said that the reform intends to broaden the tax base by eliminating various tax preferences and lowering rates, making Louisiana’s tax system more competitive both nationally and regionally.

Advertisement

One of the key elements of the package is a move toward a simpler, flat income tax structure with fewer carveouts, aiming to streamline the state’s complex tax code. By reducing the number of deductions and exemptions, the state hopes to create a more equitable system that promotes fairness and predictability.

The income tax reform proposes a flat 3% individual income tax rate, with standard deductions of $12,500 for single filers and $25,000 for joint filers.

It includes a $12,000 retirement income exemption but repeals the additional $1,000 deduction for seniors, the blind, and dependents, as well as deductions for net capital gains and certain business expenses. Seniors could see an extra 0.2% tax rate reduction and doubled standard deductions if constitutional changes are approved.

“The plan has something for everyone,” Nelson said. “There’s the increase in standard deduction, and the flat rate which makes it better for everyone.”

Landry’s proposal also calls for giving the state legislature greater spending flexibility by removing the restrictions on how specific funds are used, thereby unlocking revenues for broader use. Additionally, the plan accelerates state debt payments, freeing up recurring general fund revenue for other uses.

Advertisement

A significant part of the proposal includes a “sales tax cleanup,” which mandates local tax exemptions for prescription drugs and manufacturing machinery, aligning them with state policies. Additionally, the package would move exemptions out of the complex definitions section of Louisiana’s tax code into more transparent exemption provisions.

Among the notable changes is the redirection of 0.03% of sales tax from the Louisiana Tourism Promotion District to the state’s general fund, providing more flexibility in the state’s budgeting process. Other proposals make permanent a partial sales tax exemption on business utilities, while consolidating related exemptions in areas such as medical, agricultural, and educational materials.

The estimated fiscal impact of these sales tax reforms ranges between $840 million and $860 million, according to the Louisiana Department of Revenue.

One of the most forward-looking components of the package involves modernizing how the state handles the taxation of digital products. With a growing number of transactions moving from physical goods to digital formats,

Louisiana’s current tax law lacks clarity on how to address this shift. The reform package seeks to expand the state and local tax base to include the sale of digital products and services.

Advertisement

This would cover items such as digital books, audiovisual works, computer software access services, and information services, according to the LDOR. Under the proposed rules, the sales tax would apply when taxpayers download, access, or use digital products.

The inclusion of digital products is projected to bring in an additional $90 million to $120 million annually, making it a significant revenue generator in an increasingly digital economy.

Several elements of Landry’s package will require constitutional amendments, meaning they will have to be approved by voters in a statewide referendum. These include eliminating certain taxes and adjusting how state funds can be spent. While the proposed reforms have the potential to unlock significant economic growth, they have not been without scrutiny.

According to Invest in Louisiana, Landry’s tax reform plan could worsen the deficit and threaten essential programs and public services, particularly in education and health care, which he aims to shield from budget cuts.

CLICK HERE TO READ MORE FROM THE WASHINGTON EXAMINER

Advertisement

The Institute for Taxation and Economic Policy warns that the proposal would shift the tax burden onto the middle class, especially if it doesn’t effectively address the budget shortfall, potentially leading to higher tax rates.

“The income-tax cut would cost the state more than $1.1 billion per year in lost revenue,” Invest in Louisiana stated, using data from the Institute for Taxation and Economic Policy. “The largest share of the tax cut would go to the top 1% of Louisiana income earners.”



Source link

Louisiana

Police identify dirt Bike rider killed while allegedly fleeing from police during traffic stop

Published

on

Police identify dirt Bike rider killed while allegedly fleeing from police during traffic stop


The Louisiana State Police have identified the dirt bike rider who was involved in a deadly crash while evading police on Canal Boulevard.Landon Smith, 24, of Winnfield, was killed in the crash. Police say the crash happened around 5 p.m. on Canal Boulevard at City Park Avenue. Preliminary investigation revealed that New Orleans police were attempting to conduct a traffic stop on Canal Street in the French Quarter involving a dirt bike, driven by Smith. Police say Smith was driving recklessly and refused to stop, and continued to flee from police. Troop NOLA was made aware of the attempted traffic stop, and minutes later, they say Smith was traveling at a high rate of speed on Orleans Avenue while driving the wrong way into oncoming traffic. Troopers attempted to initiate a traffic stop, but Smith continued to evade police.Both NOPD and the troopers lost sight of the dirt bike. Troopers eventually located a crash involving the dirt bike and a truck at the intersection of City Park Avenue and Canal Boulevard.Law enforcement rendered aid to Smith, and he was transported to a local hospital, where he later died. According to state police, Smith was traveling west on City Park Avenue at a high rate of speed on the right shoulder, while passing westbound traffic stopped at a red light. As he approached the intersection of Canal Boulevard and disregarded the red light and continued straight through the intersection, hitting the right side of the truck, which was making a left turn onto Canal Boulevard from eastbound City Park Avenue. This is an ongoing investigation.

The Louisiana State Police have identified the dirt bike rider who was involved in a deadly crash while evading police on Canal Boulevard.

Landon Smith, 24, of Winnfield, was killed in the crash.

Advertisement

Police say the crash happened around 5 p.m. on Canal Boulevard at City Park Avenue.

Preliminary investigation revealed that New Orleans police were attempting to conduct a traffic stop on Canal Street in the French Quarter involving a dirt bike, driven by Smith.

Police say Smith was driving recklessly and refused to stop, and continued to flee from police.

Troop NOLA was made aware of the attempted traffic stop, and minutes later, they say Smith was traveling at a high rate of speed on Orleans Avenue while driving the wrong way into oncoming traffic.

Advertisement

Troopers attempted to initiate a traffic stop, but Smith continued to evade police.

Both NOPD and the troopers lost sight of the dirt bike.

Troopers eventually located a crash involving the dirt bike and a truck at the intersection of City Park Avenue and Canal Boulevard.

Law enforcement rendered aid to Smith, and he was transported to a local hospital, where he later died.

According to state police, Smith was traveling west on City Park Avenue at a high rate of speed on the right shoulder, while passing westbound traffic stopped at a red light.

Advertisement

As he approached the intersection of Canal Boulevard and disregarded the red light and continued straight through the intersection, hitting the right side of the truck, which was making a left turn onto Canal Boulevard from eastbound City Park Avenue.

This is an ongoing investigation.



Source link

Advertisement
Continue Reading

Louisiana

Why this New Orleans rooftop bar is considered one of the best in US

Published

on

Why this New Orleans rooftop bar is considered one of the best in US


play

During the Gilded Age in New York City, rooftop bars originated as a way to escape the busy streets and enjoy refreshing drinks while observing the city with a birds-eye view.

Rooftop bars have held onto their novelty, as they serve as social hotspots for locals and as a perfect place for visitors to take in a new city.

Advertisement

Whether watching the day unfold or on a night out under the stars, rooftop bars remain popular spots for enjoying libations.

Mambo’s in New Orleans named best rooftop bar in Louisiana

Mambo’s in New Orleans is the best rooftop bar in Louisiana, according to Foodie, and is the only rooftop bar on Bourbon Street.

This rooftop bar offers a unique vantage point of the infamous Bourbon Street, with panoramic views and a lively atmosphere making the bar a perfect place to take in New Orleans’ ambience.

The open-air space seats over 50 guests, and is the perfect place for a night out or for laid-back afternoon cocktails with a view of New Orleans’ iconic French and Spanish architecture.

Advertisement

The rooftop bar is not the only feature attracting patrons, as this three-story building holds a hidden entrance to a secret courtyard on the main floor that leads to a patio garden. On the second floor, there is another, more intimate bar adorned with Louisiana-themed decor.

Each floor retains a rustic, historical feel, with exposed brick and reclaimed cypress planks making up the building’s interior structure. Decorating the space are pieces of local art and cultural Louisiana artifacts, making the space feel somewhat like a museum.

Not just a spot for good drinks, Mambo’s offers a dining menu full of traditional Cajun and Creole flavors. Using only the freshest local ingredients, Mambo’s chefs create a menu rich in New Orleans heritage, offering dishes like jambalaya, seafood gumbo, crawfish étouffée and a variety of po’boys.

The best rooftop bar in every state according to Foodie

  • Alabama: GunRunner Rooftop Bar in Florence
  • Alaska: 49th State Brewing in Anchorage
  • Arizona: The Perch Brewery in Chandler
  • Arkansas: Celeste at The Preacher’s Son in Bentonville
  • California: Florentín Rooftop Bar in Los Angeles
  • Colorado: 54thirty Rooftop in Denver
  • Connecticut: Sign of the Whale in Stamford
  • Delaware: The Quoin Hotel + Restaurant in Wilmington
  • Florida: Rosa Sky in Miami
  • Georgia: 9 Mile Station in Atlanta
  • Hawaii: Tikis Grill & Bar in Honolulu
  • Idaho: Crave Kitchen & Bar in Eagle
  • Illinois: Raised | An Urban Rooftop Bar in Chicago
  • Indiana: 3UP Rooftop Lounge in Carmel
  • Iowa: Wellman’s Pub & Rooftop in Des Moines
  • Kansas: Tallgrass Tap House in Manhattan
  • Kentucky: Lost Palm in Lexington
  • Louisiana: Mambo’s in New Orleans
  • Maine: Luna Rooftop Bar in Portland
  • Maryland: Hip Flask Rooftop Bar in Bethesda
  • Massachusetts: Apex Rooftop Bar and Lounge in Boston
  • Michigan: The Monarch Club in Detroit
  • Minnesota: Brit’s Pub in Minneapolis
  • Mississippi: 10 South Rooftop Bar and Grill in Vicksburg
  • Missouri: 360 Rooftop Bar in St. Louis
  • Montana: Bozeman Taproom & Spirits in Bozeman
  • Nebraska: The Rooftop in Lincoln
  • Nevada: Chéri Rooftop in Las Vegas
  • New Hampshire: Rooftop at The Envio in Portsmouth
  • New Jersey: RoofTop at Exchange Place in Jersey City
  • New Mexico: Coyote Cantina in Santa Fe
  • New York: 230 Fifth in New York City
  • North Carolina: Aura Rooftop in Charlotte
  • North Dakota: Camp Lonetree in Fargo
  • Ohio: VASO Rooftop Lounge in Dublin
  • Oklahoma: Social Capital in Oklahoma City
  • Oregon: The Roof Deck at Revolution Hall in Portland
  • Pennsylvania: Standard Tap in Philadelphia
  • Rhode Island: Rooftop at the Providence G in Providence
  • South Carolina: Rip Tydz in Myrtle Beach
  • South Dakota: Juniper at Vertex Sky Bar in Rapid City
  • Tennessee: The Lookout at Ole Red in Nashville
  • Texas: Upstairs at Caroline in Austin
  • Utah: The Green Pig Pub in Salt Lake City
  • Vermont: Juniper Bar & Restaurant in Burlington
  • Virginia: The Lost Fox Hideaway in Ashburn
  • Washington: The Pink Door in Seattle
  • West Virginia: LaFontaine’s Rooftop Lounge in Huntington
  • Wisconsin: People’s Park in Waukesha
  • Wyoming: Bear Bottom Bar and Grill in Centennial

Presley Bo Tyler is the Louisiana Deep South Connect Team reporter for USA Today Network. Find her on X @PresleyTyler02 and email at PTyler@Gannett.com



Source link

Advertisement
Continue Reading

Louisiana

Louisiana State Police investigating deadly crash after driver allegedly evades police

Published

on

Police identify dirt Bike rider killed while allegedly fleeing from police during traffic stop


Louisiana State Police investigating deadly crash after driver allegedly evades police

Advertisement

ma’am. I Yeah. Yeah. I ma. Yeah. Yeah. ma’am. Yeah. Um.

Advertisement

Louisiana State Police investigating deadly crash after driver allegedly evades police

Updated: 9:30 PM CDT Apr 6, 2026

Editorial Standards

Advertisement

Louisiana State Police are investigating a crash after a driver allegedly evaded police on Canal Boulevard. Police say the crash happened around 5 p.m. on Canal Boulevard at City Park Avenue. The crash happened after the rider of the dirt bike struck another car while evading New Orleans police and Louisiana State Police, who were attempting to conduct a traffic stop. The subject was taken to a local hospital, where he later died. The name or age of the dirt bike rider was provided. This is an ongoing investigation. Anyone with information and/or pictures and videos is urged to share that information with LSP Detectives. You may anonymously report information through the Louisiana State Police online reporting system by visiting lsp.org and clicking on Report Suspicious or Criminal Activity, or by calling the LSP Fusion Center Hotline at 1-800-434-8007.

Louisiana State Police are investigating a crash after a driver allegedly evaded police on Canal Boulevard.

Advertisement

Police say the crash happened around 5 p.m. on Canal Boulevard at City Park Avenue.

The crash happened after the rider of the dirt bike struck another car while evading New Orleans police and Louisiana State Police, who were attempting to conduct a traffic stop.

The subject was taken to a local hospital, where he later died.

Advertisement

The name or age of the dirt bike rider was provided.

This is an ongoing investigation.

Anyone with information and/or pictures and videos is urged to share that information with LSP Detectives. You may anonymously report information through the Louisiana State Police online reporting system by visiting lsp.org and clicking on Report Suspicious or Criminal Activity, or by calling the LSP Fusion Center Hotline at 1-800-434-8007.

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

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

`;
}

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

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

Advertisement

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

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

Advertisement

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

Advertisement

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

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

Advertisement

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

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

Advertisement

Loading more articles…



Source link

Continue Reading

Trending