✨ (history) add history list of last visited repos
This commit is contained in:
37
src/modules/history/components/LastVisited.vue
Normal file
37
src/modules/history/components/LastVisited.vue
Normal file
@@ -0,0 +1,37 @@
|
||||
<template>
|
||||
<ul v-if="lastVisitedRepos.length" class="last-visited">
|
||||
<li
|
||||
v-for="lastVisitedRepo in lastVisitedRepos"
|
||||
:key="`${lastVisitedRepo.user}-${lastVisitedRepo.repo}`"
|
||||
>
|
||||
<router-link
|
||||
:to="{
|
||||
name: `Home`,
|
||||
props: { user: lastVisitedRepo.user, repo: lastVisitedRepo.repo }
|
||||
}"
|
||||
>{{ lastVisitedRepo.user }}/{{ lastVisitedRepo.repo }}</router-link
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { useLastVisitedRepos } from '@/modules/history/hooks/useLastVisitedRepos.hook'
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'LastVisited',
|
||||
setup() {
|
||||
const { lastVisitedRepos } = useLastVisitedRepos()
|
||||
|
||||
return {
|
||||
lastVisitedRepos
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.last-visited {
|
||||
}
|
||||
</style>
|
||||
20
src/modules/history/hooks/useLastVisitedRepos.hook.ts
Normal file
20
src/modules/history/hooks/useLastVisitedRepos.hook.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { data } from '@/data/data'
|
||||
import { DataType } from '@/data/DataType.enum'
|
||||
import { History } from '@/data/models/History'
|
||||
import { useAsyncState } from '@vueuse/core'
|
||||
import { computed } from 'vue'
|
||||
|
||||
export const useLastVisitedRepos = () => {
|
||||
const history = useAsyncState(
|
||||
data.get<DataType.History, History>(
|
||||
data.generateId(DataType.BacklinkNote, 'history')
|
||||
),
|
||||
null
|
||||
)
|
||||
|
||||
const lastVisitedRepos = computed(() => history.state.value?.repos ?? [])
|
||||
|
||||
return {
|
||||
lastVisitedRepos
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user