diff --git a/frontend/src/components/MainNav.vue b/frontend/src/components/MainNav.vue
index 6217341..ecb9c76 100644
--- a/frontend/src/components/MainNav.vue
+++ b/frontend/src/components/MainNav.vue
@@ -29,11 +29,13 @@
-
- {{ statsStore.state.stats?.latest || 0 }}
-
-
- {{ statsStore.state.stats?.failed || 0 }}
+
+ {{ stat.count }}
+ {{ key }}
@@ -72,6 +74,24 @@ const goHome = () => {
const isTablet = computed(() => mobile && width.value >= 650 && width.value < 960)
const isDesktop = computed(() => !mobile.value && !isTablet.value)
+const mobileStats = computed(() => {
+ const packages = packagesStore.state.currentlyBuildingPackages
+ return {
+ built: {
+ count: packages.filter((pkg) => pkg.status === 'built').length,
+ color: 'success'
+ },
+ queued: {
+ count: packages.filter((pkg) => pkg.status === 'queued').length,
+ color: 'warning'
+ },
+ building: {
+ count: packages.filter((pkg) => pkg.status === 'building').length,
+ color: 'info'
+ }
+ }
+})
+
const appTitle = 'ALHP Status'
const repoUrl = 'https://somegit.dev/ALHP/ALHP.GO'
const maxContainerWidth = '1440px'
@@ -157,25 +177,64 @@ const containerClasses = computed(() => ({
}
.mobile-stat {
- font-size: var(--font-size-sm);
- font-weight: var(--font-weight-semibold);
- font-family: var(--font-family-mono);
+ display: flex;
+ flex-direction: column;
+ align-items: center;
padding: var(--space-1) var(--space-2);
border-radius: var(--radius-sm);
background: var(--color-bg-tertiary);
+ min-width: 52px;
}
-.mobile-stat--success {
+.mobile-stat__count {
+ font-size: var(--font-size-sm);
+ font-weight: var(--font-weight-semibold);
+ font-family: var(--font-family-mono);
+}
+
+.mobile-stat__label {
+ font-size: var(--font-size-xs);
+ color: var(--color-text-muted);
+ text-transform: capitalize;
+}
+
+.mobile-stat--success .mobile-stat__count {
color: var(--color-status-success);
}
-.mobile-stat--error {
- color: var(--color-status-error);
+.mobile-stat--warning .mobile-stat__count {
+ color: var(--color-status-warning);
+}
+
+.mobile-stat--info .mobile-stat__count {
+ color: var(--color-status-info);
}
@media (max-width: 600px) {
.app-title {
font-size: var(--font-size-lg);
}
+
+ .repo-link {
+ display: none;
+ }
+
+ .mobile-stats {
+ gap: var(--space-1);
+ }
+
+ .mobile-stat {
+ flex: 1;
+ min-width: 40px;
+ padding: var(--space-1);
+ }
+
+ .mobile-stat__count {
+ font-size: var(--font-size-xs);
+ }
+
+ .mobile-stat__label {
+ font-size: 9px;
+ }
}