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) => { 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]) }) }