GitHub user saha23412 created a discussion: Sending messages via email on the dashboard is not working
I have a component that is responsible for sending messages via email. At some point, it stopped working. As far as I understand, a too‑long string (the generated URL for the chart) is being passed to the mailto field. Do you have any advice on how to fix this? <img width="1358" height="43" alt="image" src="https://github.com/user-attachments/assets/892c69d1-ace6-4563-8518-37e8b6771c00" /> `import { RefObject } from 'react'; import copyTextToClipboard from 'src/utils/copy'; import { t, logging } from '@superset-ui/core'; import { Menu } from 'src/components/Menu'; import { getDashboardPermalink } from 'src/utils/urlUtils'; import { MenuKeys, RootState } from 'src/dashboard/types'; import { shallowEqual, useSelector } from 'react-redux'; interface ShareMenuItemProps { url?: string; copyMenuItemTitle: string; emailMenuItemTitle: string; emailSubject: string; emailBody: string; addDangerToast: Function; addSuccessToast: Function; dashboardId: string | number; dashboardComponentId?: string; copyMenuItemRef?: RefObject<any>; shareByEmailMenuItemRef?: RefObject<any>; selectedKeys?: string[]; setOpenKeys?: Function; key?: string; title: string; } const ShareMenuItems = (props: ShareMenuItemProps) => { const { copyMenuItemTitle, emailMenuItemTitle, emailSubject, emailBody, addDangerToast, addSuccessToast, dashboardId, dashboardComponentId, key, title, } = props; const { dataMask, activeTabs } = useSelector( (state: RootState) => ({ dataMask: state.dataMask, activeTabs: state.dashboardState.activeTabs, }), shallowEqual, ); async function generateUrl() { return getDashboardPermalink({ dashboardId, dataMask, activeTabs, anchor: dashboardComponentId, }); } async function onCopyLink() { try { await copyTextToClipboard(generateUrl); addSuccessToast(t('Copied to clipboard!')); } catch (error) { logging.error(error); addDangerToast(t('Sorry, something went wrong. Try again later.')); } } async function onShareByEmail() { try { const encodedBody = encodeURIComponent( `${emailBody}${await generateUrl()}`, ); const encodedSubject = encodeURIComponent(emailSubject); window.location.href = `mailto:?Subject=${encodedSubject}%20&Body=${encodedBody}`; } catch (error) { logging.error(error); addDangerToast(t('Sorry, something went wrong. Try again later.')); } } return ( <Menu.SubMenu title={title} key={key}> <Menu.Item key={MenuKeys.CopyLink} onClick={() => onCopyLink()}> {copyMenuItemTitle} </Menu.Item> <Menu.Item key={MenuKeys.ShareByEmail} onClick={() => onShareByEmail()}> {emailMenuItemTitle} </Menu.Item> </Menu.SubMenu> ); }; export default ShareMenuItems;` GitHub link: https://github.com/apache/superset/discussions/45341 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
