Wamuchomba reveals plans to ditch UDA in 2027 elections, condemns abductions of govt critics
Wamuchomba reveals plans to ditch UDA in 2027 elections, condemns abductions of govt critics
Read this story aloud
Listen to the clean text version of this article
Ready
4 min listen
Audio reading is not supported on this browser.
The lawmaker expressed disappointment that UDA had misled Kenyans with promises of economic empowerment, financial relief and fair returns for farmers, only to deliver the complete opposite
Githunguri MP Gathoni Wamuchomba has announced that she will not seek re-election under the United Democratic Alliance (UDA), citing deep disappointment with the party and President William Ruto’s administration, which she accused of betraying its supporters.
Speaking to journalists on Wednesday, Wamuchomba insisted that UDA will not be an option for her in future elections.
Wamuchomba, who won her seat in the 2022 general elections under the UDA ticket, stated that she did not campaign for President Ruto to see Kenyans subjected to abductions, killings, or oppressive economic policies.
More To Read
- Kiharu MP Ndindi Nyoro announces exit from UDA
- DP Kindiki hails cooperatives as key to Kenya’s economic transformation
- Police launch manhunt for two ex-Nyandarua County officials over Ol Kalou unrest
- Civil society groups warn Kenya’s Sh13 trillion debt hurting essential services
- Court grants DCI three more days to hold woman over alleged posts tracking President Ruto’s flights
- Construction of Naivasha–Kisumu–Malaba SGR begins in Narok
“I was elected through the UDA party, so I’m still technically a member. However, I never approved of President Ruto merging with ANC. As the merger moves forward, we will wait to see if it’s officially gazetted as we never gave him the mandate to make that decision,” she said.
“If I run for any position in the future, God willing, it will not be under UDA, as the party has betrayed me,” she said in her interview on Citizen TV.
“I did not support President Ruto’s campaign to see my people abducted or killed,” she emphasized.
Latest Stories
- Nairobi among 35 counties to receive rains this week, weatherman says
- Belgium knocks US out of World Cup after Balogun controversy
- KUCCPS set to release university placement results for over 980,000 Form Four leavers
- Saba Saba: Police block key roads as commuters face heavy traffic delays in Nairobi
The Githunguri MP particularly criticised the government’s decision to implement mandatory salary deductions without proper consultation, which she believes negatively impacted the Kenyan people.
She voiced her frustration with what she described as the administration’s “heavy-handed” approach to governance, which she believes has harmed the livelihoods of ordinary citizens.
Pre-election promises
The MP further accused UDA of turning its back on the very people who helped bring it to power, calling out the glaring inconsistency between the party’s pre-election promises and its governance record.
Farmers, she argued, were especially bearing the brunt of UDA’s unkept promises, with critical policies like the guaranteed minimum returns (GMR) fading away, leaving hardworking Kenyans struggling to survive.
“UDA came in and told us that we are going to have ‘pesa mfukoni‘ (money in our pockets). It told us that we would have guaranteed minimum Returns. Where did GMR go? Where is it for my coffee and avocado farmers?” asked Wamuchomba.
The lawmaker expressed disappointment that UDA had misled Kenyans with promises of economic empowerment, financial relief and fair returns for farmers, only to deliver the complete opposite.
“UDA promised us economic empowerment, but the reality is far from that,” she said.
Asked whether she would join a party formed by former Deputy President Rigathi Gachagua, Wamuchomba avoided making a firm commitment but expressed openness to joining any political group that aligns with her values and priorities.
She stressed that her main focus is supporting a platform that genuinely serves the people, rather than one driven by the pursuit of power for personal gain.
Other Topics To Read
Top Stories Today
- Saba Saba: Police block key roads as commuters face heavy traffic delays in Nairobi
- Nairobi among 35 counties to receive rains this week, weatherman says
- Live update: Police mount roadblocks ahead of Saba Saba protests
- KUCCPS set to release university placement results for over 980,000 Form Four leavers
- Presidential candidates to spend only upto Sh4.43 billion on campaigns in draft IEBC rules
- From AI to ‘killer robots’: UN chief issues urgent governance call
`;
}
return “;
}
function commentActionsMarkup(comment, canComment) {
const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
const likeCount = Number(comment.like_count || 0) > 0
? “
: ”;
const likeButton = canComment && comment.status === ‘approved’
? “
: “;
const replyButton = canComment && comment.status === ‘approved’
? “
: ”;
return `
`;
}
function commentMarkup(comment, canComment, isReply = false) {
const pendingBadge = comment.status && comment.status !== ‘approved’
? “
: ”;
const edited = comment.is_edited
? “
: ”;
const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
? `
`
: “;
return `
`;
}
function replyFormMarkup(commentId) {
return `
`;
}
function setNotice(widget, message, type = ‘info’) {
const notice = widget.querySelector(‘[data-role=”notice”]’);
if (!notice) return;
if (!message) {
notice.hidden = true;
notice.textContent = ”;
notice.classList.remove(‘is-error’);
return;
}
notice.hidden = false;
notice.textContent = message;
notice.classList.toggle(‘is-error’, type === ‘error’);
}
function setCount(widget, total) {
const count = widget.querySelector(‘[data-role=”count”]’);
if (!count) return;
const num = Number(total || 0);
count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
}
function openReplyBox(widget, commentId) {
widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
box.hidden = true;
box.innerHTML = ”;
});
const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (!targetItem) return;
const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
if (!replyBox) return;
replyBox.hidden = false;
replyBox.innerHTML = replyFormMarkup(commentId);
const textarea = replyBox.querySelector(‘textarea’);
if (textarea) textarea.focus();
}
function closeReplyBox(container) {
if (!container) return;
container.hidden = true;
container.innerHTML = ”;
}
async function initCommentsWidget(widget) {
const state = {
articleId: Number(widget.dataset.articleId),
loadUrl: widget.dataset.loadUrl,
storeUrl: widget.dataset.storeUrl,
commentsBaseUrl: widget.dataset.commentsBaseUrl,
canComment: widget.dataset.canComment === ‘1’,
page: 1,
perPage: 10,
sort: ‘newest’,
total: 0,
hasMore: false,
busy: false
};
const list = widget.querySelector(‘[data-role=”list”]’);
const loading = widget.querySelector(‘[data-role=”loading”]’);
const empty = widget.querySelector(‘[data-role=”empty”]’);
const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);
async function loadComments(reset = true) {
if (state.busy) return;
state.busy = true;
setNotice(widget, ”);
loading.hidden = false;
if (reset) {
state.page = 1;
list.innerHTML = ”;
empty.hidden = true;
}
try {
const url = new URL(state.loadUrl, window.location.origin);
url.searchParams.set(‘page’, state.page);
url.searchParams.set(‘per_page’, state.perPage);
url.searchParams.set(‘sort’, state.sort);
const response = await requestJson(url.toString(), {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’,
‘X-Requested-With’: ‘XMLHttpRequest’
}
});
const items = Array.isArray(response.data) ? response.data : [];
const meta = response.meta || {};
state.total = Number(meta.total || 0);
state.hasMore = !!meta.has_more;
setCount(widget, state.total);
if (reset) {
list.innerHTML = ”;
}
if (!items.length && reset) {
empty.hidden = false;
} else {
empty.hidden = true;
list.insertAdjacentHTML(
‘beforeend’,
items.map(item => commentMarkup(item, state.canComment, false)).join(”)
);
}
loadMoreBtn.hidden = !state.hasMore;
} catch (error) {
if (!list.children.length) {
empty.hidden = false;
empty.textContent = ‘Unable to load comments right now.’;
}
setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
} finally {
loading.hidden = true;
state.busy = false;
}
}
async function submitTopLevelComment(form) {
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘[data-role=”submit-comment”]’);
if (!textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(state.storeUrl, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
textarea.value = ”;
if (response?.data) {
list.insertAdjacentHTML(
‘afterbegin’,
commentMarkup(response.data, state.canComment, false)
);
empty.hidden = true;
if ((response.data.status || ”) === ‘approved’) {
state.total += 1;
setCount(widget, state.total);
}
}
setNotice(widget, response.message || ‘Comment posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post comment’;
}
}
}
async function submitReply(form) {
const commentId = Number(form.dataset.commentId || 0);
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘.ev-comments__reply-submit’);
if (!commentId || !textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
if (response?.data) {
const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (parentItem) {
const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
if (repliesWrap) {
repliesWrap.insertAdjacentHTML(
‘beforeend’,
commentMarkup(response.data, state.canComment, true)
);
}
}
}
closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
setNotice(widget, response.message || ‘Reply posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post reply’;
}
}
}
async function toggleLike(button) {
const commentId = Number(button.dataset.commentId || 0);
if (!commentId) return;
const originalHtml = button.innerHTML;
try {
button.disabled = true;
button.innerHTML = ‘Working…’;
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({})
});
const liked = !!response?.data?.liked;
const likeCount = Number(response?.data?.like_count || 0);
button.classList.toggle(‘is-liked’, liked);
button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
} catch (error) {
button.innerHTML = originalHtml;
setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
} finally {
button.disabled = false;
}
}
if (composerForm) {
composerForm.addEventListener(‘submit’, function (e) {
e.preventDefault();
submitTopLevelComment(composerForm);
});
}
if (sortSelect) {
sortSelect.addEventListener(‘change’, function () {
state.sort = this.value || ‘newest’;
loadComments(true);
});
}
if (loadMoreBtn) {
loadMoreBtn.addEventListener(‘click’, function () {
if (state.busy || !state.hasMore) return;
state.page += 1;
loadComments(false);
});
}
widget.addEventListener(‘click’, function (e) {
const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
if (likeBtn) {
e.preventDefault();
toggleLike(likeBtn);
return;
}
const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
if (replyBtn) {
e.preventDefault();
openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
return;
}
const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
if (cancelReplyBtn) {
e.preventDefault();
closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
}
});
widget.addEventListener(‘submit’, function (e) {
const replyForm = e.target.closest(‘.ev-comments__reply-form’);
if (replyForm) {
e.preventDefault();
submitReply(replyForm);
}
});
loadComments(true);
}
document.addEventListener(‘DOMContentLoaded’, function () {
document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
});
})();
Trending
KUCCPS set to release university placement results for over 980,000 Form Four leaversEducation
|Lucy Mumbi
|30 minutes ago
Saba Saba: Police block key roads as commuters face heavy traffic delays in NairobiNews
|Lucy Mumbi
|50 minutes ago
Live update: Police mount roadblocks ahead of Saba Saba protestsNational
|Eastleigh Voice Reporter
|1 hour ago
Burkina Faso tightens grip on NGOs with new ban on exploitative humanitarian imagesAfrica
|Rachael Mutabasi
|1 day ago
Kenyans urged to join Saba Saba march to honour victims of alleged abductions, killingsNews
|Lucy Mumbi
|1 day ago
Mombasa tuk-tuk operators issue seven-day ultimatum over new traffic penaltiesCoast
|Farhiya Hussein
|2 hours ago
Peace team sounds alarm over gang attacks on worship centres and peaceful gatheringsNational
|Abdirahman Khalif
|12 hours ago
From AI to ‘killer robots’: UN chief issues urgent governance callTechnology
|UN News
|2 hours ago
Nairobi among 35 counties to receive rains this week, weatherman saysNews
|Lucy Mumbi
|4 minutes ago
Belgium knocks US out of World Cup after Balogun controversyNews
|DW News
|22 minutes ago