Separate export menu from share#217109
Conversation
9599dc9 to
dea0d47
Compare
This comment was marked as outdated.
This comment was marked as outdated.
1 similar comment
This comment was marked as outdated.
This comment was marked as outdated.
171a724 to
07e002a
Compare
This comment was marked as outdated.
This comment was marked as outdated.
07e002a to
6cd02d8
Compare
This comment was marked as duplicate.
This comment was marked as duplicate.
6cd02d8 to
330f4ee
Compare
This comment was marked as duplicate.
This comment was marked as duplicate.
cf061de to
393a71a
Compare
This comment was marked as duplicate.
This comment was marked as duplicate.
0e351eb to
738895e
Compare
This comment was marked as duplicate.
This comment was marked as duplicate.
476bff4 to
8aa0858
Compare
This comment was marked as duplicate.
This comment was marked as duplicate.
8aa0858 to
6974f0c
Compare
|
/ci |
6974f0c to
0d277fc
Compare
|
/ci |
0d277fc to
5658b22
Compare
|
/ci |
eb39f16 to
2cfd3c2
Compare
ac47090 to
a45d819
Compare
a45d819 to
6091e8f
Compare
|
@elasticmachine merge upstream |
There was a problem hiding this comment.
I'm only approving the code changes around the our owned code.
Warning
I can't approve this PR from the design point of view. As specified in my comments, the current design doesn't offer a graceful interface for cases where we don't have much more to display then a very simple button. It feels incomplete, unnecessary "empty" (for the flyout) and at a first sight looks like something is broken, It doesn't seems better then the previous UX. Since we don't own the share menu components there is nothing we can do to block this. I hope we can find some better solution in a followup
|
|
||
| import { ShareMenuProvider, useShareContext, type IShareContext } from './context'; | ||
| import { linkTab, embedTab, exportTab } from './tabs'; | ||
| import { linkTab, embedTab } from './tabs'; |
There was a problem hiding this comment.
Within Lens, clicking on the share button looks very empty and incomplete.
The Link tab is now there alone, with no content in it (as it was before, but at least before the share menu was containing also the export part to have a bit more "content".
I think we can probably find a better solution for this case.
There was a problem hiding this comment.
Hi @markov00 thanks for pointing this out... I'd look into this
There was a problem hiding this comment.
An issue(#222093) has been created whence which this will be resolved.
| /> | ||
| ), | ||
| generateExportButton: ( | ||
| generateExportButtonLabel: ( |
There was a problem hiding this comment.
if it's okay with everyone, i'll work with @ek-so and @alexmarhaba on a quick follow-up PR to address these issues
| tooltip: () => { | ||
| if (!showShareMenu) { | ||
| return i18n.translate('xpack.lens.app.exportButtonDisabledWarning', { | ||
| defaultMessage: 'The visualization has no data to export.', |
There was a problem hiding this comment.
Not sure why, but the export icon, when there is no data to export, has 2 different tooltip that actives one after the other. Was that a wanted behaviour?
Screen.Recording.2025-05-29.at.14.58.34.mp4
There was a problem hiding this comment.
Maybe we could simplify the text to "No data to export" / "No data to share"?
There was a problem hiding this comment.
If I understood @markov00's point correctly it's the fact that two tooltips are displayed when there's no data to share, I made some adjustments and we have it like this now;
Screen.Recording.2025-06-02.at.12.06.13.mov
umbopepato
left a comment
There was a problem hiding this comment.
LGTM! (just added a comment)
b17875f to
6c0da88
Compare
|
@elasticmachine merge upstream |
💚 Build Succeeded
Metrics [docs]Public APIs missing comments
Async chunks
Page load bundle
History
cc @eokoneyo |
|
Merging this in, to attend to the raised concerns in #222093 |
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |

Summary
This PR extracts the share export functionality into a standalone triggered UI action, and builds mostly off of the work that's been done in #211665 as such any share integration type that's registered under the groupId
exportwill show up within the afore mentioned standalone export type.Registering a new export type would happen like so;
P.S. This registration can also be scoped to a particular object type (i.e. lens, dashboard etc.) if said integration is intended to only be available for only a particular object type.
Visuals for new export experience
visualize
(lens)
(others)
dashboard
(user with all reporting permissions)
(user with no pdf, png, csv privileges doesn't have the export button visible)
discover
Test scenarios