[8.16] Fix share modal copy embed code (#204584) (#204705)

# Backport

This will backport the following commits from `main` to `8.16`:
- [Fix share modal copy embed code
(#204584)](https://github.com/elastic/kibana/pull/204584)

<!--- Backport version: 8.9.8 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Eyo O.
Eyo","email":"7893459+eokoneyo@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-12-17T17:13:02Z","message":"Fix
share modal copy embed code (#204584)\n\n## Summary\r\n\r\nCloses
https://github.com/elastic/kibana/issues/204312\r\n\r\nThis PR removes
an unnecessary function, that causes an infinite render\r\nloop for
visualisations.\r\n\r\n\r\n##
After\r\n\r\n\r\nhttps://github.com/user-attachments/assets/259d238b-c1cf-4d74-bfca-1a6440d0f5cd\r\n\r\n##
How to test\r\n- From the left side nav, click the `Visualize Library`
menu item,\r\nattempt to create a legacy visualisation, any one of
choice and attempt\r\nsharing said created visualisation clicking the
copy embed code should\r\nnot result in any error but rather copy the
embed code with the visual\r\nfeedback.\r\n\r\n<!--\r\n###
Checklist\r\n\r\nCheck the PR satisfies following conditions.
\r\n\r\nReviewers should verify this PR satisfies this list as
well.\r\n\r\n- [ ] Any text added follows [EUI's
writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\r\nsentence case text and includes
[i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n-
[
]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas
added for features that require explanation or tutorials\r\n- [ ] [Unit
or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common scenarios\r\n- [ ] If a plugin
configuration key changed, check if it needs to be\r\nallowlisted in the
cloud and added to the
[docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n-
[ ] This was checked for breaking HTTP API changes, and any
breaking\r\nchanges have been approved by the breaking-change committee.
The\r\n`release_note:breaking` label should be applied in these
situations.\r\n- [ ] [Flaky
Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\r\nused on any tests changed\r\n- [ ] The PR description includes
the appropriate Release Notes section,\r\nand the correct
`release_note:*` label is applied per
the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n###
Identify risks\r\n\r\nDoes this PR introduce any risks? For example,
consider risks like hard\r\nto test bugs, performance regression,
potential of data loss.\r\n\r\nDescribe the risk, its severity, and
mitigation for each identified\r\nrisk. Invite stakeholders and evaluate
how to proceed before merging.\r\n\r\n- [ ] [See some
risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\r\n-
[ ]
...\r\n\r\n\r\n-->","sha":"effd84dc41c702b0a82631ee5777fed7f14dfb61","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","Team:SharedUX","backport:prev-major","v8.18.0"],"number":204584,"url":"https://github.com/elastic/kibana/pull/204584","mergeCommit":{"message":"Fix
share modal copy embed code (#204584)\n\n## Summary\r\n\r\nCloses
https://github.com/elastic/kibana/issues/204312\r\n\r\nThis PR removes
an unnecessary function, that causes an infinite render\r\nloop for
visualisations.\r\n\r\n\r\n##
After\r\n\r\n\r\nhttps://github.com/user-attachments/assets/259d238b-c1cf-4d74-bfca-1a6440d0f5cd\r\n\r\n##
How to test\r\n- From the left side nav, click the `Visualize Library`
menu item,\r\nattempt to create a legacy visualisation, any one of
choice and attempt\r\nsharing said created visualisation clicking the
copy embed code should\r\nnot result in any error but rather copy the
embed code with the visual\r\nfeedback.\r\n\r\n<!--\r\n###
Checklist\r\n\r\nCheck the PR satisfies following conditions.
\r\n\r\nReviewers should verify this PR satisfies this list as
well.\r\n\r\n- [ ] Any text added follows [EUI's
writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\r\nsentence case text and includes
[i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n-
[
]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas
added for features that require explanation or tutorials\r\n- [ ] [Unit
or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common scenarios\r\n- [ ] If a plugin
configuration key changed, check if it needs to be\r\nallowlisted in the
cloud and added to the
[docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n-
[ ] This was checked for breaking HTTP API changes, and any
breaking\r\nchanges have been approved by the breaking-change committee.
The\r\n`release_note:breaking` label should be applied in these
situations.\r\n- [ ] [Flaky
Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\r\nused on any tests changed\r\n- [ ] The PR description includes
the appropriate Release Notes section,\r\nand the correct
`release_note:*` label is applied per
the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n###
Identify risks\r\n\r\nDoes this PR introduce any risks? For example,
consider risks like hard\r\nto test bugs, performance regression,
potential of data loss.\r\n\r\nDescribe the risk, its severity, and
mitigation for each identified\r\nrisk. Invite stakeholders and evaluate
how to proceed before merging.\r\n\r\n- [ ] [See some
risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\r\n-
[ ]
...\r\n\r\n\r\n-->","sha":"effd84dc41c702b0a82631ee5777fed7f14dfb61"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/204584","number":204584,"mergeCommit":{"message":"Fix
share modal copy embed code (#204584)\n\n## Summary\r\n\r\nCloses
https://github.com/elastic/kibana/issues/204312\r\n\r\nThis PR removes
an unnecessary function, that causes an infinite render\r\nloop for
visualisations.\r\n\r\n\r\n##
After\r\n\r\n\r\nhttps://github.com/user-attachments/assets/259d238b-c1cf-4d74-bfca-1a6440d0f5cd\r\n\r\n##
How to test\r\n- From the left side nav, click the `Visualize Library`
menu item,\r\nattempt to create a legacy visualisation, any one of
choice and attempt\r\nsharing said created visualisation clicking the
copy embed code should\r\nnot result in any error but rather copy the
embed code with the visual\r\nfeedback.\r\n\r\n<!--\r\n###
Checklist\r\n\r\nCheck the PR satisfies following conditions.
\r\n\r\nReviewers should verify this PR satisfies this list as
well.\r\n\r\n- [ ] Any text added follows [EUI's
writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\r\nsentence case text and includes
[i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n-
[
]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas
added for features that require explanation or tutorials\r\n- [ ] [Unit
or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common scenarios\r\n- [ ] If a plugin
configuration key changed, check if it needs to be\r\nallowlisted in the
cloud and added to the
[docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n-
[ ] This was checked for breaking HTTP API changes, and any
breaking\r\nchanges have been approved by the breaking-change committee.
The\r\n`release_note:breaking` label should be applied in these
situations.\r\n- [ ] [Flaky
Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\r\nused on any tests changed\r\n- [ ] The PR description includes
the appropriate Release Notes section,\r\nand the correct
`release_note:*` label is applied per
the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n###
Identify risks\r\n\r\nDoes this PR introduce any risks? For example,
consider risks like hard\r\nto test bugs, performance regression,
potential of data loss.\r\n\r\nDescribe the risk, its severity, and
mitigation for each identified\r\nrisk. Invite stakeholders and evaluate
how to proceed before merging.\r\n\r\n- [ ] [See some
risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\r\n-
[ ]
...\r\n\r\n\r\n-->","sha":"effd84dc41c702b0a82631ee5777fed7f14dfb61"}},{"branch":"8.x","label":"v8.18.0","labelRegex":"^v8.18.0$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/204623","number":204623,"state":"MERGED","mergeCommit":{"sha":"f77fc58383202e136095d7a6ab011b95bd53b540","message":"[8.x]
Fix share modal copy embed code (#204584) (#204623)\n\n#
Backport\r\n\r\nThis will backport the following commits from `main` to
`8.x`:\r\n- [Fix share modal copy embed
code\r\n(#204584)](https://github.com/elastic/kibana/pull/204584)\r\n\r\n<!---
Backport version: 9.4.3 -->\r\n\r\n### Questions ?\r\nPlease refer to
the [Backport
tool\r\ndocumentation](https://github.com/sqren/backport)\r\n\r\n<!--BACKPORT
[{\"author\":{\"name\":\"Eyo
O.\r\nEyo\",\"email\":\"7893459+eokoneyo@users.noreply.github.com\"},\"sourceCommit\":{\"committedDate\":\"2024-12-17T17:13:02Z\",\"message\":\"Fix\r\nshare
modal copy embed code (#204584)\\n\\n##
Summary\\r\\n\\r\\nCloses\r\nhttps://github.com/elastic/kibana/issues/204312\\r\\n\\r\\nThis
PR removes\r\nan unnecessary function, that causes an infinite
render\\r\\nloop
for\r\nvisualisations.\\r\\n\\r\\n\\r\\n##\r\nAfter\\r\\n\\r\\n\\r\\nhttps://github.com/user-attachments/assets/259d238b-c1cf-4d74-bfca-1a6440d0f5cd\\r\\n\\r\\n##\r\nHow
to test\\r\\n- From the left side nav, click the `Visualize
Library`\r\nmenu item,\\r\\nattempt to create a legacy visualisation,
any one of\r\nchoice and attempt\\r\\nsharing said created visualisation
clicking the\r\ncopy embed code should\\r\\nnot result in any error but
rather copy the\r\nembed code with the
visual\\r\\nfeedback.\\r\\n\\r\\n<!--\\r\\n###\r\nChecklist\\r\\n\\r\\nCheck
the PR satisfies following conditions.\r\n\\r\\n\\r\\nReviewers should
verify this PR satisfies this list as\r\nwell.\\r\\n\\r\\n- [ ] Any text
added follows
[EUI's\r\nwriting\\r\\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),\r\nuses\\r\\nsentence
case text and
includes\r\n[i18n\\r\\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\\r\\n-\r\n[\r\n]\\r\\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\\r\\nwas\r\nadded
for features that require explanation or tutorials\\r\\n- [ ]
[Unit\r\nor\r\nfunctional\\r\\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\\r\\nwere\r\nupdated
or added to match the most common scenarios\\r\\n- [ ] If a
plugin\r\nconfiguration key changed, check if it needs to
be\\r\\nallowlisted in the\r\ncloud and added to
the\r\n[docker\\r\\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\\r\\n-\r\n[
] This was checked for breaking HTTP API changes, and
any\r\nbreaking\\r\\nchanges have been approved by the breaking-change
committee.\r\nThe\\r\\n`release_note:breaking` label should be applied
in these\r\nsituations.\\r\\n- [ ]
[Flaky\r\nTest\\r\\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)\r\nwas\\r\\nused
on any tests changed\\r\\n- [ ] The PR description includes\r\nthe
appropriate Release Notes section,\\r\\nand the
correct\r\n`release_note:*` label is applied
per\r\nthe\\r\\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\\r\\n\\r\\n###\r\nIdentify
risks\\r\\n\\r\\nDoes this PR introduce any risks? For
example,\r\nconsider risks like hard\\r\\nto test bugs, performance
regression,\r\npotential of data loss.\\r\\n\\r\\nDescribe the risk, its
severity, and\r\nmitigation for each identified\\r\\nrisk. Invite
stakeholders and evaluate\r\nhow to proceed before merging.\\r\\n\\r\\n-
[ ] [See
some\r\nrisk\\r\\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\\r\\n-\r\n[
]\r\n...\\r\\n\\r\\n\\r\\n-->\",\"sha\":\"effd84dc41c702b0a82631ee5777fed7f14dfb61\",\"branchLabelMapping\":{\"^v9.0.0$\":\"main\",\"^v8.18.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"release_note:skip\",\"v9.0.0\",\"Team:SharedUX\",\"backport:prev-major\"],\"title\":\"Fix\r\nshare
modal copy
embed\r\ncode\",\"number\":204584,\"url\":\"https://github.com/elastic/kibana/pull/204584\",\"mergeCommit\":{\"message\":\"Fix\r\nshare
modal copy embed code (#204584)\\n\\n##
Summary\\r\\n\\r\\nCloses\r\nhttps://github.com/elastic/kibana/issues/204312\\r\\n\\r\\nThis
PR removes\r\nan unnecessary function, that causes an infinite
render\\r\\nloop
for\r\nvisualisations.\\r\\n\\r\\n\\r\\n##\r\nAfter\\r\\n\\r\\n\\r\\nhttps://github.com/user-attachments/assets/259d238b-c1cf-4d74-bfca-1a6440d0f5cd\\r\\n\\r\\n##\r\nHow
to test\\r\\n- From the left side nav, click the `Visualize
Library`\r\nmenu item,\\r\\nattempt to create a legacy visualisation,
any one of\r\nchoice and attempt\\r\\nsharing said created visualisation
clicking the\r\ncopy embed code should\\r\\nnot result in any error but
rather copy the\r\nembed code with the
visual\\r\\nfeedback.\\r\\n\\r\\n<!--\\r\\n###\r\nChecklist\\r\\n\\r\\nCheck
the PR satisfies following conditions.\r\n\\r\\n\\r\\nReviewers should
verify this PR satisfies this list as\r\nwell.\\r\\n\\r\\n- [ ] Any text
added follows
[EUI's\r\nwriting\\r\\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),\r\nuses\\r\\nsentence
case text and
includes\r\n[i18n\\r\\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\\r\\n-\r\n[\r\n]\\r\\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\\r\\nwas\r\nadded
for features that require explanation or tutorials\\r\\n- [ ]
[Unit\r\nor\r\nfunctional\\r\\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\\r\\nwere\r\nupdated
or added to match the most common scenarios\\r\\n- [ ] If a
plugin\r\nconfiguration key changed, check if it needs to
be\\r\\nallowlisted in the\r\ncloud and added to
the\r\n[docker\\r\\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\\r\\n-\r\n[
] This was checked for breaking HTTP API changes, and
any\r\nbreaking\\r\\nchanges have been approved by the breaking-change
committee.\r\nThe\\r\\n`release_note:breaking` label should be applied
in these\r\nsituations.\\r\\n- [ ]
[Flaky\r\nTest\\r\\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)\r\nwas\\r\\nused
on any tests changed\\r\\n- [ ] The PR description includes\r\nthe
appropriate Release Notes section,\\r\\nand the
correct\r\n`release_note:*` label is applied
per\r\nthe\\r\\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\\r\\n\\r\\n###\r\nIdentify
risks\\r\\n\\r\\nDoes this PR introduce any risks? For
example,\r\nconsider risks like hard\\r\\nto test bugs, performance
regression,\r\npotential of data loss.\\r\\n\\r\\nDescribe the risk, its
severity, and\r\nmitigation for each identified\\r\\nrisk. Invite
stakeholders and evaluate\r\nhow to proceed before merging.\\r\\n\\r\\n-
[ ] [See
some\r\nrisk\\r\\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\\r\\n-\r\n[
]\r\n...\\r\\n\\r\\n\\r\\n-->\",\"sha\":\"effd84dc41c702b0a82631ee5777fed7f14dfb61\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[],\"targetPullRequestStates\":[{\"branch\":\"main\",\"label\":\"v9.0.0\",\"branchLabelMappingKey\":\"^v9.0.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/204584\",\"number\":204584,\"mergeCommit\":{\"message\":\"Fix\r\nshare
modal copy embed code (#204584)\\n\\n##
Summary\\r\\n\\r\\nCloses\r\nhttps://github.com/elastic/kibana/issues/204312\\r\\n\\r\\nThis
PR removes\r\nan unnecessary function, that causes an infinite
render\\r\\nloop
for\r\nvisualisations.\\r\\n\\r\\n\\r\\n##\r\nAfter\\r\\n\\r\\n\\r\\nhttps://github.com/user-attachments/assets/259d238b-c1cf-4d74-bfca-1a6440d0f5cd\\r\\n\\r\\n##\r\nHow
to test\\r\\n- From the left side nav, click the `Visualize
Library`\r\nmenu item,\\r\\nattempt to create a legacy visualisation,
any one of\r\nchoice and attempt\\r\\nsharing said created visualisation
clicking the\r\ncopy embed code should\\r\\nnot result in any error but
rather copy the\r\nembed code with the
visual\\r\\nfeedback.\\r\\n\\r\\n<!--\\r\\n###\r\nChecklist\\r\\n\\r\\nCheck
the PR satisfies following conditions.\r\n\\r\\n\\r\\nReviewers should
verify this PR satisfies this list as\r\nwell.\\r\\n\\r\\n- [ ] Any text
added follows
[EUI's\r\nwriting\\r\\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),\r\nuses\\r\\nsentence
case text and
includes\r\n[i18n\\r\\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\\r\\n-\r\n[\r\n]\\r\\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\\r\\nwas\r\nadded
for features that require explanation or tutorials\\r\\n- [ ]
[Unit\r\nor\r\nfunctional\\r\\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\\r\\nwere\r\nupdated
or added to match the most common scenarios\\r\\n- [ ] If a
plugin\r\nconfiguration key changed, check if it needs to
be\\r\\nallowlisted in the\r\ncloud and added to
the\r\n[docker\\r\\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\\r\\n-\r\n[
] This was checked for breaking HTTP API changes, and
any\r\nbreaking\\r\\nchanges have been approved by the breaking-change
committee.\r\nThe\\r\\n`release_note:breaking` label should be applied
in these\r\nsituations.\\r\\n- [ ]
[Flaky\r\nTest\\r\\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)\r\nwas\\r\\nused
on any tests changed\\r\\n- [ ] The PR description includes\r\nthe
appropriate Release Notes section,\\r\\nand the
correct\r\n`release_note:*` label is applied
per\r\nthe\\r\\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\\r\\n\\r\\n###\r\nIdentify
risks\\r\\n\\r\\nDoes this PR introduce any risks? For
example,\r\nconsider risks like hard\\r\\nto test bugs, performance
regression,\r\npotential of data loss.\\r\\n\\r\\nDescribe the risk, its
severity, and\r\nmitigation for each identified\\r\\nrisk. Invite
stakeholders and evaluate\r\nhow to proceed before merging.\\r\\n\\r\\n-
[ ] [See
some\r\nrisk\\r\\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\\r\\n-\r\n[
]\r\n...\\r\\n\\r\\n\\r\\n-->\",\"sha\":\"effd84dc41c702b0a82631ee5777fed7f14dfb61\"}}]}]\r\nBACKPORT-->\r\n\r\nCo-authored-by:
Eyo O. Eyo
<7893459+eokoneyo@users.noreply.github.com>"}},{"url":"https://github.com/elastic/kibana/pull/204622","number":204622,"branch":"8.17","state":"OPEN"}]}]
BACKPORT-->

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Eyo O. Eyo 2024-12-19 12:48:35 +00:00 committed by GitHub
parent eccf16306e
commit 3919433e21
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 4 additions and 49 deletions

View file

@ -17,13 +17,7 @@ describe('Share modal embed content tab', () => {
let component: ReactWrapper;
beforeEach(() => {
component = mountWithIntl(
<EmbedContent
objectType="dashboard"
setIsNotSaved={() => jest.fn()}
shareableUrl="/home#/"
/>
);
component = mountWithIntl(<EmbedContent objectType="dashboard" shareableUrl="/home#/" />);
});
it('works for simple url', async () => {

View file

@ -32,9 +32,7 @@ type EmbedProps = Pick<
| 'shareableUrl'
| 'embedUrlParamExtensions'
| 'objectType'
> & {
setIsNotSaved: () => void;
};
>;
interface UrlParams {
[extensionName: string]: {
@ -52,7 +50,6 @@ export const EmbedContent = ({
shareableUrlForSavedObject,
shareableUrl,
objectType,
setIsNotSaved,
}: EmbedProps) => {
const isMounted = useMountedState();
const [urlParams, setUrlParams] = useState<UrlParams | undefined>(undefined);
@ -63,10 +60,6 @@ export const EmbedContent = ({
const [anonymousAccessParameters] = useState<AnonymousAccessState['accessURLParameters']>(null);
const [usePublicUrl] = useState<boolean>(false);
useEffect(() => {
if (objectType !== 'dashboard') setIsNotSaved();
}, [url, setIsNotSaved, objectType]);
const makeUrlEmbeddable = useCallback((tempUrl: string): string => {
const embedParam = '?embed=true';
const urlHasQueryString = tempUrl.indexOf('?') !== -1;

View file

@ -8,46 +8,17 @@
*/
import { i18n } from '@kbn/i18n';
import React, { useCallback } from 'react';
import React from 'react';
import { type IModalTabDeclaration } from '@kbn/shared-ux-tabbed-modal';
import { EmbedContent } from './embed_content';
import { useShareTabsContext } from '../../context';
const EMBED_TAB_ACTIONS = {
SET_EMBED_URL: 'SET_EMBED_URL',
SET_IS_NOT_SAVED: 'SET_IS_NOT_SAVED',
};
type IEmbedTab = IModalTabDeclaration<{ url: string; isNotSaved: boolean }>;
const embedTabReducer: IEmbedTab['reducer'] = (state = { url: '', isNotSaved: false }, action) => {
switch (action.type) {
case EMBED_TAB_ACTIONS.SET_IS_NOT_SAVED:
return {
...state,
isNotSaved: action.payload,
};
case EMBED_TAB_ACTIONS.SET_IS_NOT_SAVED:
return {
...state,
isNotSaved: action.payload,
};
default:
return state;
}
};
const EmbedTabContent: NonNullable<IEmbedTab['content']> = ({ state, dispatch }) => {
const { embedUrlParamExtensions, shareableUrlForSavedObject, shareableUrl, objectType, isDirty } =
const { embedUrlParamExtensions, shareableUrlForSavedObject, shareableUrl, objectType } =
useShareTabsContext()!;
const setIsNotSaved = useCallback(() => {
dispatch({
type: EMBED_TAB_ACTIONS.SET_IS_NOT_SAVED,
payload: objectType === 'dashboard' ? isDirty : false,
});
}, [dispatch, objectType, isDirty]);
return (
<EmbedContent
{...{
@ -55,8 +26,6 @@ const EmbedTabContent: NonNullable<IEmbedTab['content']> = ({ state, dispatch })
shareableUrlForSavedObject,
shareableUrl,
objectType,
isNotSaved: state?.isNotSaved,
setIsNotSaved,
}}
/>
);
@ -67,6 +36,5 @@ export const embedTab: IEmbedTab = {
name: i18n.translate('share.contextMenu.embedCodeTab', {
defaultMessage: 'Embed',
}),
reducer: embedTabReducer,
content: EmbedTabContent,
};