U.S. Senator Lindsey Graham (R-South Carolina) has died
Really isn’t that what it’s about? Having somebody in Washington that can deliver for you and your family. If you think President Trump’s done *** good job. Donald Trump. I’ve never met anybody like him. He’s *** force of nature. Uh, he is one of the most consequential presidents, I think in my lifetime for sure. He’s become *** close friend and I’ve enjoyed my job.
Updated: 4:27 AM EDT Jul 12, 2026
Editorial Standards ⓘ
U.S. Senator Lindsey Graham (R-South Carolina) has died
Updated: 4:27 AM EDT Jul 12, 2026
Editorial Standards ⓘ
U.S. Senator Lindsey Graham (R-South Carolina) has died.The senator’s office released the following statement early Sunday morning:“On the evening of Saturday, July 11, U.S. Senator Lindsey Graham passed away from a brief and sudden illness. Senator Graham’s family appreciates prayers at this time and asks for privacy during this incredibly difficult period.” Graham was 71 years old. He was in Washington when he died, NBC News confirms.WYFF News 4 will continue to follow this breaking news. Read reaction to his death here.Biography from Sen. Graham’s website:”Graham was elected to the United States Senate in 2002 and was re-elected in 2008, 2014, and 2020. He became the first person in South Carolina history to garner over one million votes in the 2008 general election.”Graham currently serves as Chairman of the Senate Budget Committee. Graham also serves as a member of the Senate Committee on Appropriations, Senate Judiciary Committee, and Senate Committee on Environment and Public Works.Video below: Lindsey Graham highlights record, defends experience in Senate race “Prior to serving in the Senate, Graham was elected to the U.S. House of Representatives in 1994 as the first Republican from the Third Congressional District of South Carolina since 1877.”Before being elected to Congress, Graham compiled a distinguished record in the United States Air Force as he logged six-and-a-half years of service on active duty as an Air Force lawyer. From 1984-1988, he was assigned overseas and served at Rhein-Main Air Force Base in Germany. Upon leaving active duty Air Force in 1989, Graham joined the South Carolina Air National Guard where he served until 1995. During the first Gulf War in the early 90’s, Graham was called to active duty and served state-side at McEntire Air National Guard Base as Staff Judge Advocate where he prepared members for deployment to the Gulf region.”In 1995, Graham joined the U.S. Air Force Reserves. During American military operations in Iraq and Afghanistan, Graham put his experience in military law to use pulling numerous short-term Reserve duties in both countries over congressional breaks and holidays.”Graham retired from the Air Force Reserves in June 2015 having served his country in uniform for 33 years. He retired at the rank of Colonel.”A native South Carolinian, Graham grew up in a blue collar family in the small town of Central where his parents ran a restaurant and pool hall. The first member of his family to go to college, Graham earned his undergraduate and law degrees from the University of South Carolina. He lives in Seneca and is a member of Corinth Baptist Church.”President Donald Trump statement:Governor Henry McMaster issues statement:”Peggy and I—and our children—are devastated. Lindsey Graham is irreplaceable. The fiercest of fighters for South Carolina and America—and a loyal and steadfast friend. We grieve with Darline, his family and his devoted staff. May God hold him gently in the palm of his hand. We shall not see his likes again.”Read more reaction here.
GREENVILLE, S.C. —
U.S. Senator Lindsey Graham (R-South Carolina) has died
The senator’s office released the following statement early Sunday morning:
“On the evening of Saturday, July 11, U.S. Senator Lindsey Graham passed away from a brief and sudden illness. Senator Graham’s family appreciates prayers at this time and asks for privacy during this incredibly difficult period.”
Graham was 71 years old. He was in Washington when he died, NBC News confirms
This content is imported from Twitter.
You may be able to find the same content in another format, or you may be able to find more information, at their web site.
WYFF News 4 will continue to follow this breaking news
Read reaction to his death here
Biography from Sen. Graham’s website:
“Graham was elected to the United States Senate in 2002 and was re-elected in 2008, 2014, and 2020. He became the first person in South Carolina history to garner over one million votes in the 2008 general election
“Graham currently serves as Chairman of the Senate Budget Committee. Graham also serves as a member of the Senate Committee on Appropriations, Senate Judiciary Committee, and Senate Committee on Environment and Public Works
Video below: Lindsey Graham highlights record, defends experience in Senate race
“Prior to serving in the Senate, Graham was elected to the U.S. House of Representatives in 1994 as the first Republican from the Third Congressional District of South Carolina since 1877
“Before being elected to Congress, Graham compiled a distinguished record in the United States Air Force as he logged six-and-a-half years of service on active duty as an Air Force lawyer. From 1984-1988, he was assigned overseas and served at Rhein-Main Air Force Base in Germany. Upon leaving active duty Air Force in 1989, Graham joined the South Carolina Air National Guard where he served until 1995. During the first Gulf War in the early 90’s, Graham was called to active duty and served state-side at McEntire Air National Guard Base as Staff Judge Advocate where he prepared members for deployment to the Gulf region.
“In 1995, Graham joined the U.S. Air Force Reserves. During American military operations in Iraq and Afghanistan, Graham put his experience in military law to use pulling numerous short-term Reserve duties in both countries over congressional breaks and holidays
“Graham retired from the Air Force Reserves in June 2015 having served his country in uniform for 33 years. He retired at the rank of Colonel
“A native South Carolinian, Graham grew up in a blue collar family in the small town of Central where his parents ran a restaurant and pool hall. The first member of his family to go to college, Graham earned his undergraduate and law degrees from the University of South Carolina. He lives in Seneca and is a member of Corinth Baptist Church.”
President Donald Trump statement:
Governor Henry McMaster issues statement:
“Peggy and I—and our children—are devastated. Lindsey Graham is irreplaceable. The fiercest of fighters for South Carolina and America—and a loyal and steadfast friend. We grieve with Darline, his family and his devoted staff. May God hold him gently in the palm of his hand. We shall not see his likes again.”
Read more reaction here
Weather Information
‘
+ ‘
‘;
var gptLayer = window.gptLayer;
if (gptLayer && typeof gptLayer.insertAds === ‘function’) {
var slotsBefore = gptLayer.adSlots ? gptLayer.adSlots.length : 0;
gptLayer.insertAds();
if ((gptLayer.adSlots ? gptLayer.adSlots.length : 0) > slotsBefore) {
if (typeof gptLayer.callAdSlots === ‘function’) {
gptLayer.callAdSlots(‘imm’);
}
}
}
}
}
function closeRadarOverlay(containerId) {
var overlay = document.getElementById(containerId + ‘-radar-overlay’);
if (!overlay) return;
overlay.classList.remove(‘is-open’);
overlay.setAttribute(‘aria-hidden’, ‘true’);
document.body.classList.remove(‘weather-radar-overlay-active’);
var adSlot = overlay.querySelector(‘.weather-radar-overlay__ad-slot’);
if (adSlot) {
adSlot.innerHTML = ”;
}
}
function trackRadarOverlayInteraction(containerId) {
var now = Date.now();
var key = ‘radar_overlay_last_interaction_’ + containerId;
if (!window[key] || now – window[key] > 10000) {
window[key] = now;
dispatchWeatherGA4Event(‘radar_overlayinteraction’, ‘interaction’, containerId);
}
}
function isMobileOrTabletViewport(breakpoint = 980) {
const w = window.innerWidth || document.documentElement.clientWidth || 0;
return w < breakpoint;
}
function removeUnusedWeatherModule() {
const desktopClass = ‘sidelist-weather’;
const mobileClass = ‘mobile-weather’;
if (isMobileOrTabletViewport()) {
console.log(‘[WEATHER-BOX] Mobile/tablet viewport detected, removing desktop weather module if it exists’);
const desktopModule = document.querySelector(‘.’ + desktopClass);
if (desktopModule) {
console.log(‘[WEATHER-BOX] Removing desktop weather module’);
desktopModule.remove();
}
} else {
console.log(‘[WEATHER-BOX] Desktop viewport detected, removing mobile weather module if it exists’);
const mobileModule = document.querySelector(‘.’ + mobileClass);
if (mobileModule) {
console.log(‘[WEATHER-BOX] Removing mobile weather module’);
mobileModule.remove();
}
}
}
document.addEventListener(‘DOMContentLoaded’, function() {
removeUnusedWeatherModule();
function generateForecastItem(data) {
var ariaLabel = data.timeLabel + ‘, ‘ + data.primaryTemp + ‘ degrees, ‘ +
data.secondaryInfo + ‘ percent chance of precipitation’;
return `
`;
}
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’);
});
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;
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’, ‘/alerts’);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, ‘/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);
}
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;
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 < maxHours; i++) {
var hour = weatherData.hourly[i];
html += generateForecastItem({
timeLabel: hour.hour_display,
iconName: hour.icon_name,
primaryTemp: hour.temp_f,
secondaryInfo: hour.precip_chance + ‘%’
});
}
hourlyContainer.innerHTML = html;
}
}
if (weatherData.daily) {
var dailyContainer = container.querySelector(‘.weather-daily-forecast’);
if (dailyContainer) {
var html = ”;
var maxDays = Math.min(visibleItems, weatherData.daily.length);
for (var i = 0; i < maxDays; i++) {
var day = weatherData.daily[i];
var dayName = getShortDayName(day.day);
html += generateForecastItem({
timeLabel: dayName,
iconName: day.icon_name,
primaryTemp: day.high_f,
secondaryInfo: day.precip_chance + ‘%’
});
}
dailyContainer.innerHTML = html;
}
}
}
function getShortDayName(dayName) {
switch (dayName) {
case ‘Today’:
return ‘Today’;
case ‘Tomorrow’:
return ‘Tmrw’;
case ‘Sunday’:
return ‘Sun’;
case ‘Monday’:
return ‘Mon’;
case ‘Tuesday’:
return ‘Tue’;
case ‘Wednesday’:
return ‘Wed’;
case ‘Thursday’:
return ‘Thu’;
case ‘Friday’:
return ‘Fri’;
case ‘Saturday’:
return ‘Sat’;
default:
return dayName;
}
}
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
var isActive = tab.classList.contains(‘open’);
tab.setAttribute(‘tabindex’, ‘0’); // Both tabs focusable for VoiceOver
tab.setAttribute(‘role’, ‘tab’);
tab.setAttribute(‘aria-selected’, isActive);
tab.addEventListener(‘keydown’, function(e) {
var tabs = Array.from(container.querySelectorAll(‘[data-tab-id]’));
var currentIndex = tabs.indexOf(this);
switch(e.key) {
case ‘ArrowLeft’:
e.preventDefault();
var prevIndex = currentIndex > 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex < tabs.length – 1 ? currentIndex + 1 : 0;
tabs[nextIndex].focus();
break;
case ‘Enter’:
case ‘ ‘:
e.preventDefault();
var tabId = this.getAttribute(‘data-tab-id’);
switchWeatherTab(tabId, this);
if (tabId === ‘hourly’) {
dispatchWeatherGA4Event(‘click_hourly’, ‘click’, containerId);
} else if (tabId === ‘daily’) {
dispatchWeatherGA4Event(‘click_daily’, ‘click’, containerId);
}
break;
}
});
tab.onclick = function() {
var tabId = this.getAttribute(‘data-tab-id’);
switchWeatherTab(tabId, this);
if (tabId === ‘hourly’) {
dispatchWeatherGA4Event(‘click_hourly’, ‘click’, containerId);
} else if (tabId === ‘daily’) {
dispatchWeatherGA4Event(‘click_daily’, ‘click’, containerId);
}
return false;
};
});
loadWeatherData();
window.addEventListener(‘pageshow’, function(event) {
if (event.persisted) {
// Fix for weather radar iframe appearing gray after browser back/forward navigation
// When user navigates back, the page loads from browser cache but the iframe
// content doesn’t restore properly, showing a gray screen instead of the radar map
// This forces a fresh reload of the iframe by adding a timestamp parameter
setTimeout(function() {
refreshWeatherIframe(containerId);
}, 300);
}
});
}
document.querySelectorAll(‘.weather-sidebar’).forEach(function(weatherBox) {
initializeWeatherBox(weatherBox);
});
});
![]()

Make WYFF 4 a preferred source on Google

