Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions docs/modules/migration/partials/migration-guide-26.2.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -209,4 +209,30 @@ tree.visitNodes(node => {
});
----

== HybridManager API improvements (Scout JS)

The `HybridManager` provides API to dispose formerly created widgets. Former implementations calling the hybrid Action _scout.DisposeWidgets_ manually using the remote ids can be migrated.

.Old: Disposing a `Widget` using the hybrid action _scout.DisposeWidgets_.
[source,typescript,opts=novalidate]
----
// create widget
const hybridManager = await HybridManager.get(this.session, true);
const id = hybridManager.callAction('example.CreateMyFancyWidget');
const myFancyWidget = (await hybridManager.when(`widgetAdd:${id}`)).widget;

// dispose widget
hybridManager.callAction('scout.DisposeWidgets', scout.create(DisposeWidgetsHybridActionDo, {ids: [id]}));
----

.New: Disposing a `Widget` using `HybridManager.disposeWidgets`.
[source,typescript,opts=novalidate]
----
// create widget
const hybridManager = await HybridManager.get(this.session, true);
const id = hybridManager.callAction('example.CreateMyFancyWidget');
const myFancyWidget = (await hybridManager.when(`widgetAdd:${id}`)).widget;

// dispose widget
hybridManager.disposeWidgets(myFancyWidget);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or just myFancyWidget.destroy()?

----
9 changes: 9 additions & 0 deletions docs/modules/releasenotes/partials/release-notes-26.2.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,12 @@ To support this, it now uses the `TreeVisitResult`, so you can now either skip v
To make it consistent with other visitor functions like `Widget.visitChildren`, returning `true` now stops visiting completely instead of just skipping the subtree.

This means you need to check your visitors according to the xref:migration-guide.adoc#tree-scout-js-api-of-visitnodes-changed[Migration Guide].

== HybridManager API improvements (Scout JS)

The `HybridManager` provides API to dispose formerly created widgets. The widgets passed to `HybridManager.disposeWidgets` are collected and disposed in a single hybrid action.

[source,typescript,opts=novalidate]
----
HybridManager.get().disposeWidgets(widgets);
----