From 568b83b4105d3dc678a49afb4439fdd07c2e7a3c Mon Sep 17 00:00:00 2001 From: Murtaza Sultani Date: Tue, 10 Mar 2026 12:40:08 +0100 Subject: Fix scroll to post form --- resources/vue/apps/forum/discussions/Show.vue | 3 --- resources/vue/components/StudipWysiwyg.vue | 5 +---- .../components/forum/discussions/DiscussionFooter.vue | 1 - resources/vue/components/forum/posts/Post.vue | 13 +++++-------- resources/vue/components/forum/posts/PostCreateForm.vue | 17 +++++++++++------ resources/vue/components/forum/posts/PostEditForm.vue | 4 ++-- 6 files changed, 19 insertions(+), 24 deletions(-) diff --git a/resources/vue/apps/forum/discussions/Show.vue b/resources/vue/apps/forum/discussions/Show.vue index 9b97197..8ab23c7 100644 --- a/resources/vue/apps/forum/discussions/Show.vue +++ b/resources/vue/apps/forum/discussions/Show.vue @@ -129,9 +129,6 @@ onMounted(async () => { const urlHash = window.location.hash.split("#")[1]; if (urlHash) { - if (urlHash === 'new-post') { - postCreateForm.value = true; - } jumpTo(document.getElementById(urlHash)) } else if (props.readIndex < posts.value.length) { if (props.readIndex === 0) { diff --git a/resources/vue/components/StudipWysiwyg.vue b/resources/vue/components/StudipWysiwyg.vue index 13e567a..7e47943 100644 --- a/resources/vue/components/StudipWysiwyg.vue +++ b/resources/vue/components/StudipWysiwyg.vue @@ -18,7 +18,6 @@ const props = defineProps({ const content = defineModel({ type: String, default: '' }); const createdEditor = ref(null); -const shouldFocus = ref(props.autofocus); const editor = computed(() => { switch (props.editorType) { @@ -34,14 +33,12 @@ const editor = computed(() => { const focus = () => { if (createdEditor.value && typeof createdEditor.value.focus === 'function') { createdEditor.value.focus(); - } else { - shouldFocus.value = true; } } const onReady = editorInstance => { createdEditor.value = editorInstance; - if (shouldFocus.value) { + if (props.autofocus) { focus(); } STUDIP.eventBus.emit('editor-loaded', createdEditor.value); diff --git a/resources/vue/components/forum/discussions/DiscussionFooter.vue b/resources/vue/components/forum/discussions/DiscussionFooter.vue index b640d41..6912661 100644 --- a/resources/vue/components/forum/discussions/DiscussionFooter.vue +++ b/resources/vue/components/forum/discussions/DiscussionFooter.vue @@ -31,7 +31,6 @@ const hasUnreadPost = computed(() => { }); const addPost = () => { - document.getElementById(`new-post`)?.scrollIntoView({ behavior: 'smooth' }); postCreateForm.value = true; } diff --git a/resources/vue/components/forum/posts/Post.vue b/resources/vue/components/forum/posts/Post.vue index 8f0baf2..c28e287 100644 --- a/resources/vue/components/forum/posts/Post.vue +++ b/resources/vue/components/forum/posts/Post.vue @@ -61,8 +61,7 @@ const editPost = () => { if (!canEditPost.value) { return; } - - document.getElementById(`post_${props.post.id}`)?.scrollIntoView({ behavior: 'smooth' }); + document.getElementById(`post_${props.post.id}`)?.scrollIntoView(); showPostEditForm.value = true; } @@ -92,7 +91,6 @@ const addPost = () => { } const addReply = () => { - document.getElementById(`create_form_${props.post.id}`)?.scrollIntoView({ behavior: 'smooth' }); showPostCreateForm.value = true; selectedText.value = props.post.content; } @@ -231,16 +229,15 @@ onBeforeUnmount(() => postObserver.disconnect()); class="forum-quote" >