Skip to content

Commit 28202cc

Browse files
authored
Fix workspaceLogo in invite-email (#5865)
## Fixes wrong image url in email ![image](https://github.com/twentyhq/twenty/assets/29927851/5fb1524b-874d-4723-8450-0284382bbeb3) ## Done - duplicates and adapt `getImageAbsoluteURIOrBase64` from `twenty-front` in `twenty-email` - send `SERVER_URL` to email builder
1 parent a2e89af commit 28202cc

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

packages/twenty-emails/src/emails/send-invite-link.email.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { MainText } from 'src/components/MainText';
99
import { Title } from 'src/components/Title';
1010
import { WhatIsTwenty } from 'src/components/WhatIsTwenty';
1111
import { capitalize } from 'src/utils/capitalize';
12+
import { getImageAbsoluteURIOrBase64 } from 'src/utils/getImageAbsoluteURIOrBase64';
1213

1314
type SendInviteLinkEmailProps = {
1415
link: string;
@@ -17,13 +18,16 @@ type SendInviteLinkEmailProps = {
1718
email: string;
1819
firstName: string;
1920
};
21+
serverUrl?: string;
2022
};
2123

2224
export const SendInviteLinkEmail = ({
2325
link,
2426
workspace,
2527
sender,
28+
serverUrl,
2629
}: SendInviteLinkEmailProps) => {
30+
const workspaceLogo = getImageAbsoluteURIOrBase64(workspace.logo, serverUrl);
2731
return (
2832
<BaseEmail width={333}>
2933
<Title value="Join your team on Twenty" />
@@ -34,7 +38,7 @@ export const SendInviteLinkEmail = ({
3438
<br />
3539
</MainText>
3640
<HighlightedContainer>
37-
{workspace.logo && <Img src={workspace.logo} width={40} height={40} />}
41+
{workspaceLogo && <Img src={workspaceLogo} width={40} height={40} />}
3842
{workspace.name && <HighlightedText value={workspace.name} />}
3943
<CallToAction href={link} value="Accept invite" />
4044
</HighlightedContainer>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
export const getImageAbsoluteURIOrBase64 = (
2+
imageUrl?: string | null,
3+
serverUrl?: string,
4+
) => {
5+
if (!imageUrl) {
6+
return null;
7+
}
8+
9+
if (imageUrl?.startsWith('data:') || imageUrl?.startsWith('https:')) {
10+
return imageUrl;
11+
}
12+
13+
return serverUrl?.endsWith('/')
14+
? `${serverUrl.substring(0, serverUrl.length - 1)}/files/${imageUrl}`
15+
: `${serverUrl || ''}/files/${imageUrl}`;
16+
};

packages/twenty-server/src/engine/core-modules/workspace/services/workspace.service.ts

+1
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ export class WorkspaceService extends TypeOrmQueryService<Workspace> {
119119
link: inviteLink,
120120
workspace: { name: workspace.displayName, logo: workspace.logo },
121121
sender: { email: sender.email, firstName: sender.firstName },
122+
serverUrl: this.environmentService.get('SERVER_URL'),
122123
};
123124
const emailTemplate = SendInviteLinkEmail(emailData);
124125
const html = render(emailTemplate, {

0 commit comments

Comments
 (0)