-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
Redesign Share context menu #171253
Redesign Share context menu #171253
Conversation
@sixstringcode @ryankeairns This is still in flux but I think it's at a good point to get some design advice and input. Thank you for your help in advance! |
OK, I'm wrapped up in a few things at the moment, so let's piecemeal this. First things first, add a header to each modal where the title (within the modal) matches the link you clicked in the popover menu. The header structure will be like:
|
@rshen91 when you come back to this, can you post the latest screenshots in the description? From there, we can hash out additional UI/UX adjustments. Thanks! |
/ci |
@rshen91 here is the design PR. Feel free to merge or just use as a reference (i.e. make the edits in your local) if you want to avoid dealing with conflicts ;) |
const { toasts } = core.notifications; | ||
|
||
startServices$.subscribe(([{ application }, { licensing }]) => { | ||
startServices$.subscribe(([core, { licensing }]) => { |
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.
The core
name conflicts with a variable already in scope here:
startServices$.subscribe(([core, { licensing }]) => { | |
startServices$.subscribe(([coreStart, { licensing }]) => { |
licensing.license$.subscribe((license) => { | ||
shareSetup.register( | ||
reportingCsvShareProvider({ | ||
apiClient, | ||
toasts, | ||
uiSettings, | ||
license, | ||
application, | ||
application: core.application, |
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.
application: core.application, | |
application: coreStart.application, |
x-pack/plugins/reporting/public/share_context_menu/register_csv_reporting.tsx
Outdated
Show resolved
Hide resolved
x-pack/plugins/lens/public/app_plugin/csv_download_provider/csv_download_provider.tsx
Outdated
Show resolved
Hide resolved
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.
Left a few comments. I would like to understand more about the jobProviderOptions
data, and whether we can do away with it.
The Sharing services calls the getShareMenuItems
with a context object, which is an existing interface where I think we can add options or dependencies.
Pinging @elastic/appex-sharedux (Team:SharedUX) |
…re-context-menodals
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.
🥳
Code-wise, this LGTM!
- There are some skipped tests. If we merge it as-is, make sure to file an issue to address those in the short term.
- I know this has been brought up before and I think you and @kevinsweet talked about it, but we should have consistency of terminology between "Generate report" and "Download". Generating a report shouldn't be conflated with downloading, because in the case of CSV in Lens, only "download" is available - not report generation. That disjunction has proven to be confusing enough in the field.
- UI-wise, I think there are still some controls that don't look aligned to a "grid," such as the "Copy POST URL" button for CSV generation
- In Canvas, the share menu should disappear itself after the user is done with the modal.
💔 Build FailedFailed CI StepsTest Failures
Metrics [docs]Module Count
Public APIs missing comments
Async chunks
Page load bundle
Unknown metric groupsAPI count
async chunk count
ESLint disabled line counts
References to deprecated APIs
Total ESLint disabled count
Unreferenced deprecated APIs
History
To update your PR or re-run it, just comment with: cc @rshen91 |
This PR is going to be adapted into a new PR that will encompass the final redesign for the share modals vs merging this PR as an interim step. |
Summary
Closes https://github.com/elastic/kibana-team/issues/649
Redesign of the share context menu
This PR breaks apart the current setup of the ShareContextMenu. Buttons in modals show if saving is needed but do not block copying links. Embedding and getting a link for a saved object is blocked without saving the most recent changes as shown in the first screenshot.
Links and Embed are in the src/plugins/share/public/components/modals/ directory and is set up to add future modal views alongside these existing ones.
Future PRs
Checklist