Skip to content

Releases: apollohg/react-native-prose-editor

0.5.25

Choose a tag to compare

@jaydensmith jaydensmith released this 28 Jun 12:45

Fixed

  • Mention suggestion chips now render raw suggestion labels prefixed by the configured trigger, so labels no longer need to include @ in addon configuration.

Tests

  • Added React, Android, and iOS regression coverage for trigger-prefixed mention suggestion chip display with raw labels.

0.5.24

Choose a tag to compare

@jaydensmith jaydensmith released this 22 Jun 12:03

Fixed

  • Android now defers host-level outside-tap observer and keyboard toolbar view removals, avoiding framework ViewGroup.dispatchGetDisplayList crashes during focused editor teardown and rapid re-entry.
  • Android release builds now preserve native editor View class names in crash reports, making framework ViewGroup crashes actionable after minification.

Tests

  • Updated Android native view lifecycle coverage for deferred outside-tap observer cleanup.

0.5.23

Choose a tag to compare

@jaydensmith jaydensmith released this 15 Jun 01:08

[0.5.23] - 2026-06-15

Fixed

  • Android auto-grow updates after editor recreation.

0.5.22

Choose a tag to compare

@jaydensmith jaydensmith released this 12 Jun 13:54

Fixed

  • iOS no longer crashes with a stack overflow when a delegate-proxying keyboard library (e.g. react-native-keyboard-controller) wraps the focused editor's delegate. The editor now uses a dedicated internal UITextViewDelegate object instead of acting as its own delegate, so proxies can't forward private UITextView selectors back into the text view.

Tests

  • Added iOS regression coverage for keyboard-controller-style delegate proxies forwarding keyboardInputChangedSelection: back to the editor.

0.5.21

Choose a tag to compare

@jaydensmith jaydensmith released this 07 Jun 08:21

Added

  • Added NativeRichTextEditorRef.clearContent() as a schema-aware cross-platform way to clear the editor for chat composer and draft reset flows.

Fixed

  • Android now preserves the same-editor input connection while refreshing IME state after JS-driven full-content replacements and native-mutation preflight.
  • Android imperative whole-document content setters now retry after an in-flight native update is acknowledged, so chat-style composers can repeatedly call clearContent() or setContentJson({ type: 'doc', content: [] }) after sending messages.
  • Android now requests a fresh IME input connection when a focused editor is made editable again, preventing chat composers from getting stuck after send flows that briefly pass editable={false} while clearing content.
  • Android clearContent() now uses a reset-style native update that bypasses composition preflight and clears stale pending update queues.
  • Android now explicitly invalidates the rendered editor view after Rust-backed full-content updates, preventing clearContent() resets from leaving stale pre-send text visible until the next key press.
  • Android clearContent() now also sends reset updates through a dedicated prop-backed native reset lane, so composer clears are delivered even when the immediate Expo view command is delayed, resolves false, or races native view readiness.
  • Android Expo prebuild projects can use the package config plugin to exclude obsolete JNA armeabi, mips, and mips64 native libraries, avoiding NDK strip warnings in consuming apps.

Tests

  • Added Android regression coverage for committing and composing text again after an external clear, including after preflight adopts a native text mutation.
  • Added React wrapper regression coverage for retrying Android setContentJson() after an in-flight native update and for clearContent().
  • Added Android regression coverage for a focused read-only toggle keeping the old input connection blocked while allowing a fresh connection to type again.
  • Added React wrapper and Android native view coverage for reset updates bypassing blocked preflight, invalidating rendered content, retrying when native readiness is delayed, and superseding stale in-flight editor updates.

0.5.20

Choose a tag to compare

@jaydensmith jaydensmith released this 06 Jun 12:27

Fixed

  • Android now refreshes the focused IME session after JS-driven full-content replacements.

0.5.19

Choose a tag to compare

@jaydensmith jaydensmith released this 03 Jun 10:56

Fixed

  • iOS renders an emoji correctly when it is the first character in the editor.
  • iOS native toolbar mention suggestions now use adaptive foreground rendering without nesting glass inside the toolbar chrome, with semibold glass labels, an animated chrome transition, and tighter item padding.
  • iOS native toolbar disabled buttons now use transparent native foreground color instead of fixed gray.
  • Enabling mentions after editing no longer leaves the example editor bound to a stale or reset native editor instance.

