text editor example using SharedTree and Quill #26217
Merged
brrichards merged 10 commits intomicrosoft:mainfrom Jan 16, 2026
Merged
text editor example using SharedTree and Quill #26217brrichards merged 10 commits intomicrosoft:mainfrom
brrichards merged 10 commits intomicrosoft:mainfrom
Conversation
2f0d6c2 to
c7e5c98
Compare
c7e5c98 to
3792031
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request adds a new collaborative text editor example demonstrating the integration of SharedTree (via TextAsTree) with Quill 2.x editor and React. The example showcases using withMemoizedTreeObservations from @fluidframework/react for automatic re-rendering when the SharedTree changes.
Changes:
- New
@fluid-example/text-editorpackage with Quill 2.x integration for collaborative plain text editing - ESM-compatible test setup with mocha hooks for JSDOM initialization required by Quill
- Comprehensive test coverage including surrogate pair (emoji) handling
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Added dependencies for Quill 2.x and related packages; includes extraneous time: {} entry at end |
| examples/data-objects/text-editor/package.json | Package manifest for new text-editor example with dependencies and scripts |
| examples/data-objects/text-editor/src/index.ts | Entry point connecting TextEditorFactory with ContainerViewRuntimeFactory |
| examples/data-objects/text-editor/src/schema.ts | Schema configuration using TextAsTree from internal SharedTree API |
| examples/data-objects/text-editor/src/textEditorFactory.ts | Factory using treeDataObjectInternal to create TextAsTree instances |
| examples/data-objects/text-editor/src/quillView.tsx | React component integrating Quill editor with SharedTree using withMemoizedTreeObservations |
| examples/data-objects/text-editor/src/test/textEditor.test.tsx | Test suite covering DOM rendering, mutations, and surrogate pair handling |
| examples/data-objects/text-editor/src/test/mochaHooks.mjs | JSDOM setup hook required before Quill import |
| examples/data-objects/text-editor/.mocharc.cjs | Mocha configuration with JSDOM preload hook |
| examples/data-objects/text-editor/webpack.config.cjs | Webpack configuration for building the example |
| examples/data-objects/text-editor/tsconfig.json | TypeScript configuration with React types |
| examples/data-objects/text-editor/src/test/tsconfig.json | TypeScript test configuration |
| examples/data-objects/text-editor/eslint.config.mts | ESLint configuration with React-specific rules |
| examples/data-objects/text-editor/biome.jsonc | Biome formatter configuration |
| examples/data-objects/text-editor/README.md | Documentation for the example |
| examples/data-objects/text-editor/LICENSE | MIT license file |
| examples/data-objects/text-editor/.npmignore | npm package exclusions |
| examples/data-objects/text-editor/.gitignore | Git exclusions |
| PACKAGES.md | Updated package list to include new text-editor example |
| .changeset/happy-pens-clap.md | Changeset describing the new feature |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Contributor
|
🔗 No broken links found! ✅ Your attention to detail is admirable. linkcheck output |
CraigMacomber
approved these changes
Jan 16, 2026
This was referenced Jan 16, 2026
CraigMacomber
added a commit
that referenced
this pull request
Jan 20, 2026
## Description Minimal prototype for formatted text with inline objects. This is targeting matching what Quill needs for formatting, see #26217
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changes
@fluid-example/text-editorpackage inexamples/data-objects/text-editor/