Skip to content

Commit

Permalink
[visualize] fix unsaved state when adding by-value visualize embeddab…
Browse files Browse the repository at this point in the history
…le to dashboard (elastic#211264)

Follow up to elastic#210125

[8.16](elastic#211057) and
[8.17](elastic#211054) backports for
elastic#210125 were failing functional
test
https://github.com/elastic/kibana/blob/8.17/test/functional/apps/dashboard/group1/dashboard_unsaved_listing.ts#L142.
The functional test adds a by-value and by-reference legacy
visualization to a new dashboard. Upon saving the dashboard, the
dashboard still showed unsaved changes.

The reason this test did not fail main and other branches is that
elastic#208116 removed the "by-value"
part of the test (since its no longer possible to add a by-value legacy
visualization from within a dashboard). It is still possible to recreate
the issue in main with the following steps
1) Click "Visualize Library" in left nav
2) Click "Create visualization" button. 
3) Click "Legacy" tab
4) Click "Aggregation based"
5) Click "Area"
6) Click web logs sample data view
7) Click "Save"
8) Set title
9) Under "Add to dashboard", click "New", click save
10) save dashboard. Notice how dashboard still has unsaved changes.

8.16 and 8.17 required a [new
commit](elastic@1fd631c)
to resolve the issue by updating the `linkedToLibrary` to ignore
undefined values.

This PR fixes the issue for the other branches that have already been
merged.

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
  • Loading branch information
3 people authored Feb 18, 2025
1 parent bc3f772 commit 6789c94
Showing 1 changed file with 7 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,13 @@ export const getVisualizeEmbeddableFactory: (deps: {
},
],
savedObjectProperties: getUnchangingComparator(),
linkedToLibrary: [linkedToLibrary$, (value) => linkedToLibrary$.next(value)],
linkedToLibrary: [
linkedToLibrary$,
(value) => linkedToLibrary$.next(value),
(a, b) => {
return a === undefined || b === undefined ? true : a === b;
},
],
}
);

Expand Down

0 comments on commit 6789c94

Please sign in to comment.