-
Notifications
You must be signed in to change notification settings - Fork 554
feat(aqueduct): Tree-based PureDataObject implementation #23943
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: Craig Macomber (Microsoft) <42876482+CraigMacomber@users.noreply.github.com>
packages/test/test-end-to-end-tests/src/test/treeDataObject.spec.ts
Outdated
Show resolved
Hide resolved
.changeset/stuffed-bears-relax.md
Outdated
Update data object APIs to leverage new SharedTree-based data object class | ||
|
||
Rather than leveraging a classic `DataObject` with a `SharedDirectory` at the root, and a `SharedTree` beneath, the library now leverages a new data object class that uses the `SharedTree` directly at the root. | ||
Results in some simplifications to this package's APIs which are breaking. | ||
Namely, | ||
- Removes the `key` property from the data object configuration. | ||
This key was used to inform where the SharedTree was parented beneath the root SharedDirectory, so it no longer serves a purpose. | ||
- Inlined the `ITreeDataObject` interface into `IReactTreeDataObject`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will show up in two places based on our release process: the changelog of the package (its fine for that) and the release notes for the client release this lands in.
I think the phrasing here needs to be made a bit more specific, so it makes sense in that context.
Also this description covers a bit too much internal implementation details for a customer facing release.
Update data object APIs to leverage new SharedTree-based data object class | |
Rather than leveraging a classic `DataObject` with a `SharedDirectory` at the root, and a `SharedTree` beneath, the library now leverages a new data object class that uses the `SharedTree` directly at the root. | |
Results in some simplifications to this package's APIs which are breaking. | |
Namely, | |
- Removes the `key` property from the data object configuration. | |
This key was used to inform where the SharedTree was parented beneath the root SharedDirectory, so it no longer serves a purpose. | |
- Inlined the `ITreeDataObject` interface into `IReactTreeDataObject`. | |
Simplify experimental tree data object implementation | |
The experimental tree data object from `tree-react-api` are incompatible with their previous version which used a `DataObject` with a `SharedDirectory` at the root. | |
The library now leverages a new data object that uses the `SharedTree` directly at the root. | |
In addition to breaking compatibility with existing documents, This resulted in some simplifications to the APIs which are also breaking: | |
- Removes the `key` property from the data object configuration. | |
This key was used to specify where the SharedTree was parented beneath the root SharedDirectory. | |
- Inlined the `ITreeDataObject` interface into `IReactTreeDataObject`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good feedback. I made some adjustments to your suggestion, so let me know what you think of the final wording.
🔗 Found some broken links! 💔 Run a link check locally to find them. See linkcheck output
|
…hema and tree inspection (#24593) #### Relevant PR [23943](#23943) [24523](#24523) #### Description This change introduces a `sharedTree: ITree` accessor to the `TreeDataObject` class, enabling direct access to the underlying `SharedTree` instance used internally. **Motivation**: While building support for visualizing `TreeDataObject` components in Fluid Devtools, it became evident that accessing the raw `SharedTree` instance and its schema is essential for rendering accurate and meaningful visualizations. Previously, this access was only internal to the object, limiting flexibility in advanced inspection or debugging workflows. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Joshua Smithrud <54606601+Josmithr@users.noreply.github.com>
Adds a new (internal)
PureDataObject
implementation backed by aSharedTree
, rather than aSharedDirectory
.This implementation was partially derived from an existing prototype in
tree-react-api
. That package and the example built on it (inventory-app
) have been updated to utilize these APIs.AB#29396