villebro commented on a change in pull request #19078:
URL: https://github.com/apache/superset/pull/19078#discussion_r824609593



##########
File path: 
superset-frontend/src/dashboard/components/menu/ShareMenuItems/index.tsx
##########
@@ -57,48 +53,29 @@ const ShareMenuItems = (props: ShareMenuItemProps) => {
     ...rest
   } = props;
 
-  const tabId = useTabId();
-
-  const getShortUrl = useUrlShortener(url || '');
-
-  async function getCopyUrl() {
-    const risonObj = getUrlParam(URL_PARAMS.nativeFilters);
-    if (typeof risonObj === 'object' || !dashboardId) return null;
-    const prevData = await getFilterValue(
-      dashboardId,
-      getUrlParam(URL_PARAMS.nativeFiltersKey),
-    );
-    const newDataMaskKey = await createFilterKey(
-      dashboardId,
-      JSON.stringify(prevData),
-      tabId,
-    );
-    const newUrl = new URL(`${window.location.origin}${url}`);
-    newUrl.searchParams.set(URL_PARAMS.nativeFilters.name, newDataMaskKey);
-    return `${newUrl.pathname}${newUrl.search}`;
-  }
-
   async function generateUrl() {
+    // chart
     if (formData) {
-      const key = await postFormData(
-        parseInt(formData.datasource.split('_')[0], 10),
-        formData,
-        formData.slice_id,
-        tabId,
-      );
-      return `${window.location.origin}${mountExploreUrl(null, {
-        [URL_PARAMS.formDataKey.name]: key,
-        [URL_PARAMS.sliceId.name]: formData.slice_id,
-      })}`;
+      return getChartPermalink(formData.slice_id, formData);
+    }
+    // dashboard
+    const nativeFiltersKey = getUrlParam(URL_PARAMS.nativeFiltersKey);
+    let filterState = {};
+    if (nativeFiltersKey && dashboardId) {
+      filterState = await getFilterValue(dashboardId, nativeFiltersKey);
     }
-    const copyUrl = await getCopyUrl();
-    return getShortUrl(copyUrl);
+    return getDashboardPermalink(String(dashboardId), filterState);
   }
 
   async function onCopyLink() {
     try {
-      await copyTextToClipboard(await generateUrl());
-      addSuccessToast(t('Copied to clipboard!'));
+      const url = await generateUrl();
+      if (url) {
+        await copyTextToClipboard(url);
+        addSuccessToast(t('Copied to clipboard!'));
+      } else {
+        addDangerToast(t('Dashboard missing'));

Review comment:
       Actually this can't return a falsy value anymore, so removing this.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org
For additional commands, e-mail: notifications-h...@superset.apache.org

Reply via email to