Skip to content

Commit 8e2d615

Browse files
committed
WIP on mntor-5000: f3be4d6 doc: fix typo in load test instructions (#6163)
2 parents f3be4d6 + c1e9cb6 commit 8e2d615

File tree

9 files changed

+28
-17
lines changed

9 files changed

+28
-17
lines changed

src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/EmailAddressAdder.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,13 @@ import { useL10n } from "../../../../../../hooks/l10n";
2121
import { ModalOverlay } from "../../../../../../components/client/dialog/ModalOverlay";
2222
import { Dialog } from "../../../../../../components/client/dialog/Dialog";
2323
import { type onAddEmail } from "./actions";
24-
import { CONST_MAX_NUM_ADDRESSES } from "../../../../../../../constants";
24+
import { CONST_MAX_NUM_ADDRESSES, CONST_MAX_NUM_ADDRESSES_PLUS } from "../../../../../../../constants";
2525
import { useTelemetry } from "../../../../../../hooks/useTelemetry";
26+
import { FeatureFlagName } from "../../../../../../../db/tables/featureFlags";
2627

2728
export type Props = {
2829
onAddEmail: typeof onAddEmail;
30+
enabledFeatureFlags: FeatureFlagName[];
2931
};
3032

3133
export const EmailAddressAdder = (props: Props) => {
@@ -124,7 +126,7 @@ const EmailAddressAddForm = (props: Props) => {
124126
<>
125127
<p>
126128
{l10n.getString("add-email-your-account-includes", {
127-
total: CONST_MAX_NUM_ADDRESSES,
129+
total: props.enabledFeatureFlags.includes("FreeBreachEmailAddresses") ? CONST_MAX_NUM_ADDRESSES_PLUS : CONST_MAX_NUM_ADDRESSES,
128130
})}
129131
</p>
130132
<form

src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/actions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ export async function onAddEmail(
9090
};
9191
}
9292

93-
const maxNumEmailAddresses = hasPremium(subscriber)
93+
const maxNumEmailAddresses = enabledFeatureFlags.includes("FreeBreachEmailAddresses")
9494
? CONST_MAX_NUM_ADDRESSES_PLUS
95-
: CONST_MAX_NUM_ADDRESSES;
95+
: hasPremium(subscriber) ? CONST_MAX_NUM_ADDRESSES_PLUS : CONST_MAX_NUM_ADDRESSES;
9696
const existingAddresses = [session.user.email]
9797
.concat(subscriber.email_addresses.map((emailRow) => emailRow.email))
9898
.map((address) => address.toLowerCase());

src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/panels/SettingsPanelEditInfo.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import { useState } from "react";
66
import { captureException } from "@sentry/nextjs";
77
import { OnerepProfileRow, SubscriberRow } from "knex/types/tables";
8-
import { CONST_MAX_NUM_ADDRESSES } from "../../../../../../../../constants";
8+
import { CONST_MAX_NUM_ADDRESSES, CONST_MAX_NUM_ADDRESSES_PLUS } from "../../../../../../../../constants";
99
import { SubscriberEmailPreferencesOutput } from "../../../../../../../../db/tables/subscriber_email_preferences";
1010
import { useL10n } from "../../../../../../../hooks/l10n";
1111
import { EmailAddressAdder } from "../EmailAddressAdder";
@@ -20,6 +20,7 @@ import { useTelemetry } from "../../../../../../../hooks/useTelemetry";
2020
import { Button } from "../../../../../../../components/client/Button";
2121
import styles from "./SettingsPanelEditInfo.module.scss";
2222
import { type onRemoveEmail, type onAddEmail } from "../actions";
23+
import { FeatureFlagName } from "../../../../../../../../db/tables/featureFlags";
2324

2425
export type SettingsPanelEditInfoProps = {
2526
breachCountByEmailAddress: Record<string, number>;
@@ -32,6 +33,7 @@ export type SettingsPanelEditInfoProps = {
3233
onAddEmail: typeof onAddEmail;
3334
onRemoveEmail: typeof onRemoveEmail;
3435
};
36+
enabledFeatureFlags: FeatureFlagName[];
3537
};
3638

3739
function MonitoredEmail(props: {
@@ -115,16 +117,17 @@ function MonitoredEmail(props: {
115117

116118
function SettingsPanelEditInfo(props: SettingsPanelEditInfoProps) {
117119
const l10n = useL10n();
120+
const maxEmailAddressesNum = props.enabledFeatureFlags.includes("FreeBreachEmailAddresses") ? CONST_MAX_NUM_ADDRESSES_PLUS : CONST_MAX_NUM_ADDRESSES
118121
const hasMaxEmailAddresses =
119-
props.emailAddresses.length < CONST_MAX_NUM_ADDRESSES - 1;
122+
props.emailAddresses.length < maxEmailAddressesNum - 1;
120123

121124
return (
122125
<>
123126
<div>
124127
<h3>{l10n.getString("settings-email-list-title")}</h3>
125128
<p>
126129
{l10n.getString("settings-email-limit-info", {
127-
limit: CONST_MAX_NUM_ADDRESSES,
130+
limit: maxEmailAddressesNum,
128131
})}
129132
</p>
130133
</div>
@@ -156,7 +159,10 @@ function SettingsPanelEditInfo(props: SettingsPanelEditInfoProps) {
156159
</ul>
157160
<span className={styles.addEmailButton}>
158161
{hasMaxEmailAddresses && (
159-
<EmailAddressAdder onAddEmail={props.actions.onAddEmail} />
162+
<EmailAddressAdder
163+
onAddEmail={props.actions.onAddEmail}
164+
enabledFeatureFlags={props.enabledFeatureFlags}
165+
/>
160166
)}
161167
</span>
162168
</>

src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/panels/SettingsPanelEditInfoRedesign.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,9 @@ function MonitoredEmailAddressesSection(
227227
props: SettingsPanelEditInfoRedesignProps,
228228
) {
229229
const l10n = useL10n();
230-
const maxNumEmailAddresses = hasPremium(props.user)
230+
const maxNumEmailAddresses = props.enabledFeatureFlags.includes("FreeBreachEmailAddresses")
231231
? CONST_MAX_NUM_ADDRESSES_PLUS
232-
: CONST_MAX_NUM_ADDRESSES;
232+
: hasPremium(props.user) ? CONST_MAX_NUM_ADDRESSES_PLUS : CONST_MAX_NUM_ADDRESSES;
233233
const hasMaxEmailAddresses =
234234
props.emailAddresses.length < maxNumEmailAddresses - 1;
235235

src/app/(proper_react)/(redesign)/(public)/LandingViewRedesign/components/PricingPlanList.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ export const PricingPlanList = (props: Props & ScanLimitProp) => {
331331
{
332332
elems: { b: <b /> },
333333
vars: {
334-
max_email_addresses: CONST_MAX_NUM_ADDRESSES,
334+
max_email_addresses: props.enabledFeatureFlags.includes("FreeBreachEmailAddresses") ? CONST_MAX_NUM_ADDRESSES_PLUS : CONST_MAX_NUM_ADDRESSES,
335335
},
336336
},
337337
)}

src/app/api/v1/user/email/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ export async function POST(req: NextRequest) {
5050
);
5151
}
5252

53-
const maxNumEmailAddresses = hasPremium(subscriber)
53+
const maxNumEmailAddresses = enabledFeatureFlags.includes("FreeBreachEmailAddresses")
5454
? CONST_MAX_NUM_ADDRESSES_PLUS
55-
: CONST_MAX_NUM_ADDRESSES;
55+
: hasPremium(subscriber) ? CONST_MAX_NUM_ADDRESSES_PLUS : CONST_MAX_NUM_ADDRESSES;
5656
if (emailCount >= maxNumEmailAddresses) {
5757
return NextResponse.json(
5858
{

src/app/components/client/Chart.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ export const DoughnutChart = (props: Props) => {
111111
? "modal-active-number-of-exposures-part-one-premium"
112112
: "modal-active-number-of-exposures-part-one-all",
113113
{
114-
limit: props.isPremiumUser
114+
limit: props.enabledFeatureFlags.includes("FreeBreachEmailAddresses")
115115
? CONST_MAX_NUM_ADDRESSES_PLUS
116-
: CONST_MAX_NUM_ADDRESSES,
116+
: props.isPremiumUser ? CONST_MAX_NUM_ADDRESSES_PLUS : CONST_MAX_NUM_ADDRESSES,
117117
},
118118
)}
119119
</p>

src/db/tables/emailAddresses.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
CONST_MAX_NUM_ADDRESSES_PLUS,
1717
} from "../../constants";
1818
import { hasPremium } from "../../app/functions/universal/user";
19+
import { FeatureFlagName } from "./featureFlags";
1920

2021
const knex = createDbConnection();
2122

@@ -46,11 +47,12 @@ async function getEmailById(emailAddressId: number) {
4647
async function addSubscriberUnverifiedEmailHash(
4748
user: SubscriberRow,
4849
email: string,
50+
enabledFeatureFlags: FeatureFlagName[],
4951
) {
5052
const lowerCaseEmail = email.toLowerCase();
51-
const maxNumEmailAddresses = hasPremium(user)
53+
const maxNumEmailAddresses = enabledFeatureFlags.includes("FreeBreachEmailAddresses")
5254
? CONST_MAX_NUM_ADDRESSES_PLUS
53-
: CONST_MAX_NUM_ADDRESSES;
55+
: hasPremium(user) ? CONST_MAX_NUM_ADDRESSES_PLUS : CONST_MAX_NUM_ADDRESSES;
5456

5557
const res = await knex.transaction(async (trx) => {
5658
await trx.raw("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE");

src/db/tables/featureFlags.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ export const featureFlagNames = [
7575
"DisableOneRepScans",
7676
"DisableLandingToDashboardRedirect",
7777
"MaskDataBrokerCount",
78+
"FreeBreachEmailAddresses",
7879
] as const;
7980

8081
export const adminOnlyFlags: FeatureFlagName[] = [

0 commit comments

Comments
 (0)