From 25c7c070efc52fd11d0173a25182cf485cfaaa83 Mon Sep 17 00:00:00 2001 From: Evren Ceyhan Date: Wed, 23 Aug 2023 00:19:57 +0300 Subject: [PATCH 1/9] package updated --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index e818dd3..5264a6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "vue3-particles": "^2.12.0" }, "devDependencies": { - "@nuxt/devtools": "*", + "@nuxt/devtools": "latest", "@nuxtjs/tailwindcss": "^6.8.0", "@types/node": "^20.5.3", "daisyui": "^3.5.1", From 89d64be4614b6aea340c2352c5b12227b4a29423 Mon Sep 17 00:00:00 2001 From: Evren Ceyhan Date: Wed, 23 Aug 2023 00:33:08 +0300 Subject: [PATCH 2/9] profile bio titles moved to backend --- components/AppHeader.vue | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/components/AppHeader.vue b/components/AppHeader.vue index bba8b2e..7b62fdd 100644 --- a/components/AppHeader.vue +++ b/components/AppHeader.vue @@ -6,11 +6,7 @@ const showLogo = ref(true); const { data: profile } = await useFetch("/api/profile"); -const titles = computed(() => [ - profile.value?.bio, - "Open Source Contributor", - "Web3 & Blockchain Enthusiast", -]); +const titles = computed(() => profile.value?.bio.split(",")); + +
+ +
+ Showing + of + + projects + with +
+ + + + + +
+ + + + diff --git a/components/ui/Button.vue b/components/ui/Button.vue index bf4669b..41fb91b 100644 --- a/components/ui/Button.vue +++ b/components/ui/Button.vue @@ -11,6 +11,7 @@ defineProps<{ large?: boolean; small?: boolean; tiny?: boolean; + micro?: boolean; }>(); @@ -28,6 +29,7 @@ defineProps<{ 'btn-lg': large, 'btn-sm': small, 'btn-xs': tiny, + 'btn-xs !h-5 !min-h-min': micro, }" @click="$emit('click')" > diff --git a/components/ui/Countdown.vue b/components/ui/Countdown.vue new file mode 100644 index 0000000..61df25e --- /dev/null +++ b/components/ui/Countdown.vue @@ -0,0 +1,11 @@ + + + diff --git a/store/repository.ts b/store/repository.ts index 6acbc64..b6f88fd 100644 --- a/store/repository.ts +++ b/store/repository.ts @@ -10,8 +10,17 @@ export const useRepositoryStore = defineStore('repository', () => { const topicStore = useTopicStore(); const languageStore = useLanguageStore(); + // pagination states + const page = ref(1); + const perPage = ref(5); + const total = computed(() => filteredRepositories.value.length); + const hasMore = computed(() => total.value > page.value * perPage.value); + const hasFilter = computed( + () => !!languageStore.selected || !!topicStore.selected + ); + // getters - const repositories = computed(() => { + const filteredRepositories = computed(() => { let repos = _repositories.value; // filter by language @@ -21,6 +30,9 @@ export const useRepositoryStore = defineStore('repository', () => { (lang) => lang.name === languageStore.selected ) ); + + // reset page on filter + page.value = 1; } // filter by topics @@ -28,11 +40,18 @@ export const useRepositoryStore = defineStore('repository', () => { repos = repos.filter((repo) => repo.topics.includes(topicStore.selected as any) ); + + // reset page on filter + page.value = 1; } return repos; }); + const repositories = computed(() => + filteredRepositories.value.slice(0, page.value * perPage.value) + ); + // actions async function load() { loading.value = true; @@ -41,9 +60,20 @@ export const useRepositoryStore = defineStore('repository', () => { loading.value = false; } + function loadMore() { + page.value++; + } + // init load(); // public api - return { load, loading, repositories }; + return { + loadMore, + loading, + repositories, + hasFilter, + hasMore, + total, + }; }); From 0b296a257e1bae53b57bd1046ad8a5d88a4b1c0a Mon Sep 17 00:00:00 2001 From: Evren Ceyhan Date: Wed, 23 Aug 2023 17:10:17 +0300 Subject: [PATCH 9/9] bugfix: hydration error fiexd --- components/AppProjects.vue | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/components/AppProjects.vue b/components/AppProjects.vue index d7f5e72..16c4240 100644 --- a/components/AppProjects.vue +++ b/components/AppProjects.vue @@ -84,15 +84,18 @@ const repositoryStore = useRepositoryStore(); - + + + +