Skip to main content

Rentiva v4.41.0 — Messages Phase 3: Full React SPA

· 2 min read
MaxHandMade
Maintainer

The Messages admin page has been completely rewritten as a React SPA, replacing the legacy jQuery/WP_List_Table implementation. Real-time filtering, bulk actions, thread view, reply forms, and settings management — all without page reloads.

What's New

Messages — Full React SPA (Phase 3)

New React Components

  • MessagesPage — root with URL-param routing (?id for thread, ?tab=settings for settings)
  • FilterBar — search + status/category/priority dropdowns with 300 ms debounce
  • MessageTable — checkbox bulk-select, unread dot indicator, row-click to thread
  • Pagination — prev/next, hidden when single page
  • BulkBar — parallel REST status updates + hidden admin-post form for bulk delete
  • ThreadView — full message thread with inline status dropdown
  • ReplyForm — "Send" (keep open) + "Send & Close" dual-action buttons
  • SettingsView — Email / Categories / Statuses tabs, admin-post save

REST API Extensions

Two new filter parameters added to the existing GET /mhm-rentiva/v1/messages endpoint:

  • search — debounced full-text filter (subject + sender name)
  • priority — filter by message priority level

Bulk Delete

New MessageDeleteHandler admin-post handler with nonce gate for bulk message trash operations. Runs outside the REST layer to leverage WP's post status management.

Why React?

The old WP_List_Table implementation required a full PHP page reload for every filter change, bulk action, or thread view. With 300 ms debounced search and parallel REST updates, the new SPA feels instant.