cache all notes

This commit is contained in:
Julien Calixte
2024-09-01 22:27:51 +02:00
parent df25634b98
commit 941f867031
4 changed files with 100 additions and 39 deletions

View File

@@ -0,0 +1,33 @@
<script setup lang="ts">
import { useOfflineNote } from '@/hooks/useOfflineNote.hook'
const { cacheAllNotes, isLoading, totalOfNotes, noteCompleted } =
useOfflineNote()
const confirmBeforeCachingAllNotes = () => {
confirm('Do you want to cache all notes?')
cacheAllNotes()
}
</script>
<template>
<div v-if="isLoading" class="cache-all-notes">
<div>{{ noteCompleted }}/{{ totalOfNotes }}</div>
<progress
:value="noteCompleted"
class="progress"
:max="totalOfNotes"
></progress>
</div>
<button v-else class="button" @click="() => confirmBeforeCachingAllNotes()">
cache all notes
</button>
</template>
<style scoped lang="scss">
.cache-all-notes {
display: flex;
gap: 1rem;
align-items: center;
}
</style>

View File

@@ -2,7 +2,6 @@ import { defineStore } from 'pinia'
import { data } from '@/data/data'
import { DataType } from '@/data/DataType.enum'
import { prepareNoteCache } from '@/modules/note/cache/prepareNoteCache'
import { RepoFile } from '@/modules/repo/interfaces/RepoFile'
import { UserSettings } from '@/modules/repo/interfaces/UserSettings'
import { SavedRepo } from '@/modules/repo/models/SavedRepo'
@@ -10,8 +9,7 @@ import {
getCachedMainReadme,
getFiles,
getMainReadme,
getUserSettingsContent,
queryFileContent
getUserSettingsContent
} from '@/modules/repo/services/repo'
import { refreshToken } from '@/modules/user/service/signIn'
@@ -116,42 +114,6 @@ export const useUserRepoStore = defineStore({
this.files = []
this.readme = null
this.userSettings = undefined
},
async cacheAllFiles() {
const isInitialized = this.user && this.repo && this.files.length > 0
if (!isInitialized) {
return
}
for (const file of this.files) {
if (!file.sha) {
continue
}
const { getCachedNote, saveCacheNote } = prepareNoteCache(
file.sha,
file.path
)
const isNoteCached = (await getCachedNote()) !== null
if (isNoteCached) {
continue
}
const contentFile = await queryFileContent(
this.user,
this.repo,
file.sha
)
if (!contentFile) {
return null
}
saveCacheNote(contentFile)
}
}
}
})