Skip to content

Commit

Permalink
[8.16] Fix share modal copy embed code (#204584) (#204705)
Browse files Browse the repository at this point in the history
# Backport

This will backport the following commits from `main` to `8.16`:
- [Fix share modal copy embed code
(#204584)](#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":"[email protected]"},"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\":\"[email protected]\"},\"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//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//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//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
<[email protected]>"}},{"url":"https://github.com/elastic/kibana/pull/204622","number":204622,"branch":"8.17","state":"OPEN"}]}]
BACKPORT-->

---------

Co-authored-by: kibanamachine <[email protected]>
  • Loading branch information
eokoneyo and kibanamachine authored Dec 19, 2024
1 parent eccf163 commit 3919433
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,7 @@ type EmbedProps = Pick<
| 'shareableUrl'
| 'embedUrlParamExtensions'
| 'objectType'
> & {
setIsNotSaved: () => void;
};
>;

interface UrlParams {
[extensionName: string]: {
Expand All @@ -52,7 +50,6 @@ export const EmbedContent = ({
shareableUrlForSavedObject,
shareableUrl,
objectType,
setIsNotSaved,
}: EmbedProps) => {
const isMounted = useMountedState();
const [urlParams, setUrlParams] = useState<UrlParams | undefined>(undefined);
Expand All @@ -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;
Expand Down
36 changes: 2 additions & 34 deletions src/plugins/share/public/components/tabs/embed/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,55 +8,24 @@
*/

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
{...{
embedUrlParamExtensions,
shareableUrlForSavedObject,
shareableUrl,
objectType,
isNotSaved: state?.isNotSaved,
setIsNotSaved,
}}
/>
);
Expand All @@ -67,6 +36,5 @@ export const embedTab: IEmbedTab = {
name: i18n.translate('share.contextMenu.embedCodeTab', {
defaultMessage: 'Embed',
}),
reducer: embedTabReducer,
content: EmbedTabContent,
};

0 comments on commit 3919433

Please sign in to comment.