-
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
[Security Solution][Resolver] Replace copy-to-clipboard with native navigator.clipboard #80193
Conversation
Pinging @elastic/endpoint-app-team (Feature:Resolver) |
@elasticmachine merge upstream |
titleSummary={textToCopy} | ||
<EuiToolTip content={TRANSLATED_COPY_TO_CLIPBOARD}> | ||
<EuiButtonIcon | ||
aria-label={TRANSLATED_COPY_TO_CLIPBOARD} |
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.
❔ I think you could either put the text that's going to be copied in that aria-label
like Copy ${textToCopy} to clipboard
or you could maybe add an aria-description="${texttoCopy}" .
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.
aria-description doesn't seem to be valid. I can change it to Copy ${textToCopy} to clipboard
?
@@ -34,6 +34,12 @@ const StyledCopyableField = styled.div<StyledCopyableField>` | |||
} | |||
`; | |||
|
|||
const TRANSLATED_COPY_TO_CLIPBOARD = i18n.translate( |
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.
can you just put this inline since its a string, or otherwise use a camel case variable name.
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.
yep
<EuiButtonIcon | ||
aria-label={TRANSLATED_COPY_TO_CLIPBOARD} | ||
color="text" | ||
data-test-subj="clipboard" |
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.
Is this data-test-subj
correct? In the old code it was namespaced under resolver:...
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.
Thanks, yea, I fixed it.
@@ -59,6 +66,22 @@ export const CopyablePanelField = memo( | |||
|
|||
const onMouseLeave = () => setIsOpen(false); | |||
|
|||
const onClick = async (event: React.MouseEvent<HTMLButtonElement>) => { | |||
event.preventDefault(); |
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.
What's the purpose in preventing default and stopping propagation?
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.
copypasta. stopPropagation
would be useful if we also had the drag and drop functionality, but alas we aren't there yet
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.
Thanks for the change. I added a few comments. Let me know if they don't make sense.
@@ -36,6 +31,14 @@ describe(`Resolver: when analyzing a tree with no ancestors and two children and | |||
|
|||
beforeEach(() => { | |||
// create a mock data access layer | |||
Object.assign(navigator, { | |||
clipboard: { | |||
writeText: () => {}, |
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.
Instead of doing this, would you add writeText
to the side effect simulator?
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.
done
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.
done
6d517ab
to
d61b755
Compare
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.
Thank you so much for this
💛 Build succeeded, but was flaky
Test FailuresCreates a timeline.Timelines Creates a timelineStack Trace
Metrics [docs]async chunks size
History
To update your PR or re-run it, just comment with: |
…avigator.clipboard (elastic#80193)
…otphase-to-formlib * 'master' of github.com:elastic/kibana: (59 commits) [Security Solution][Resolver] Replace copy-to-clipboard with native navigator.clipboard (elastic#80193) [Security Solution] Reduce initial bundle size (elastic#78992) [Security Solution][Resolver] Fix Resize node box-shadow bug (elastic#80223) Move observability content (elastic#79978) skip flaky suite (elastic#79389) removing kibana_datatable` in favor of `datatable` (elastic#75184) [ML] Fixes for anomaly swim lane (elastic#80299) [Lens] Smokescreen lens test unskip (elastic#80190) Improved AlertsClient tests structure by splitting a huge alerts_client.tests.ts file into a specific files defined by its responsibility. (elastic#80088) [APM] React key warning when opening popover with external resources (elastic#80328) [Step 1] use Observables on server search API (elastic#79874) Apply back pressure in Task Manager whenever Elasticsearch responds with a 429 (elastic#75666) [Lens] Leverage original http request error (elastic#79831) [Security Solution][Case] Improve ServiceConnectorCaseParams type (elastic#80109) [SECURITY_SOLUTION] Fix query on alert histogram (elastic#80219) [DOCS] Update ingest node pipelines doc (elastic#79187) [Ingest Manager] Split up OpenAPI spec file (elastic#80107) [SECURITY_SOLUTION][ENDPOINT] Fix label on Trusted App create name field (elastic#80001) [Ingest Manager] Fix agent policy bump revision to create only one POLICY_CHANGE action (elastic#80081) Grid layout fixes (elastic#80305) ... # Conflicts: # x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared/data_tier_allocation_field.tsx # x-pack/plugins/index_lifecycle_management/public/shared_imports.ts
Summary
This replaces the
clipboard
package with the nativenavigator.clipboard
api. For reference onwriteText()
https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText and browser availability: https://caniuse.com/?search=writetext