Skip to content

Commit 598ca5b

Browse files
brrichardsalexvy86
andauthored
resolve dom on import issue by moving quill components into their own package (#26676)
# Summary Quill in the react package was polluting all users of that package with a need to have a dom on import time. Now the quill specific imports that caused this have been moved to the new package at `/packages/framework/quill-react`. Moved `quillFormattedView.tsx`, `quillView.tsx`, and `mochaHooks` to new package. Left `plainTextView.tsx` in the react package as it did not contain any quill components. Separated the plain text tests from quill view tests when moving them over to the new package. Removed the inventory-app JSDOM fix needed when importing `@fluidframework/react/internal` when it still had quill components. Created `.changeset` with reasoning for why the package was created. #### Breaking Change Anyone importing quill components from `@fluidframework/react/internal` will now have to import from `@fluidframework/react/quill-react`. Since this is still internal and only used in text-editor, which has been updated with new path, this should be fine. --------- Co-authored-by: Alex Villarreal <716334+alexvy86@users.noreply.github.com>
1 parent 51544e1 commit 598ca5b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1691
-1044
lines changed

PACKAGES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ The dependencies between layers are enforced by the layer-check command._
105105

106106
| Packages | Layer Dependencies |
107107
| --- | --- |
108-
| - [@fluid-experimental/data-objects](/experimental/framework/data-objects)</br>- [@fluid-experimental/property-changeset](/experimental/PropertyDDS/packages/property-changeset)</br>- [@fluid-experimental/property-common](/experimental/PropertyDDS/packages/property-common)</br>- [@fluid-internal/platform-dependent](/experimental/PropertyDDS/packages/property-common/platform-dependent) (private)</br>- [@fluid-experimental/property-dds](/experimental/PropertyDDS/packages/property-dds)</br>- [@fluid-experimental/property-properties](/experimental/PropertyDDS/packages/property-properties)</br>- [@fluid-experimental/last-edited](/experimental/framework/last-edited)</br>- [@fluidframework/agent-scheduler](/packages/framework/agent-scheduler)</br>- [@fluidframework/aqueduct](/packages/framework/aqueduct)</br>- [@fluid-experimental/attributor](/packages/framework/attributor)</br>- [@fluidframework/app-insights-logger](/packages/framework/client-logger/app-insights-logger)</br>- [@fluidframework/fluid-telemetry](/packages/framework/client-logger/fluid-telemetry)</br>- [@fluid-experimental/data-object-base](/packages/framework/data-object-base)</br>- [@fluid-experimental/dds-interceptions](/packages/framework/dds-interceptions)</br>- [@fluidframework/fluid-static](/packages/framework/fluid-static)</br>- [@fluid-experimental/oldest-client-observer](/packages/framework/oldest-client-observer)</br>- [@fluidframework/presence](/packages/framework/presence)</br>- [@fluidframework/react](/packages/framework/react)</br>- [@fluidframework/request-handler](/packages/framework/request-handler)</br>- [@fluidframework/synthesize](/packages/framework/synthesize)</br>- [@fluidframework/tree-agent](/packages/framework/tree-agent)</br>- [@fluidframework/tree-agent-langchain](/packages/framework/tree-agent-langchain)</br>- [@fluidframework/tree-agent-ses](/packages/framework/tree-agent-ses)</br>- [@fluidframework/undo-redo](/packages/framework/undo-redo) | - [Core-Interfaces](#Core-Interfaces)</br>- [Driver-Definitions](#Driver-Definitions)</br>- [Container-Definitions](#Container-Definitions)</br>- [Core-Utils](#Core-Utils)</br>- [Client-Utils](#Client-Utils)</br>- [Telemetry-Utils](#Telemetry-Utils)</br>- [Loader](#Loader)</br>- [Runtime](#Runtime)</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp; |
108+
| - [@fluid-experimental/data-objects](/experimental/framework/data-objects)</br>- [@fluid-experimental/property-changeset](/experimental/PropertyDDS/packages/property-changeset)</br>- [@fluid-experimental/property-common](/experimental/PropertyDDS/packages/property-common)</br>- [@fluid-internal/platform-dependent](/experimental/PropertyDDS/packages/property-common/platform-dependent) (private)</br>- [@fluid-experimental/property-dds](/experimental/PropertyDDS/packages/property-dds)</br>- [@fluid-experimental/property-properties](/experimental/PropertyDDS/packages/property-properties)</br>- [@fluid-experimental/last-edited](/experimental/framework/last-edited)</br>- [@fluidframework/agent-scheduler](/packages/framework/agent-scheduler)</br>- [@fluidframework/aqueduct](/packages/framework/aqueduct)</br>- [@fluid-experimental/attributor](/packages/framework/attributor)</br>- [@fluidframework/app-insights-logger](/packages/framework/client-logger/app-insights-logger)</br>- [@fluidframework/fluid-telemetry](/packages/framework/client-logger/fluid-telemetry)</br>- [@fluid-experimental/data-object-base](/packages/framework/data-object-base)</br>- [@fluid-experimental/dds-interceptions](/packages/framework/dds-interceptions)</br>- [@fluidframework/fluid-static](/packages/framework/fluid-static)</br>- [@fluid-experimental/oldest-client-observer](/packages/framework/oldest-client-observer)</br>- [@fluidframework/presence](/packages/framework/presence)</br>- [@fluidframework/quill-react](/packages/framework/quill-react)</br>- [@fluidframework/react](/packages/framework/react)</br>- [@fluidframework/request-handler](/packages/framework/request-handler)</br>- [@fluidframework/synthesize](/packages/framework/synthesize)</br>- [@fluidframework/tree-agent](/packages/framework/tree-agent)</br>- [@fluidframework/tree-agent-langchain](/packages/framework/tree-agent-langchain)</br>- [@fluidframework/tree-agent-ses](/packages/framework/tree-agent-ses)</br>- [@fluidframework/undo-redo](/packages/framework/undo-redo) | - [Core-Interfaces](#Core-Interfaces)</br>- [Driver-Definitions](#Driver-Definitions)</br>- [Container-Definitions](#Container-Definitions)</br>- [Core-Utils](#Core-Utils)</br>- [Client-Utils](#Client-Utils)</br>- [Telemetry-Utils](#Telemetry-Utils)</br>- [Loader](#Loader)</br>- [Runtime](#Runtime)</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp;</br>&nbsp; |
109109

110110
### Build
111111

examples/data-objects/inventory-app/.mocharc.cjs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,4 @@ const config = getFluidTestMochaConfig(__dirname);
1212
// AB#7856
1313
config.exit = true;
1414

15-
// Set up JSDOM before Quill is imported (Quill requires document at import time)
16-
config["node-option"] ??= [];
17-
config["node-option"].push("import=./lib/test/mochaHooks.js");
18-
1915
module.exports = config;

examples/data-objects/inventory-app/src/test/mochaHooks.ts

Lines changed: 0 additions & 17 deletions
This file was deleted.

examples/data-objects/text-editor/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"dependencies": {
3939
"@fluid-example/example-utils": "workspace:~",
4040
"@fluidframework/azure-client": "workspace:~",
41+
"@fluidframework/quill-react": "workspace:~",
4142
"@fluidframework/react": "workspace:~",
4243
"@fluidframework/test-runtime-utils": "workspace:~",
4344
"@fluidframework/tree": "workspace:~",

examples/data-objects/text-editor/src/app.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,18 @@
66
import { AzureClient, type AzureLocalConnectionConfig } from "@fluidframework/azure-client";
77
import { createDevtoolsLogger, initializeDevtools } from "@fluidframework/devtools/beta";
88
import {
9-
toPropTreeNode,
109
FormattedMainView,
11-
PlainTextMainView,
12-
PlainQuillView,
10+
QuillMainView as PlainQuillView,
11+
// TODO: These imports use /internal entrypoints because the underlying APIs
12+
// haven't been promoted to public yet. Update to public entrypoints as the
13+
// APIs are stabalized.
14+
// eslint-disable-next-line import-x/no-internal-modules
15+
} from "@fluidframework/quill-react/internal";
16+
import {
17+
toPropTreeNode,
1318
UndoRedoStacks,
1419
type UndoRedo,
20+
PlainTextMainView,
1521
// eslint-disable-next-line import-x/no-internal-modules
1622
} from "@fluidframework/react/internal";
1723
/**

feeds/internal-build.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
@fluidframework/synthesize
3232
@fluidframework/request-handler
3333
@fluidframework/react
34+
@fluidframework/quill-react
3435
@fluidframework/presence
3536
@fluid-experimental/oldest-client-observer
3637
@fluidframework/fluid-static

feeds/internal-test.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
@fluidframework/synthesize
3838
@fluidframework/request-handler
3939
@fluidframework/react
40+
@fluidframework/quill-react
4041
@fluidframework/presence
4142
@fluid-experimental/oldest-client-observer
4243
@fluidframework/fluid-static

feeds/public.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
@fluidframework/synthesize
3131
@fluidframework/request-handler
3232
@fluidframework/react
33+
@fluidframework/quill-react
3334
@fluidframework/presence
3435
@fluid-experimental/oldest-client-observer
3536
@fluidframework/fluid-static

fluidBuild.config.cjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,7 @@ module.exports = {
453453
"^build-tools/",
454454
"^common/build/",
455455
"^experimental/PropertyDDS/",
456+
"^packages/framework/quill-react/",
456457
"^tools/api-markdown-documenter/",
457458
],
458459
"npm-package-exports-field": [
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*!
2+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3+
* Licensed under the MIT License.
4+
*/
5+
6+
"use strict";
7+
8+
const getFluidTestMochaConfig = require("@fluid-internal/mocha-test-setup/mocharc-common");
9+
10+
const config = getFluidTestMochaConfig(__dirname);
11+
// TODO: figure out why this package needs the --exit flag, tests might not be cleaning up correctly after themselves.
12+
// AB#7856
13+
config.exit = true;
14+
15+
module.exports = config;

0 commit comments

Comments
 (0)