mirror of
https://github.com/discourse/discourse.git
synced 2026-08-07 13:19:19 +08:00
Previously, all uploads in the rich editor used image placeholder nodes — even for non-image files like PDFs. This looked broken since a blob URL for a PDF rendered as a broken image. This PR introduces a dedicated `upload_placeholder` inline node for non-image uploads, rendered as a pill with the filename, upload progress, and a cancel button. Image placeholders now also get a progress/cancel overlay. The entire upload lifecycle (insert → progress → resolve/cancel) is excluded from undo history, so Ctrl+Z never leaves orphaned placeholders. Deleting a placeholder automatically cancels the in-flight upload, and duplicates from Option+drag or copy+paste are cleaned up via `appendTransaction`. It also fixes a flash of `transparent.png` on image upload completion by resolving the cached upload URL in the same transaction as the placeholder replacement. <img width="275" height="109" alt="image" src="https://github.com/user-attachments/assets/6b808094-46f9-44db-ad77-6a7714d51587" /> <img width="529" height="217" alt="image" src="https://github.com/user-attachments/assets/3606f992-f6cd-4e88-863e-191c3cc72a9c" /> --------- Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| category_templates_spec.rb | ||
| default_to_subcategory_spec.rb | ||
| dont_feed_the_trolls_popup_spec.rb | ||
| drafts_spec.rb | ||
| enqueued_post_draft_spec.rb | ||
| form_template_tag_chooser_spec.rb | ||
| post_validation_spec.rb | ||
| prosemirror_autocomplete_spec.rb | ||
| prosemirror_code_spec.rb | ||
| prosemirror_container_spec.rb | ||
| prosemirror_images_spec.rb | ||
| prosemirror_input_rules_spec.rb | ||
| prosemirror_keymap_spec.rb | ||
| prosemirror_links_spec.rb | ||
| prosemirror_onebox_spec.rb | ||
| prosemirror_onebox_toolbar_spec.rb | ||
| prosemirror_pasting_spec.rb | ||
| prosemirror_quotes_spec.rb | ||
| prosemirror_toolbar_spec.rb | ||
| prosemirror_uploads_spec.rb | ||
| prosemirror_watched_words_spec.rb | ||
| prosemirror_wrap_spec.rb | ||
| review_media_unless_trust_level_spec.rb | ||
| template_validation_spec.rb | ||