add path to new inbox file in pinia store
Not ideal to have data in multiple store (pinia and PouchDB) but it work this way. May need a refactoring.
This commit is contained in:
@@ -91,6 +91,12 @@ watch(mode, async (newMode) => {
|
||||
if (newMode === 'read' && rawContent.value !== initialRawContent.value) {
|
||||
const editedSha = (await getEditedSha()) ?? sha.value
|
||||
|
||||
if (!path.value) {
|
||||
console.warn('no path found for this file')
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
const newSha = await updateFile({
|
||||
content: rawContent.value,
|
||||
path: path.value,
|
||||
@@ -98,10 +104,14 @@ watch(mode, async (newMode) => {
|
||||
})
|
||||
|
||||
if (!newSha) {
|
||||
console.warn('no new SHA found for this file')
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
await saveCacheNote(encodeUTF8ToBase64(rawContent.value), newSha)
|
||||
await saveCacheNote(encodeUTF8ToBase64(rawContent.value), {
|
||||
editedSha: newSha
|
||||
})
|
||||
initialRawContent.value = rawContent.value
|
||||
}
|
||||
})
|
||||
|
||||
@@ -10,7 +10,7 @@ export const useFile = (sha: Ref<string> | string, retrieveContent = true) => {
|
||||
|
||||
const path = computed(() => {
|
||||
const file = store.files.find((file) => file.sha === toValue(sha))
|
||||
return file?.path ?? ''
|
||||
return file?.path
|
||||
})
|
||||
|
||||
const {
|
||||
|
||||
15
src/modules/note/cache/prepareNoteCache.ts
vendored
15
src/modules/note/cache/prepareNoteCache.ts
vendored
@@ -1,19 +1,30 @@
|
||||
import { data } from '@/data/data'
|
||||
import { DataType } from '@/data/DataType.enum'
|
||||
import { Note } from '@/modules/note/models/Note'
|
||||
import { useUserRepoStore } from '@/modules/repo/store/userRepo.store'
|
||||
|
||||
export const prepareNoteCache = (sha: string) => {
|
||||
const store = useUserRepoStore()
|
||||
|
||||
const noteId = data.generateId(DataType.Note, sha)
|
||||
const getCachedNote = async () => data.get<DataType.Note, Note>(noteId)
|
||||
|
||||
const saveCacheNote = async (content: string, editedSha?: string) => {
|
||||
const saveCacheNote = async (
|
||||
content: string,
|
||||
params?: { editedSha?: string; path?: string }
|
||||
) => {
|
||||
const newNote: Note = {
|
||||
_id: noteId,
|
||||
$type: DataType.Note,
|
||||
content,
|
||||
editedSha
|
||||
editedSha: params?.editedSha
|
||||
}
|
||||
|
||||
store.addFile({
|
||||
path: params?.path,
|
||||
sha: params?.editedSha
|
||||
})
|
||||
|
||||
await data.update(newNote)
|
||||
}
|
||||
|
||||
|
||||
@@ -86,6 +86,9 @@ export const useUserRepoStore = defineStore({
|
||||
}, 350)
|
||||
})
|
||||
},
|
||||
addFile(file: RepoFile) {
|
||||
this.files = [...this.files.filter((f) => f.sha !== file.sha), file]
|
||||
},
|
||||
resetUserRepo() {
|
||||
this.user = ''
|
||||
this.repo = ''
|
||||
|
||||
@@ -50,7 +50,10 @@ watch(mode, async (newMode) => {
|
||||
|
||||
newContent.value = initialContent
|
||||
const { saveCacheNote } = prepareNoteCache(newSha)
|
||||
await saveCacheNote(encodeUTF8ToBase64(content))
|
||||
await saveCacheNote(encodeUTF8ToBase64(content), {
|
||||
editedSha: newSha,
|
||||
path: newContentPath
|
||||
})
|
||||
|
||||
addStackedNote('', newSha)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user