Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit 5a24c6f

Browse files
committed
Avoid hardcoding branding in user onboarding
1 parent fecc032 commit 5a24c6f

File tree

4 files changed

+21
-9
lines changed

4 files changed

+21
-9
lines changed

src/components/views/user-onboarding/UserOnboardingFeedback.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,14 @@ export function UserOnboardingFeedback() {
3232
<div className="mx_UserOnboardingFeedback">
3333
<div className="mx_UserOnboardingFeedback_content">
3434
<Heading size="h4" className="mx_UserOnboardingFeedback_title">
35-
{ _t("How are you finding Element so far?") }
35+
{ _t("How are you finding %(brand)s so far?", {
36+
brand: SdkConfig.get("brand"),
37+
}) }
3638
</Heading>
3739
<div className="mx_UserOnboardingFeedback_text">
38-
{ _t("We’d appreciate any feedback on how you’re finding Element.") }
40+
{ _t("We’d appreciate any feedback on how you’re finding %(brand)s.", {
41+
brand: SdkConfig.get("brand"),
42+
}) }
3943
</div>
4044
</div>
4145
<AccessibleButton

src/components/views/user-onboarding/UserOnboardingList.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export function UserOnboardingList({ completedTasks, waitingTasks }: Props) {
6262
</div>
6363
<ol className="mx_UserOnboardingList_list">
6464
{ tasks.map(([task, completed]) => (
65-
<UserOnboardingTask key={task.title} completed={completed} task={task} />
65+
<UserOnboardingTask key={task.id} completed={completed} task={task} />
6666
)) }
6767
</ol>
6868
</div>

src/components/views/user-onboarding/UserOnboardingTask.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ interface Props {
2727
}
2828

2929
export function UserOnboardingTask({ task, completed = false }: Props) {
30+
const title = typeof task.title === "function" ? task.title() : task.title;
31+
const description = typeof task.description === "function" ? task.description() : task.description;
32+
3033
return (
3134
<li className={classNames("mx_UserOnboardingTask", {
3235
"mx_UserOnboardingTask_completed": completed,
@@ -42,10 +45,10 @@ export function UserOnboardingTask({ task, completed = false }: Props) {
4245
id={`mx_UserOnboardingTask_${task.id}`}
4346
className="mx_UserOnboardingTask_content">
4447
<Heading size="h4" className="mx_UserOnboardingTask_title">
45-
{ task.title }
48+
{ title }
4649
</Heading>
4750
<div className="mx_UserOnboardingTask_description">
48-
{ task.description }
51+
{ description }
4952
</div>
5053
</div>
5154
{ task.action && (!task.action.hideOnComplete || !completed) && (

src/hooks/useUserOnboardingTasks.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,15 @@ import { _t } from "../languageHandler";
2525
import Modal from "../Modal";
2626
import { Notifier } from "../Notifier";
2727
import PosthogTrackers from "../PosthogTrackers";
28+
import SdkConfig from "../SdkConfig";
2829
import { UseCase } from "../settings/enums/UseCase";
2930
import { useSettingValue } from "./useSettings";
3031
import { UserOnboardingContext } from "./useUserOnboardingContext";
3132

3233
export interface UserOnboardingTask {
3334
id: string;
34-
title: string;
35-
description: string;
35+
title: string | (() => string);
36+
description: string | (() => string);
3637
relevant?: UseCase[];
3738
action?: {
3839
label: string;
@@ -95,8 +96,12 @@ const tasks: InternalUserOnboardingTask[] = [
9596
},
9697
{
9798
id: "download-apps",
98-
title: _t("Download Element"),
99-
description: _t("Don’t miss a thing by taking Element with you"),
99+
title: () => _t("Download %(brand)s", {
100+
brand: SdkConfig.get("brand"),
101+
}),
102+
description: () => _t("Don’t miss a thing by taking %(brand)s with you", {
103+
brand: SdkConfig.get("brand"),
104+
}),
100105
completed: (ctx: UserOnboardingContext) => {
101106
return Boolean(ctx.devices.filter(it => it.device_id !== ctx.myDevice).length);
102107
},

0 commit comments

Comments
 (0)