diff --git a/content/.vuepress/client.ts b/content/.vuepress/client.ts index be18de7..716c4d3 100644 --- a/content/.vuepress/client.ts +++ b/content/.vuepress/client.ts @@ -1,7 +1,8 @@ import { defineClientConfig } from '@vuepress/client'; import ResponsiveImage from './components/ResponsiveImage.vue'; -import ListRepositories from './components/GitRepos/ListRepositories.vue'; -import GithubRepository from './components/GitRepos/GithubRepository.vue'; +import ListRepositories from './components/GitHub/ListRepositories.vue'; +import FetchRepositories from './components/GitHub/FetchRepositories.vue'; +import GithubRepository from './components/GitHub/GithubRepository.vue'; import ApiLoader from './components/ApiLoader.vue'; import Loader from './components/Loader.vue'; import Cache from './components/Cache.vue'; @@ -10,6 +11,7 @@ export default defineClientConfig({ enhance({ app }) { app.component('ResponsiveImage', ResponsiveImage); app.component('ListRepositories', ListRepositories); + app.component('FetchRepositories', FetchRepositories); app.component('GithubRepository', GithubRepository); app.component('ApiLoader', ApiLoader); app.component('Loader', Loader); diff --git a/content/.vuepress/components/ApiLoader.vue b/content/.vuepress/components/ApiLoader.vue index 5cb31c0..4e12527 100644 --- a/content/.vuepress/components/ApiLoader.vue +++ b/content/.vuepress/components/ApiLoader.vue @@ -2,7 +2,7 @@ diff --git a/content/.vuepress/components/Cache.vue b/content/.vuepress/components/Cache.vue index 285f60c..bc9cc6c 100644 --- a/content/.vuepress/components/Cache.vue +++ b/content/.vuepress/components/Cache.vue @@ -19,7 +19,7 @@ const props = defineProps({ required: false, type: Number, }, - data: { + alreadyKnownData: { default: null, type: Object, }, @@ -50,14 +50,20 @@ const storeInCache = ( }; if (isDataOutdated(props.name)) { - emits('cached', storeInCache(props.callback, props.data, props.name)); + emits( + 'cached', + storeInCache(props.callback, props.alreadyKnownData, props.name) + ); } else { let data = localStorage.getItem(props.name); try { emits('cached', of(JSON.parse(data))); } catch (err) { console.error(`Could not parse data found in cache: ${err}`); - emits('cached', storeInCache(props.callback, props.data, props.name)); + emits( + 'cached', + storeInCache(props.callback, props.alreadyKnownData, props.name) + ); } } diff --git a/content/.vuepress/components/GitHub/FetchRepositories.vue b/content/.vuepress/components/GitHub/FetchRepositories.vue new file mode 100644 index 0000000..546dc53 --- /dev/null +++ b/content/.vuepress/components/GitHub/FetchRepositories.vue @@ -0,0 +1,48 @@ + + + diff --git a/content/.vuepress/components/GitRepos/GithubRepository.vue b/content/.vuepress/components/GitHub/GithubRepository.vue similarity index 79% rename from content/.vuepress/components/GitRepos/GithubRepository.vue rename to content/.vuepress/components/GitHub/GithubRepository.vue index af0a0f6..e54335f 100644 --- a/content/.vuepress/components/GitRepos/GithubRepository.vue +++ b/content/.vuepress/components/GitHub/GithubRepository.vue @@ -1,5 +1,7 @@