fix: external actions were assuming all actions are urls. Fixes #3213

This commit is contained in:
Gabe Kangas 2023-07-26 11:15:23 -07:00
parent 7575c64d14
commit 16db7825c9
No known key found for this signature in database
GPG key ID: 4345B2060657F330

View file

@ -138,27 +138,32 @@ export const Content: FC = () => {
const externalActionSelected = (action: ExternalAction) => { const externalActionSelected = (action: ExternalAction) => {
const { openExternally, url } = action; const { openExternally, url } = action;
const updatedUrl = new URL(url);
updatedUrl.searchParams.append('instance', currentBrowserWindowUrl);
if (currentUser) { if (url) {
const { displayName } = currentUser; const updatedUrl = new URL(url);
updatedUrl.searchParams.append('instance', currentBrowserWindowUrl);
// Append url and username to params so the link knows where we came from and who we are. if (currentUser) {
updatedUrl.searchParams.append('username', displayName); const { displayName } = currentUser;
}
const fullUrl = updatedUrl.toString();
// Overwrite URL with the updated one that includes the params.
const updatedAction = {
...action,
url: fullUrl,
};
// apply openExternally only if we don't have an HTML embed // Append url and username to params so the link knows where we came from and who we are.
if (openExternally) { updatedUrl.searchParams.append('username', displayName);
window.open(fullUrl, '_blank'); }
const fullUrl = updatedUrl.toString();
// Overwrite URL with the updated one that includes the params.
const updatedAction = {
...action,
url: fullUrl,
};
// apply openExternally only if we don't have an HTML embed
if (openExternally) {
window.open(fullUrl, '_blank');
} else {
setExternalActionToDisplay(updatedAction);
}
} else { } else {
setExternalActionToDisplay(updatedAction); setExternalActionToDisplay(action);
} }
}; };