The rich-text Editor (used for card descriptions) creates its Tiptap
instance once via useEditor with an empty dependency array. This means
the initial value of `editable: !readOnly` is captured at mount time
and never updated, and the onChange/onBlur callbacks are frozen as the
first-render closures.
In CardPage, the description Editor mounts as soon as the card query
resolves but before the permissions query resolves, so `readOnly` is
`true` and onChange/onBlur are `undefined` at that moment. When
permissions resolve a moment later and `canEdit` flips to `true`,
the Editor never becomes editable — leaving the description stuck
read-only even for workspace admins.
Fix mirrors the existing pattern in PlainTextEditor.tsx:
- Use refs for onChange/onBlur so the editor reads the latest values
- Add a useEffect that calls editor.setEditable(!readOnly) when the
readOnly prop changes
Co-authored-by: Jay <CodeEngineering@pm.me>
The tiptap-markdown extension was registered with default config, where
`transformPastedText` defaults to false. As a result, pasting markdown
text into card descriptions resulted in literal characters (e.g. '# heading'
shown as a paragraph of text) rather than rendered formatting.
Typing markdown shortcuts in the editor already worked because that goes
through a different path. Programmatic writes via the API also work
because they bypass the editor entirely. Only paste was affected.
Enabling `transformPastedText: true` makes pasted markdown behave as
users intuitively expect, matching the typed-markdown UX.
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Move Link extension before Markdown in the TipTap extensions array
to ensure URL detection happens before markdown processing. Also
explicitly enable linkOnPaste for paste detection.
Fixes#376
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add notifications schema
* chore: gen migration
* feat: add mention email template
* feat: add sendMentionEmail func
* feat: add repo funcs
* feat: update card router to send emails on mention
* fix: update the editor suggestion to show all members
* feat: skip pending members in sendMentionEmails
* feat: update comments to use tiptap editor
* feat: add YouTube video embed support for TipTap editor
- Paste YouTube URLs to auto-embed videos with metadata
- Edit video title and URL through dropdown menu
- Convert embed back to plain URL link
- Fetch video titles automatically via YouTube oEmbed API
* fix:
- reverted NewCardForm CSS properties back to max-h-48.
- Added boolean prop to TipTap Edtior for YouTube embed.
- Disabled YouTube embed feature for NewCardForm Editor
* chore: lint
* chore: translations
* chore: update translations
---------
Co-authored-by: Henry <henry_ball@hotmail.co.uk>
* feat: add patterned background to boards
* feat: setup dashboard 2.0
* fix: prevent patterned background from overlaying buttons
* feat: set max width for main card view
* feat: adjust colour scheme for card view
* feat: adjust dashboard border colour scheme and radius
* fix: use correct colour for description placeholder
* fix: use getLayout to persist layout state across pages
* feat: reduce max width for settings and members pages
* feat: add feedback button and modal
* feat: adjust page max width
* feat: extend mobile layout support
* fix: hide pro badge when collapsed
* feat: tweak nav styling for light mode
* feat: tweak skeleton loaders for board list
* feat: extend list max height
* fix: hide side nav right border on desktop
* chore: update hero images
* chore: update hero images for docs
* chore: update translations
* feat: setup localisation with lingui
* Fix hydration and locale issues
* Add missing translations and tweak selector styling
* Extend language support
* Update lang support
* Extend lang support
* Fix build and add dyanmic imports
* feat: integrate MDXEditor for card description with markdown support
* feat: replace textarea with markdown editor for card descriptions and improve styling
* refactor: replace MDXEditor with Tiptap for rich text editing
* fix: prevent menu item from taking focus and submitting
* feat: replace editor menu with bubble menu and add placeholder text
* feat: implement slash commands menu in editor with suggestion API
* chore: update editor styling
* chore: update editor placeholder text
* fix: navigate command list by keyboard and tweak styling
* fix: prevent editor onBlur from submitting NewCardForm
---------
Co-authored-by: Henry <henry_ball@hotmail.co.uk>