Skip to content

Add native Gutenberg editor package #46

Description

@chubes4

Goal

Add first-class native Gutenberg editor support to wp-native, since the project is designed as a WordPress-native mobile app builder rather than a WebView wrapper.

wp-native should provide a reusable framework-level editor package that wraps Gutenberg Mobile's native editor surface and connects it to the existing wp-native-client / Abilities API stack.

Context

wp-native currently provides auth, token lifecycle, navigation, theme, browser handoff, and ability-driven screens. Native authoring is explicitly out of v0.1 scope, but it is a natural framework capability:

  • wp-native is a WordPress mobile app framework.
  • extrachill-app wants Gutenberg as the in-app authoring surface.
  • Gutenberg already has a React Native editor package: @wordpress/react-native-editor from WordPress/gutenberg.
  • Blocks Everywhere solved the related web problem by moving off @automattic/isolated-block-editor and onto current Gutenberg primitives. Native should use Gutenberg Mobile's native runtime, not IBE.

Proposed Shape

Create a new package, likely:

packages/editor

Public API candidates:

<WPNativeGutenbergEditor
  loadAbility="extrachill/forum.reply.editor.load"
  saveAbility="extrachill/forum.reply.editor.save"
  mediaAbility="extrachill/media.upload"
  context={{ replyId }}
/>

Or a screen-level wrapper:

<WPNativeEditorScreen
  title="Reply"
  loadAbility="..."
  saveAbility="..."
  mediaAbility="..."
/>

Responsibilities

  • Wrap @wordpress/react-native-editor / registerGutenberg() behind a stable wp-native API.
  • Integrate with useAuth() and wp-native-client for authenticated ability calls.
  • Define generic editor load/save/media/autosave contracts.
  • Support initial block content, dirty state, save state, error state, and navigation guards.
  • Provide TypeScript types for editor ability inputs/results.
  • Keep app-specific ability names in consumer config/screens, not in the framework.
  • Document native dependency requirements, including Expo custom dev build constraints.

Non-Goals

  • Do not use WebView as the primary editor runtime.
  • Do not revive @automattic/isolated-block-editor; that is a web/DOM abstraction and not appropriate for native mobile.
  • Do not put Extra Chill-specific routes or API clients into wp-native.

Acceptance Criteria

  • wp-native exposes a generic native Gutenberg editor package/surface.
  • A consumer app can load editor content through an ability, edit blocks natively, and save through an ability.
  • Media upload is represented as a generic ability contract or documented extension point.
  • The package works with the existing wp-native-shell auth provider and wp-native-client transport.
  • Docs clearly explain how this differs from Blocks Everywhere and why IBE is not used.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions