Files
remanso/src/hooks/useTitleNotes.hook.ts
2023-08-15 01:08:08 +02:00

25 lines
877 B
TypeScript

import { useTitle } from '@vueuse/core'
import { computed, Ref, toValue, watch } from 'vue'
import { useRouteQueryStackedNotes } from '@/hooks/useRouteQueryStackedNotes.hook'
import { useNotes } from '@/modules/note/hooks/useNotes'
import { pathToNoteTitle } from '@/utils/noteTitle'
export const generateTitle = (titles: string[]) => titles.join(' | ')
export const useTitleNotes = (prefix: Ref<string> | string) => {
const { stackedNotes } = useRouteQueryStackedNotes()
const { notes } = useNotes()
const titleNotes = computed(() =>
notes.value
.filter((note) => stackedNotes.value.includes(note.sha ?? ''))
.map((note) => pathToNoteTitle(note.path ?? ''))
)
const title = useTitle(generateTitle([toValue(prefix), ...titleNotes.value]))
watch(titleNotes, () => {
title.value = generateTitle([toValue(prefix), ...titleNotes.value])
})
}