Rising Stars honoured by Sports Ministry after qualifying for 2025 U20 AFCON

Rising Stars honoured by Sports Ministry after qualifying for 2025 U20 AFCON

The Kenya U20 Men’s football National team, poses for a group photo with Sports CS Kipchumba Murkomen and other officials (C) MOSCA

Read this story aloud

Listen to the clean text version of this article

Ready
2 min listen
Audio reading is not supported on this browser.

The U-20 national football team was hosted by Sports Cabinet Secretary Kipchumba Murkomen, who rewarded the Rising Stars for their display in the just-concluded U-20 AFCON CECAFA qualifiers in Tanzania

The Rising Stars have been awarded Sh1.8 million by the Ministry of Sports in recognition of their qualification for the 2025 Africa Cup of Nations Under-20 (AFCON).
This announcement follows the team’s commendable run during the U-20 AFCON-CECAFA qualifiers, where they secured a spot in the continental tournament despite a narrow 2-1 defeat to Tanzania in the final at the KMC Stadium in Tanzania last Sunday.
The celebration for their achievement took place on Tuesday, October 22, at the Talanta Plaza rooftop, hosted by the Cabinet Secretary for Sports, Kipchumba Murkomen. During the event, the CS applauded the Rising Stars for their resilience and determination, emphasizing that their qualification represents a significant step forward for Kenyan football.

More To Read

  • Missing persons crisis: Majority of cases still unresolved as 206 unaccounted for since 2022
  • Police officer accused of Garissa shooting on the run, CS Murkomen tells Senate
  • Murkomen outlines measures preventing officers interfering in extra-judicial killing cases

In his address, Murkomen reassured the players of the government’s unwavering support as they prepare for the upcoming AFCON. He promised to provide the necessary resources for their preparations, including plans for an international training camp.
“Unlike in the past, national teams are now fully supported financially for international competitions, ensuring they focus solely on performance without logistical concerns,” Murkomen said.
He also outlined plans for the team’s AFCON preparation, which include extended training camps both locally and abroad, as well as friendlies with high-caliber teams.

Latest Stories

  • Government extends security operation in Marsabit, declares multiple areas dangerous for 30 more days
  • Three arrested after Linda Mwananchi convoy attacked in Kisii as police hunt for more suspects
  • Mbappé fires France past Paraguay into World Cup quarter-finals
  • Cherotich, Odira shine as Kenya dominates Prefontaine Classic despite rare Kipyegon defeat

“Our sights are not just set on AFCON glory but also qualifying for the U-20 FIFA World Cup,” he added.

Other Topics To Read

  • CECAFA U20 AFCON Qualifiers
  • Rising Stars
  • cs kipchumba murkomen

Top Stories Today

  • Three arrested after Linda Mwananchi convoy attacked in Kisii as police hunt for more suspects
  • State extends security operation in Marsabit, declares multiple areas dangerous for 30 more days
  • Mbappé fires France past Paraguay into World Cup quarter-finals
  • Cherotich, Odira shine as Kenya dominates Prefontaine Classic despite rare Kipyegon defeat
  • Weekly new Ebola cases reach highest level since outbreak began: WHO
  • Kenya reaffirms ties with Rwanda as it marks Liberation Day celebrations

`;
}

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


Three arrested after Linda Mwananchi convoy attacked in Kisii as police hunt for more suspectsNews
|Lucy Mumbi
|36 minutes ago

Cherotich, Odira shine as Kenya dominates Prefontaine Classic despite rare Kipyegon defeatSports
|Erick Kariuki
|1 hour ago

Portugal edge Croatia in dramatic finish to book last-16 spotSports
|The New Times
|2 days ago

Somalia intelligence agency kills Al-Shabaab mortar unit leader in Basra operationSomalia
|Bashir Mbuthia
|11 hours ago

SHA seeks Treasury funds to clear NHIF claims above Sh10 millionHealth
|Charity Kilei
|15 hours ago

Morocco continue historic rise with record-breaking World Cup victory against CanadaSports
|Erick Kariuki
|9 hours ago

IGAD pushes regional action to tackle plastic pollutionNews
|Rachael Mutabasi
|20 hours ago

Slum residents urged to adopt ‘localised solutions’ to mitigate climate change effectsNews
|Hussein Hassan
|20 hours ago

Egypt end 92-year wait to reach World Cup last 16News
|Erick Kariuki
|1 day ago

Ethiopia coffee exports hit record Sh388 billion on rising global demandRegional
|Bashir Mbuthia
|1 day ago

Share.
Leave A Reply

Exit mobile version