Skip to content

Handle embedded board lifecycles - #8575

Merged
hefftich merged 1 commit into
mainfrom
fix/reference-board-embedding
Nov 4, 2026
Merged

hefftich merged 1 commit into
mainfrom
fix/reference-board-embedding

Conversation

@hefftich

Copy link
Copy Markdown
Contributor

Summary

Fix lifecycle handling for interactive Deck board reference widgets embedded in other Nextcloud apps.

Embedded boards must work independently of Deck's router and must not change the host app's page title. Widget instances also need to be isolated and cleaned up reliably when references are removed, re-rendered, or destroyed during asynchronous initialization.

This PR:

  • Tracks board widgets by their DOM elements and disposes their Vue apps and Pinia stores on removal or replacement.
  • Prevents pending initialization from mounting widgets that have already been destroyed or replaced.
  • Handles overlapping board loads and closes board sessions safely during reloads and unmounting.
  • Limits card-open events to cards available in the widget's own store.
  • Keeps Nextcloud Text editor instances outside Vue reactivity and destroys editors even if initialization finishes after unmounting.
  • Adds regression tests for widget isolation, asynchronous cleanup, board sessions, editor disposal, and page-title behavior in embedded and full-app mode.

TODO

  • ...

Checklist

  • Code is properly formatted
  • Sign-off message is added to all commits
  • Tests (unit, integration, api and/or acceptance) are included
  • Documentation (manuals or wiki) has been updated or is not required

🤖 AI (if applicable)

  • The content of this PR was partly or fully generated using AI (GPT-6.1 Sol)

@hefftich hefftich added this to the 36 milestone Oct 20, 2026
@hefftich
hefftich requested a review from artonge October 20, 2026 14:30
@hefftich hefftich self-assigned this Oct 20, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in 👥 Teams Oct 20, 2026
@hefftich hefftich moved this from Backlog to In review in 👥 Teams Oct 20, 2026
@artonge artonge moved this from In review to In progress in 👥 Teams Oct 22, 2026
Comment thread src/components/board/Board.vue Resolved

@luka-nextcloud luka-nextcloud left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, I left one minor comment.

@hefftich
hefftich force-pushed the fix/reference-board-embedding branch 2 times, most recently from ee54f79 to 7feee7c Compare October 28, 2026 13:26
@hefftich hefftich moved this from In progress to In review in 👥 Teams Oct 28, 2026
@hefftich hefftich removed their assignment Oct 28, 2026
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.

We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.

Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6

Thank you for contributing to Nextcloud and we hope to hear from you soon!

(If you believe you should not receive this message, you can add yourself to the blocklist.)

- Allow interactive board widgets to run within a host app without
accessing Deck's router or changing the host's page title.
- Track widget instances by their mount elements and clean up their Vue
apps, Pinia stores and board sessions when destroyed. Handle overlapping
board reloads and widgets destroyed during asynchronous setup.
- Keep Text editor instances outside Vue reactivity and clean them up
when card details are closed, including editors still being created.
Co-authored-by: Copilot <copilot@github.com> GPT-6.1 Sol

Signed-off-by: Stefan Lender <Stefan.Lender@dataport.de>
@hefftich
hefftich force-pushed the fix/reference-board-embedding branch from 7feee7c to 1974de6 Compare November 4, 2026 09:49
@hefftich
hefftich merged commit 447a242 into main Nov 4, 2026
38 checks passed
@hefftich
hefftich deleted the fix/reference-board-embedding branch November 4, 2026 12:24
@github-project-automation github-project-automation Bot moved this from In review to Done in 👥 Teams Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants