From ca4d50e3f8a35d7aa5fa4da81a3794931df8b41f Mon Sep 17 00:00:00 2001 From: ztimson Date: Tue, 16 Jun 2026 20:39:20 -0400 Subject: [PATCH] Updated project grouping --- src/views/Home.vue | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/views/Home.vue b/src/views/Home.vue index bce000f..ec39688 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -6,23 +6,31 @@ import Projects from '@/components/projects.vue'; import Refrences from '@/components/refrences.vue'; import {momentum} from '@/services/momentum.service'; import {sortByProp} from '@ztimson/utils'; -import {ref} from 'vue'; +import {computed, onMounted, ref, watch} from 'vue'; // Get favorites -const products = ref([]); -const openSource = ref([]); +const showcase = ref([]); momentum.data.read('Repos').then(resp => - resp.toSorted(sortByProp('order')) - .forEach((r: any) => (r.product ? products : openSource).value.push(r))); + showcase.value = resp.toSorted(sortByProp('order')) +); + +const groups = computed(() => showcase.value.reduce((acc, r: any) => { + if(!acc[r.type]) acc[r.type] = []; + acc[r.type].push(r); + return acc; +}, {})) // Get repository count -let remainder = ref(0); -fetch('https://git.zakscode.com/api/v1/repos/search?limit=1000', { - method: 'get', - headers: {"Content-Type": "application/json"} -}).then(async (resp: any) => { - const data = (await resp.json())?.data; - remainder.value = data.length - openSource.value.length; +let projects = ref(0); +const remainder = computed(() => projects.value - showcase.value.filter(r => r.source).length); + +onMounted(() => { + fetch('https://git.zakscode.com/api/v1/repos/search?limit=1000', { + method: 'get', + headers: {"Content-Type": "application/json"} + }).then(async (resp: any) => { + projects.value = (await resp.json())?.data?.length; + }); }); @@ -64,13 +72,9 @@ fetch('https://git.zakscode.com/api/v1/repos/search?limit=1000', {

Projects


-
-

Products & Services

- -
-
-

Open Source

- +
+

{{name}}

+
See {{remainder}} More...