From 55faf04d4f25ad546730e60c4bf2c27b3999eee1 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Wed, 24 Mar 2021 21:33:21 +0100 Subject: [PATCH] :bug: (flux) listen to click day 1 --- src/bus/noteBusEvent.ts | 2 ++ src/components/FluxNote.vue | 26 ++++++++++++++++-------- src/hooks/useLinks.hook.ts | 7 ++++++- src/hooks/useNote.hook.ts | 6 +++--- src/modules/repo/store/userRepo.store.ts | 3 +++ 5 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/bus/noteBusEvent.ts b/src/bus/noteBusEvent.ts index 832efd2..29a28b9 100644 --- a/src/bus/noteBusEvent.ts +++ b/src/bus/noteBusEvent.ts @@ -1,6 +1,8 @@ import { createEventBus } from 'retrobus' interface EventBusParams { + user: string + repo: string path: string currentNoteSHA?: string } diff --git a/src/components/FluxNote.vue b/src/components/FluxNote.vue index 4bc5410..0f863c7 100644 --- a/src/components/FluxNote.vue +++ b/src/components/FluxNote.vue @@ -39,6 +39,7 @@ import { computed, watch, nextTick, + toRefs, onUnmounted } from 'vue' import HeaderNote from '@/components/HeaderNote.vue' @@ -63,6 +64,7 @@ export default defineComponent({ content: { type: String, required: false, default: null } }, setup(props) { + const refProps = toRefs(props) const store = useUserRepoStore() const { renderString } = useMarkdown() const { listenToClick } = useLinks('note-display') @@ -76,18 +78,26 @@ export default defineComponent({ const hasContent = computed(() => !!renderedContent.value) - watch(renderedContent, () => - nextTick(() => { - console.log(renderedContent) - - listenToClick() - }) + watch( + renderedContent, + () => + nextTick(() => { + listenToClick() + }), + { immediate: true } ) - store.setUserRepo(props.user, props.repo) + watch( + [refProps.user, refProps.repo], + () => { + store.setUserRepo(props.user, props.repo) + }, + { immediate: true } + ) onUnmounted(() => { - store.resetUserRepo() + store.resetFiles() + resetStackedNotes() }) return { diff --git a/src/hooks/useLinks.hook.ts b/src/hooks/useLinks.hook.ts index ada2cea..1f09a42 100644 --- a/src/hooks/useLinks.hook.ts +++ b/src/hooks/useLinks.hook.ts @@ -1,9 +1,12 @@ import { noteEventBus } from '@/bus/noteBusEvent' +import { useUserRepoStore } from '@/modules/repo/store/userRepo.store' import { onUnmounted } from '@vue/runtime-core' const LINKS = ['http://', 'https://'] export const useLinks = (className: string, sha?: string) => { + const store = useUserRepoStore() + const linkNote: EventListener = (event) => { event.preventDefault() const target = event.target as HTMLElement @@ -20,7 +23,9 @@ export const useLinks = (className: string, sha?: string) => { noteEventBus.emit({ path: href, - currentNoteSHA: sha + currentNoteSHA: sha, + user: store.user, + repo: store.repo }) } diff --git a/src/hooks/useNote.hook.ts b/src/hooks/useNote.hook.ts index 2935f83..a864929 100644 --- a/src/hooks/useNote.hook.ts +++ b/src/hooks/useNote.hook.ts @@ -38,7 +38,7 @@ export const useNote = (containerClass: string) => { ) const unsubscribeLink = noteEventBus.addEventBusListener( - ({ path, currentNoteSHA }) => { + ({ user, repo, path, currentNoteSHA }) => { const currentFile = store.files.find( (file) => file.sha === currentNoteSHA ) @@ -77,8 +77,8 @@ export const useNote = (containerClass: string) => { push({ name: currentRoute.value.name ?? 'Home', params: { - user: store.user, - repo: store.repo + user, + repo }, query: { stackedNotes: newStackedNotes diff --git a/src/modules/repo/store/userRepo.store.ts b/src/modules/repo/store/userRepo.store.ts index 3975c9c..8d3fbcd 100644 --- a/src/modules/repo/store/userRepo.store.ts +++ b/src/modules/repo/store/userRepo.store.ts @@ -32,6 +32,9 @@ export const useUserRepoStore = defineStore({ resetUserRepo() { this.user = '' this.repo = '' + this.resetFiles() + }, + resetFiles() { this.files = [] this.readme = null }