Tests

  • Added iOS regression coverage for leading emoji rendering without splitting UTF-16 surrogate pairs.
  • Added iOS regression coverage for adaptive native toolbar mention suggestion text.
  • Added React wrapper regression coverage for preserving uncontrolled content and native view commands across live mentions toggles.

0.5.18

Choose a tag to compare

@jaydensmith jaydensmith released this 02 Jun 12:57

Changed

  • Android Rust render application is deferred after finishComposingText and composition commits so the InputConnection stays alive for Samsung's follow-up space or autocorrect commit.
  • Android editor update events are debounced and batch-drained, skipping stale-editor payloads.
  • Android IME context strips synthetic empty-block placeholders from surrounding text and reports sentence-caps at rendered line starts (including after list markers), with a Samsung Keyboard fallback for stale shift state.
  • Android composing text carries transient paragraph font styling so Samsung's pre-commit composition matches the surrounding text.
  • iOS tracks an authorized UTF-16 selection range to detect stale UIKit carets left behind by autocomplete/autocorrect and maps them through the replacement range before committing to Rust.
  • iOS inline predictions (marked text without insertText) are no longer committed to Rust.
  • Example app output panel updates are debounced during fast typing.

Fixed

  • Android commitCorrection followed by a matching commitText no longer double-inserts the corrected word.
  • Android commitCorrection during active composition defers the Rust insert until the IME's follow-up commitText, preventing a missing-word or double-word race.
  • Android finishComposingText no longer triggers an InputConnection recreation before Samsung's pending space commit arrives.
  • Android single-character delete-and-replace autocorrections, such as Gboard changing i to I, no longer lose the replacement commit.
  • Android skips redundant spannable re-application when the visible text already matches the incoming Rust render, avoiding a scroll-position reset.
  • Android refreshes IME state after block-split operations and corrects Samsung Keyboard composing text when the keyboard ignores line-boundary sentence caps.
  • iOS caret after autocomplete insertion, autocorrect replacement, and list-context mutations now lands after the replacement text instead of at the pre-mutation offset.
  • iOS setMarkedText flushes any pending native autocorrect before entering composition.

Tests

  • Expanded iOS regression coverage for stale-caret mapping, inline prediction isolation, list-context mutations, length-changing autocorrect, and marked-text flushing.
  • Expanded Android regression coverage for sentence-caps, placeholder stripping, Samsung keyboard composing, InputConnection lifecycle, correction commit deduplication, render deferral, optimistic render reuse, and surrounding-delete autocorrect handling.

0.5.17

Choose a tag to compare

@jaydensmith jaydensmith released this 19 May 14:05

Added

  • Added Android device IME regression coverage and an android:test:ime:device script for native keyboard suggestion and autocorrect flows.

Changed

  • Hardened JS/native command coordination so toolbar actions, mention insertion, content updates, and cached reads prepare or flush native editor state before mutating Rust content.
  • Added editor identity and document-version scoping across native events, mention queries, editor-ready retries, pending native actions, and command retries to ignore stale native work.
  • Refreshed native iOS core framework metadata from the rebuilt editor core artifacts.

Fixed

  • iOS autocorrect, autocomplete, marked text, paste, blur, input trait updates, toolbar actions, and mention selection now preserve authorized native text changes through reconciliation.
  • Android IME composition, autocorrect, autocomplete, hardware keys, selection/range mapping, destroyed-editor handling, and pending native actions are guarded against stale or conflicting updates.
  • Native UTF-16/scalar position bridging now handles Unicode and list-marker offsets more consistently across Android and iOS.

Tests

  • Expanded Android, iOS, and JS regression coverage for autocorrect/autocomplete, command preflight and retry, mention query and selection scoping, controlled content sync, editor lifecycle guards, and Unicode position mapping.

0.5.16

Choose a tag to compare

@jaydensmith jaydensmith released this 14 May 12:48

Fixed

  • iOS and Android keyboard suggestions and autocorrections now commit into the Rust-backed editor state instead of being immediately reverted by reconciliation.