MCPcopy Index your code
hub / github.com/10play/10tap-editor

github.com/10play/10tap-editor @v1.0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.1 ↗ · + Follow
194 symbols 378 edges 101 files 2 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

React native rich text editor 10tap

cover MIT License npm

TenTap is a typed, easy to use, customizable, and extendable Rich Text editor for React-Native based on Tiptap and Prosemirror. It offers a "plug and play" experience and comes with many essential features out of the box that can be incorporated into your apps quickly. Additionally, TenTap allows you the developers to tailor the editor to your applications specific needs.

Features

  • 💁 Based on tiptap
  • ➕ Extendable
  • ⚙️ Support dynamic scheme
  • 🛠️ Native toolbar
  • 💅 Customizable styles
  • 🌒 Darkmode and custom theme support
  • 🏗️ supports new architecture*

* new arch supported on react-native version 0.73.5 and above

Why?

After years of developing rich text editors for mobile, we realized that there is an empty void for open source RichText editors on mobile especially for ReactNative. So we have decided to create this package that incorporates all that we have learned, and that provides the best possible ux. Tentap is designed for getting the best experience of editing rich-text on mobile inspired by state of the art mobile editors like: gdocs, notion, dropbox paper.

Docs and Examples

Click Here For Full Documentation

Installation

React Native

  1. yarn add @10play/tentap-editor react-native-webview
  2. cd ios && pod install

Expo

npx expo install @10play/tentap-editor react-native-webview
Only basic usage is supported by Expo Go (see basic example).
Otherwise you will need to setup Expo Dev Client.

Now you ready to add tentap to your app!

Expo Web

TenTap supports expo web! See setup here

Usage

import React from 'react';
import {
  SafeAreaView,
  View,
  KeyboardAvoidingView,
  Platform,
  StyleSheet,
} from 'react-native';
import { RichText, Toolbar, useEditorBridge } from '@10play/tentap-editor';

export const Basic = () => {
  const editor = useEditorBridge({
    autofocus: true,
    avoidIosKeyboard: true,
    initialContent: 'Start editing!',
  });

  return (
    <SafeAreaView style={{ flex: 1 }}>
      <RichText editor={editor} />
      <KeyboardAvoidingView
        behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
        style={{
          position: 'absolute',
          width: '100%',
          bottom: 0,
        }}
      >
        <Toolbar editor={editor} />
      </KeyboardAvoidingView>
    </SafeAreaView>
  );
};

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with create-react-native-library

Extension points exported contracts — how you extend this code

IconProps (Interface)
(no doc)
examplelatest/src/Examples/Icon.tsx
EditorActionMessage (Interface)
(no doc)
src/types/Messaging.ts
Window (Interface)
(no doc)
src/webEditorUtils/useTenTap.tsx
RichTextProps (Interface)
(no doc)
src/RichText/RichText.tsx
Window (Interface)
(no doc)
src/simpleWebEditor/index.d.ts
BridgeExtension (Interface)
(no doc)
src/bridges/base.ts
ToolbarWithColorProps (Interface)
(no doc)
examplelatest/src/Examples/DarkEditor.tsx
BridgeState (Interface)
(no doc)
src/types/EditorBridge.ts

Core symbols most depended-on inside this repo

useEditorBridge
called by 8
src/RichText/useEditorBridge.tsx
useBridgeState
called by 5
src/RichText/useBridgeState.tsx
useKeyboard
called by 4
src/utils/useKeyboard.tsx
sendMessage
called by 4
src/webEditorUtils/useTenTap.tsx
addListener
called by 4
src/RichText/AsyncMessages.ts
setDocBottomPadding
called by 3
src/RichText/RichText.tsx
onMessage
called by 3
src/RichText/AsyncMessages.ts
clone
called by 3
src/bridges/base.ts

Shape

Function 69
Interface 66
Enum 24
Method 22
Class 13

Languages

TypeScript96%
Kotlin4%

Modules by API surface

src/bridges/base.ts9 symbols
src/RichText/useEditorBridge.tsx9 symbols
src/webEditorUtils/useTenTap.tsx7 symbols
src/bridges/listItem.ts6 symbols
src/RichText/AsyncMessages.ts6 symbols
examplelatest/src/Examples/CustomAndStaticToolbar/CustomRichText.tsx6 symbols
src/webEditorUtils/contentHeight.tsx5 symbols
src/bridges/placeholder.ts5 symbols
src/bridges/history.ts5 symbols
src/RichText/EditorHelper.ts5 symbols
src/webEditorUtils/focusListener.tsx4 symbols
src/bridges/HighlightSelection.ts4 symbols

For agents

$ claude mcp add 10tap-editor \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page