Skip to content

Commit bea8257

Browse files
committed
Merge branch 'main' into mntor-3806
2 parents 2b2eca5 + edd2e66 commit bea8257

File tree

14 files changed

+1070
-878
lines changed

14 files changed

+1070
-878
lines changed

.github/pull_request_template.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Not applicable.
2121
- [ ] Commits in this PR are minimal and [have descriptive commit messages](https://chris.beams.io/posts/git-commit/).
2222
- [ ] I've added or updated the relevant sections in readme and/or code comments
2323
- [ ] I've added a unit test to test for potential regressions of this bug.
24+
- [ ] If this PR implements a feature flag or experimentation, I've checked that it still works with the flag both on, and with the flag off.
2425
- [ ] If this PR implements a feature flag or experimentation, the Ship Behind Feature Flag status in Jira has been set
2526
- [ ] Product Owner accepted the User Story (demo of functionality completed) or waived the privilege.
2627
- [ ] All acceptance criteria are met.

locales/ko/exposure-card.ftl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ exposure-card-other = 기타
2828
exposure-card-description-data-breach-action-needed = 정보가 { $data_breach_date }에 발생한 <data_breach_link>{ $data_breach_company } 데이터 유출로 인해 </data_breach_link>에 노출되었습니다. 해결을 위한 단계를 안내해 드리겠습니다.
2929
exposure-card-description-data-breach-fixed = <data_breach_link>이 유출</data_breach_link>을 해결하기 위한 조치를 취했습니다. 데이터 유출을 지속적으로 모니터링하고 새로운 유출이 일어날 경우 알려드리겠습니다.
3030
exposure-card-your-exposed-info = 노출된 정보:
31+
exposure-card-found-the-following-data = { -brand-monitor }에서 다음과 같은 노출된 데이터를 발견했습니다:
3132
exposure-card-exposure-type-data-broker = 판매 정보
3233
exposure-card-exposure-type-data-breach = 데이터 유출
33-
exposure-card-cta = 모든 유출 해결
34+
exposure-card-resolve-exposures-cta = 노출 문제 해결
3435
exposure-card-label-company-logo = 회사 로고
3536
exposure-card-label-company = 회사
3637
# Status of the exposure card, could be In Progress, Fixed or Action Needed
@@ -39,3 +40,4 @@ exposure-card-label-status = 상태
3940
# $category_label is the data breach exposure type that was leaked. Eg. Email, IP Address.
4041
# $count is the number of times that the data type was leaked.
4142
exposure-card-label-and-count = { $category_label }: { $count }
43+
exposure-card-manual-resolution-praise = <b>잘하셨습니다!</b> 이 노출 문제를 해결하셨습니다.

locales/ko/fix.ftl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ fix-flow-nav-leaked-passwords = 유출된 비밀번호
77
fix-flow-nav-security-recommendations = 보안 관련 권장 사항
88
guided-resolution-flow-exit = 대시보드로 돌아가기
99
guided-resolution-flow-next-arrow = 다음 단계로 넘어가기
10+
guided-resolution-flow-next-arrow-sub-step = 다음 결과로 가기
1011
guided-resolution-flow-step-navigation-label = 단계별 안내
1112
1213
# Celebration screens

locales/ko/settings.ftl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,13 @@ settings-delete-monitor-account-confirmation-toast-dismiss-label = 닫기
5353

5454
settings-alert-preferences-allow-monthly-monitor-report-title = 월간 { -brand-monitor } 보고서
5555
settings-alert-preferences-allow-monthly-monitor-report-subtitle = 새로운 유출, 고쳐진 사항, 주의가 필요한 사항에 대한 월별 업데이트입니다.
56+
57+
## Settings page redesign
58+
59+
settings-tab-label-edit-info = 정보 수정
60+
settings-tab-label-notifications = 알림 설정
61+
settings-tab-label-manage-account = 계정 관리
62+
settings-tab-subtitle-manage-account = { -product-name } 계정을 관리하세요.
63+
settings-tab-notifications-marketing-title = 마케팅 커뮤니케이션
64+
settings-tab-notifications-marketing-text = { -brand-monitor }{ -brand-mozilla }, 다른 보안 제품에 대한 정기적인 업데이트를 제공합니다.
65+
settings-tab-notifications-marketing-link-label = { -brand-mozilla } 이메일 설정으로 이동

package-lock.json

Lines changed: 973 additions & 848 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@
7070
"npm": "10.1.0"
7171
},
7272
"dependencies": {
73-
"@aws-sdk/client-s3": "^3.722.0",
74-
"@aws-sdk/lib-storage": "^3.722.0",
73+
"@aws-sdk/client-s3": "^3.731.1",
74+
"@aws-sdk/lib-storage": "^3.731.1",
7575
"@fluent/bundle": "^0.18.0",
7676
"@fluent/langneg": "^0.7.0",
7777
"@fluent/react": "^0.15.2",
@@ -124,8 +124,8 @@
124124
"@storybook/nextjs": "^8.4.7",
125125
"@storybook/react": "^8.4.6",
126126
"@testing-library/jest-dom": "^6.6.3",
127-
"@testing-library/react": "^16.1.0",
128-
"@testing-library/user-event": "^14.5.2",
127+
"@testing-library/react": "^16.2.0",
128+
"@testing-library/user-event": "^14.6.0",
129129
"@types/adm-zip": "^0.5.7",
130130
"@types/canvas-confetti": "^1.9.0",
131131
"@types/jest-axe": "^3.5.9",
@@ -159,9 +159,9 @@
159159
"prettier": "3.4.2",
160160
"sass": "^1.83.1",
161161
"storybook": "^8.4.6",
162-
"stylelint": "^16.12.0",
162+
"stylelint": "^16.13.2",
163163
"stylelint-config-recommended-scss": "^14.1.0",
164-
"stylelint-scss": "^6.10.0",
164+
"stylelint-scss": "^6.10.1",
165165
"tsx": "^4.19.2",
166166
"typescript": "^5.7.3",
167167
"yaml": "^2.7.0"

src/emails/StorybookEmailRenderer.tsx

Lines changed: 66 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { renderToStaticMarkup } from "react-dom/server";
99

1010
export type Props = {
1111
children: ReactNode;
12+
plainTextVersion: string | null;
1213
emulateDarkMode?: boolean;
1314
};
1415

@@ -18,7 +19,7 @@ export const StorybookEmailRenderer = (props: Props) => {
1819
const rawMjml = renderToStaticMarkup(props.children);
1920
const renderResult = mjml2html(rawMjml);
2021
return (
21-
<>
22+
<div className="wrapper">
2223
<style>{`
2324
@media (prefers-color-scheme: dark) {
2425
* {
@@ -31,22 +32,71 @@ export const StorybookEmailRenderer = (props: Props) => {
3132
background-color: #1e293b !important;
3233
color: white !important;
3334
}
35+
36+
.wrapper {
37+
display: flex;
38+
gap: 10px;
39+
}
40+
41+
.badge {
42+
align-self: flex-start;
43+
display: inline-block;
44+
font-family: monospace;
45+
background-color: #eee;
46+
border-radius: 3px;
47+
text-transform: uppercase;
48+
padding: 3px 5px;
49+
color: #444;
50+
}
51+
52+
.wrapper .styled {
53+
flex: 2 0 auto;
54+
width: 66%;
55+
padding: 20px;
56+
display: flex;
57+
flex-direction: column;
58+
align-items: center;
59+
gap: 20px;
60+
}
61+
.wrapper .plaintext {
62+
flex: 1 0 auto;
63+
width: 33%;
64+
font-family: monospace;
65+
border-inline-start: 1px solid #eee;
66+
padding: 20px;
67+
padding-inline-start: calc(10px + 20px);
68+
display: flex;
69+
flex-direction: column;
70+
align-items: flex-start;
71+
gap: 20px;
72+
}
73+
74+
.plaintext pre {
75+
white-space: pre-wrap;
76+
}
3477
`}</style>
35-
<div
36-
dangerouslySetInnerHTML={{
37-
__html:
38-
renderResult.errors.length > 0
39-
? `
40-
<h1>MJML rendering errors:</h1>
41-
<ul style="font-family: monospace;">${renderResult.errors.map((error) => `<li>${error.message}</li>`).join("\n")}</ul>
42-
<hr/>
43-
${renderResult.html}
44-
`
45-
: renderResult.html,
46-
}}
47-
className={props.emulateDarkMode ? "dark-mode-enforced" : ""}
48-
/>
49-
</>
78+
<section className="styled">
79+
<div className="badge">HTML</div>
80+
<div
81+
dangerouslySetInnerHTML={{
82+
__html:
83+
renderResult.errors.length > 0
84+
? `
85+
<h1>MJML rendering errors:</h1>
86+
<ul style="font-family: monospace;">${renderResult.errors.map((error) => `<li>${error.message}</li>`).join("\n")}</ul>
87+
<hr/>
88+
${renderResult.html}
89+
`
90+
: renderResult.html,
91+
}}
92+
className={props.emulateDarkMode ? "dark-mode-enforced" : ""}
93+
/>
94+
</section>
95+
<section className="plaintext">
96+
<div className="badge">Plaintext</div>
97+
<pre>{props.plainTextVersion ?? "Not set"}</pre>
98+
</section>
99+
</div>
50100
);
51101
};
52102
/* c8 ignore stop */

src/emails/templates/boilerplate/BoilerplateEmail.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { getL10n } from "../../../app/functions/l10n/storybookAndJest";
1212
const meta: Meta<FC<Props>> = {
1313
title: "Emails/Email boilerplate",
1414
component: (props: Props) => (
15-
<StorybookEmailRenderer>
15+
<StorybookEmailRenderer plainTextVersion={null}>
1616
<BoilerplateEmail {...props} />
1717
</StorybookEmailRenderer>
1818
),

src/emails/templates/breachAlert/BreachAlertEmail.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { getDashboardSummary } from "../../../app/functions/server/dashboard";
2121
const meta: Meta<FC<RedesignedBreachAlertEmailProps>> = {
2222
title: "Emails/Breach alert",
2323
component: (props: RedesignedBreachAlertEmailProps) => (
24-
<StorybookEmailRenderer>
24+
<StorybookEmailRenderer plainTextVersion={null}>
2525
<RedesignedBreachAlertEmail {...props} />
2626
</StorybookEmailRenderer>
2727
),

src/emails/templates/firstDataBrokerRemovalFixed/FirstDataBrokerRemovalFixed.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { getL10n } from "../../../app/functions/l10n/storybookAndJest";
1414
const meta: Meta<FC<Props>> = {
1515
title: "Emails/First data broker removal fixed",
1616
component: (props: Props) => (
17-
<StorybookEmailRenderer>
17+
<StorybookEmailRenderer plainTextVersion={null}>
1818
<FirstDataBrokerRemovalFixed {...props} />
1919
</StorybookEmailRenderer>
2020
),

0 commit comments

Comments
 (0)