feat: add star count display and fetch functionality in sidebar
This commit is contained in:
@@ -11,6 +11,7 @@ const customizer = useCustomizerStore();
|
||||
const sidebarMenu = shallowRef(sidebarItems);
|
||||
|
||||
const showIframe = ref(false);
|
||||
const starCount = ref(null);
|
||||
|
||||
const sidebarWidth = ref(235);
|
||||
const minSidebarWidth = 200;
|
||||
@@ -176,6 +177,25 @@ function startSidebarResize(event) {
|
||||
document.addEventListener('mouseup', onMouseUpResize);
|
||||
}
|
||||
|
||||
function formatNumber(num) {
|
||||
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||
}
|
||||
|
||||
async function fetchStarCount() {
|
||||
try {
|
||||
const response = await fetch('https://cloud.astrbot.app/api/v1/github/repo-info');
|
||||
const data = await response.json();
|
||||
if (data.data && data.data.stargazers_count) {
|
||||
starCount.value = data.data.stargazers_count;
|
||||
console.debug('Fetched star count:', starCount.value);
|
||||
}
|
||||
} catch (error) {
|
||||
console.debug('Failed to fetch star count:', error);
|
||||
}
|
||||
}
|
||||
|
||||
fetchStarCount();
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -204,6 +224,13 @@ function startSidebarResize(event) {
|
||||
</v-btn>
|
||||
<v-btn style="margin-bottom: 8px;" size="small" variant="plain" @click="openIframeLink('https://github.com/AstrBotDevs/AstrBot')">
|
||||
{{ t('core.navigation.github') }}
|
||||
<v-chip
|
||||
v-if="starCount"
|
||||
size="x-small"
|
||||
variant="outlined"
|
||||
class="ml-2"
|
||||
style="font-weight: normal;"
|
||||
>{{ formatNumber(starCount) }}</v-chip>
|
||||
</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user