Skip to content

Commit

Permalink
Merge branch 'main' into MNTOR-1800-unsub-emails
Browse files Browse the repository at this point in the history
  • Loading branch information
mansaj authored Aug 26, 2024
2 parents 933ae40 + d0f8b45 commit eb9437d
Show file tree
Hide file tree
Showing 32 changed files with 47 additions and 215 deletions.
8 changes: 0 additions & 8 deletions locales-pending/dashboard-premium.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,6 @@ modal-heres-what-we-fixed-description-part-one = <b>Manually fixed</b> includes
to be fixed manually, even if you’ve subscribed to { -brand-monitor-plus }.
modal-heres-what-we-fixed-description-part-two = <b>Auto-removed</b> includes any exposures from data broker profiles that we’ve removed for you. This is available only for
{ -brand-monitor-plus } subscribers.
# Deprecated (once feature flag `SetExpectationsForUsers` is enabled):
modal-heres-what-we-fixed-description-part-three-deprecated = <b>In Progress</b> includes anything that we are currently
working on fixing. Removals typically take 7–14 days but the most
difficult sites could take longer. You may also start to see removals
happening within the same day.
modal-heres-what-we-fixed-description-part-three = <b>In Progress</b> includes anything that we are currently working on fixing.
dashboard-exposures-filter-exposure-type = Exposure type
Expand All @@ -57,9 +52,6 @@ modal-exposure-type-data-breach = <b>Data breach</b> means your information has
Resolving these typically requires accessing your accounts, so you’ll need to take manual steps to resolve each breach even if you’ve subscribed to { -brand-monitor-plus }.
modal-exposure-type-data-broker-part-one = <b>Info for sale</b> means a data broker site is publicly publishing and selling your personal info.
You’ll need to manually request removal from each site.
# Deprecated (once feature flag `SetExpectationsForUsers` is enabled):
modal-exposure-type-data-broker-part-two-deprecated = For { -brand-monitor-plus } subscribers, we auto-remove these profiles on your behalf and make sure they don’t re-add you.
In both cases, removals typically take 7–14 days. Some can take longer, while others can happen within the hour.
modal-exposure-type-data-broker-part-two = But if you’re a { -brand-monitor-plus } subscriber, we auto-remove the profiles for you.
# About Exposure Statuses Modal
Expand Down
13 changes: 0 additions & 13 deletions locales-pending/fix-premium.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -110,21 +110,10 @@ data-broker-profiles-exposure-reduction = Exposure reduction: { $exposure_reduct
# Variables:
# $nr (number) - % of exposures reduced for the user
exposure-reduction-chart-heading = <nr>{ $nr }</nr><percent>%</percent>
# Deprecated (once feature flag `SetExpectationsForUsers` is enabled):
exposure-reduction-chart-explanation-deprecated = <label_line_1>exposures will</label_line_1><label_line_2>be reduced</label_line_2>
exposure-reduction-chart-explanation = <label_line_1>exposures may</label_line_1><label_line_2>be reduced</label_line_2>
welcome-to-premium-data-broker-profiles-title-part-one = Welcome to { -brand-monitor-plus }.
welcome-to-premium-data-broker-profiles-title-part-two = We’ll remove those profiles ASAP.
# Deprecated (once feature flag `SetExpectationsForUsers` is enabled):
# Variables:
# $profile_total_num is the number of exposures came back from user data broker scans.
# $exposure_reduction_percentage is the percent by which exposures are reduced
welcome-to-premium-data-broker-profiles-description-part-one-deprecated =
{ $profile_total_num ->
[one] We’ve already started our auto-removal process of 1 profile — which will reduce your exposures by { $exposure_reduction_percentage }%.
*[other] We’ve already started our auto-removal process of { $profile_total_num } profiles — which will reduce your exposures by { $exposure_reduction_percentage }%.
}
# Variables:
# $profile_total_num is the number of exposures came back from user data broker scans.
# $exposure_reduction_percentage is the percent by which exposures are reduced
Expand All @@ -133,8 +122,6 @@ welcome-to-premium-data-broker-profiles-description-part-one =
[one] We’ve already started our auto-removal process of 1 profile — which may <b>reduce your exposures up to { $exposure_reduction_percentage }%</b>.
*[other] We’ve already started our auto-removal process of { $profile_total_num } profiles — which may <b>reduce your exposures up to { $exposure_reduction_percentage }%</b>.
}
# Deprecated
welcome-to-premium-data-broker-profiles-description-part-two = <how_it_works_link>Removals typically take 7-14 days</how_it_works_link>, but some may happen within the hour. No matter how long it takes, we’ll keep working on it.
# There used to be a "part two", but we removed that
welcome-to-premium-data-broker-profiles-description-part-three = Next we’ll guide you through high risk data breaches that require manual steps.
# Variables:
Expand Down
6 changes: 0 additions & 6 deletions locales-pending/landing-premium.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -130,12 +130,6 @@ landing-premium-quote = There’s a $240 billion industry of <data_brokers>data
landing-premium-what-websites-sell-info-qn = What kinds of websites sell my personal information?
landing-premium-what-websites-sell-info-ans = Certain websites are in the business of collecting and selling people’s personal information without their consent, which is unfortunately legal in the US. These sites are called data brokers and they make up a $240 billion dollar industry. They use sophisticated methods to collect personal, financial, location, and even health information, often without your consent or even your knowledge. They’ll sell what they’ve collected to third parties, profiting from your information and leaving you open to violations of your privacy and security.
landing-premium-continuous-data-removal-qn = How does continuous data removal work?
# Deprecated (once feature flag `SetExpectationsForUsers` is enabled):
# Variables:
# $data_broker_sites_total_num is the total number of data broker sites available to scan. It will always be plural.
landing-premium-continuous-data-removal-ans-deprecated = { $data_broker_sites_total_num ->
*[other] Every month, we use the information you provided about yourself (name, location and birthdate) to search across { $data_broker_sites_total_num } data broker sites that sell people’s private information. If we find your data on any of these sites, we initiate the request for removal. Data removal can take anywhere from a day to a month. This feature is available for { -brand-monitor-plus } users only. <learn_more_link>Learn more here.</learn_more_link>
}
# Variables:
# $data_broker_sites_total_num is the total number of data broker sites available to scan. It will always be plural.
landing-premium-continuous-data-removal-ans = { $data_broker_sites_total_num ->
Expand Down
2 changes: 2 additions & 0 deletions locales/en/app.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,9 @@ mozilla = { -brand-mozilla }
terms-of-service = Terms of Service
privacy-notice = Privacy Notice
github = { -brand-github }
# Deprecated
footer-nav-all-breaches = All Breaches
footer-nav-recent-breaches = Recent Data Breaches
footer-external-link-faq-label = FAQs
footer-external-link-faq-tooltip = Frequently asked questions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,7 @@ const DashboardWrapper = (props: DashboardWrapperProps) => {
elapsedTimeInDaysSinceInitialScan={
props.elapsedTimeInDaysSinceInitialScan
}
enabledFeatureFlags={[
...(props.enabledFeatureFlags ?? []),
"SetExpectationsForUsers",
]}
enabledFeatureFlags={props.enabledFeatureFlags ?? []}
experimentData={
props.experimentData ?? {
...defaultExperimentData,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ export const DashboardTopBannerContent = (props: DashboardTopBannerProps) => {
monthlySubscriptionUrl,
yearlySubscriptionUrl,
subscriptionBillingAmount,
enabledFeatureFlags,
} = props;

const waitlistDialogState = useOverlayTriggerState({});
Expand All @@ -77,7 +76,6 @@ export const DashboardTopBannerContent = (props: DashboardTopBannerProps) => {
}
autoRemoved={bannerData.dataBrokerAutoFixedDataPointsNum}
inProgress={bannerData.dataBrokerInProgressDataPointsNum}
enabledFeatureFlags={enabledFeatureFlags}
/>
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { DoughnutChart as Chart } from "../../../../../../../components/client/C
import { DashboardSummary } from "../../../../../../../functions/server/dashboard";
import { StepDeterminationData } from "../../../../../../../functions/server/getRelevantGuidedSteps";
import { DashboardTopBannerContent } from "./DashboardTopBannerContent";
import { FeatureFlagName } from "../../../../../../../../db/tables/featureFlags";

export type DashboardTopBannerProps = {
bannerData: DashboardSummary;
Expand All @@ -30,7 +29,6 @@ export type DashboardTopBannerProps = {
monthly: number;
};
totalNumberOfPerformedScans?: number;
enabledFeatureFlags: FeatureFlagName[];
};

export const DashboardTopBanner = (props: DashboardTopBannerProps) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,6 @@ export const View = (props: Props) => {
yearlySubscriptionUrl={props.yearlySubscriptionUrl}
subscriptionBillingAmount={props.subscriptionBillingAmount}
totalNumberOfPerformedScans={props.totalNumberOfPerformedScans}
enabledFeatureFlags={props.enabledFeatureFlags}
/>
<section className={styles.exposuresArea}>
{activeTab === "action-needed" ? (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import styles from "./ResolutionContainer.module.scss";
import { ProgressCard } from "../../../../../../../components/client/ProgressCard";
import { StepDeterminationData } from "../../../../../../../functions/server/getRelevantGuidedSteps";
import { getDashboardSummary } from "../../../../../../../functions/server/dashboard";
import { FeatureFlagName } from "../../../../../../../../db/tables/featureFlags";

type ResolutionContainerProps = {
type: "highRisk" | "leakedPasswords" | "securityRecommendations";
Expand All @@ -24,7 +23,6 @@ type ResolutionContainerProps = {
isEligibleForPremium: boolean;
isStepDone: boolean;
data: StepDeterminationData;
enabledFeatureFlags: FeatureFlagName[];
label?: string;
cta?: ReactNode;
};
Expand Down Expand Up @@ -66,7 +64,6 @@ export const ResolutionContainer = (props: ResolutionContainerProps) => {
}
autoRemoved={resolutionSummary.dataBrokerAutoFixedDataPointsNum}
inProgress={resolutionSummary.dataBrokerInProgressDataPointsNum}
enabledFeatureFlags={props.enabledFeatureFlags}
/>
</div>
) : (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ const WelcomeToPlusViewWrapper = (props: { brokerScanCount: number }) => {
}}
l10n={l10n}
subscriberEmails={[]}
enabledFeatureFlags={["SetExpectationsForUsers"]}
/>
</Shell>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,11 @@ import { ExtendedReactLocalization } from "../../../../../../../../../functions/
import noBreachesIllustration from "../../images/high-risk-breaches-none.svg";
import { CONST_ONEREP_DATA_BROKER_COUNT } from "../../../../../../../../../../constants";
import { TelemetryButton } from "../../../../../../../../../components/client/TelemetryButton";
import { TelemetryLink } from "../../../../../../../../../components/client/TelemetryLink";
import { FeatureFlagName } from "../../../../../../../../../../db/tables/featureFlags";

export type Props = {
data: StepDeterminationData;
subscriberEmails: string[];
l10n: ExtendedReactLocalization;
enabledFeatureFlags: FeatureFlagName[];
};

export function WelcomeToPlusView(props: Props) {
Expand Down Expand Up @@ -67,13 +64,8 @@ export function WelcomeToPlusView(props: Props) {
</h3>
<p>
{hasRelevantScanResults
? /* c8 ignore next 14 */
// As the `SetExpectationsForUsers` feature flag is removed, the
// branch will be covered again:
l10n.getFragment(
props.enabledFeatureFlags.includes("SetExpectationsForUsers")
? "welcome-to-premium-data-broker-profiles-description-part-one"
: "welcome-to-premium-data-broker-profiles-description-part-one-deprecated",
? l10n.getFragment(
"welcome-to-premium-data-broker-profiles-description-part-one",
{
vars: {
profile_total_num: scanResultsInProgressCount,
Expand All @@ -89,35 +81,13 @@ export function WelcomeToPlusView(props: Props) {
},
)}
</p>
<p>
{hasRelevantScanResults
? /* c8 ignore next 23 */
// As the `SetExpectationsForUsers` feature flag is removed, the
// branch will be covered again:
!props.enabledFeatureFlags.includes(
"SetExpectationsForUsers",
) &&
l10n.getFragment(
"welcome-to-premium-data-broker-profiles-description-part-two",
{
elems: {
how_it_works_link: (
<TelemetryLink
href="/how-it-works"
className={styles.howItWorksLink}
target="_blank"
eventData={{
link_id: "explanation_of_removal_time",
}}
/>
),
},
},
)
: l10n.getString(
"welcome-to-premium-data-broker-profiles-zero-state-description-part-two",
)}
</p>
{!hasRelevantScanResults && (
<p>
{l10n.getString(
"welcome-to-premium-data-broker-profiles-zero-state-description-part-two",
)}
</p>
)}
<p>
{hasRelevantScanResults
? l10n.getString(
Expand Down Expand Up @@ -148,10 +118,7 @@ export function WelcomeToPlusView(props: Props) {
</div>
{hasRelevantScanResults ? (
<div className={styles.chart}>
<PercentageChart
exposureReduction={dataPointReduction}
enabledFeatureFlags={props.enabledFeatureFlags}
/>
<PercentageChart exposureReduction={dataPointReduction} />
</div>
) : (
<div
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import { logger } from "../../../../../../../../../functions/server/logging";
import { getL10n } from "../../../../../../../../../functions/l10n/serverComponents";
import { refreshStoredScanResults } from "../../../../../../../../../functions/server/refreshStoredScanResults";
import { checkSession } from "../../../../../../../../../functions/server/checkSession";
import { getEnabledFeatureFlags } from "../../../../../../../../../../db/tables/featureFlags";

export default async function WelcomeToPlusPage() {
const session = await getServerSession();
Expand Down Expand Up @@ -55,11 +54,6 @@ export default async function WelcomeToPlusPage() {
user: session.user,
};

const enabledFeatureFlags = await getEnabledFeatureFlags({
isSignedOut: false,
email: session.user.email,
});

// If the current user is a subscriber and their OneRep profile is not
// activated: Most likely we were not able or failed to kick-off the
// auto-removal process.
Expand All @@ -78,7 +72,6 @@ export default async function WelcomeToPlusPage() {
data={data}
subscriberEmails={subscriberEmails}
l10n={getL10n()}
enabledFeatureFlags={enabledFeatureFlags}
/>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,12 @@ import {
} from "../../../../../../../../functions/universal/breach";
import { TelemetryButton } from "../../../../../../../../components/client/TelemetryButton";
import { TelemetryLink } from "../../../../../../../../components/client/TelemetryLink";
import { FeatureFlagName } from "../../../../../../../../../db/tables/featureFlags";

export type HighRiskBreachLayoutProps = {
type: HighRiskBreachTypes;
subscriberEmails: string[];
data: StepDeterminationData;
isEligibleForPremium: boolean;
enabledFeatureFlags: FeatureFlagName[];
};

export function HighRiskBreachLayout(props: HighRiskBreachLayoutProps) {
Expand Down Expand Up @@ -166,7 +164,6 @@ export function HighRiskBreachLayout(props: HighRiskBreachLayoutProps) {
illustration={illustration}
isPremiumUser={hasPremium(props.data.user)}
isEligibleForPremium={props.isEligibleForPremium}
enabledFeatureFlags={props.enabledFeatureFlags}
cta={
!isStepDone && (
<>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ const HighRiskBreachWrapper = (props: {
type={props.type}
data={data}
isEligibleForPremium={true}
enabledFeatureFlags={["SetExpectationsForUsers"]}
/>
</Shell>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import { getCountryCode } from "../../../../../../../../../functions/server/getC
import { getLatestOnerepScanResults } from "../../../../../../../../../../db/tables/onerep_scans";
import { getOnerepProfileId } from "../../../../../../../../../../db/tables/subscribers";
import { isEligibleForPremium } from "../../../../../../../../../functions/server/onerep";
import { getEnabledFeatureFlags } from "../../../../../../../../../../db/tables/featureFlags";

interface SecurityRecommendationsProps {
params: {
Expand Down Expand Up @@ -57,10 +56,6 @@ export default async function SecurityRecommendations({
latestScanData: scanData,
}}
isEligibleForPremium={isEligibleForPremium(countryCode)}
enabledFeatureFlags={await getEnabledFeatureFlags({
isSignedOut: false,
email: session.user.email,
})}
/>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import { getOnerepProfileId } from "../../../../../../../../../db/tables/subscri
import { getLatestOnerepScanResults } from "../../../../../../../../../db/tables/onerep_scans";
import { getCountryCode } from "../../../../../../../../functions/server/getCountryCode";
import { isEligibleForPremium } from "../../../../../../../../functions/server/onerep";
import { getEnabledFeatureFlags } from "../../../../../../../../../db/tables/featureFlags";

export default async function HighRiskDataBreaches() {
const session = await getServerSession();
Expand Down Expand Up @@ -42,10 +41,6 @@ export default async function HighRiskDataBreaches() {
latestScanData: scanData,
}}
isEligibleForPremium={isEligibleForPremium(countryCode)}
enabledFeatureFlags={await getEnabledFeatureFlags({
isSignedOut: false,
email: session.user.email,
})}
/>
</div>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,12 @@ import { useEffect, useState } from "react";
import { useRouter } from "next/navigation";
import { LeakedPasswordsDataTypes } from "../../../../../../../../functions/universal/breach";
import { useTelemetry } from "../../../../../../../../hooks/useTelemetry";
import { FeatureFlagName } from "../../../../../../../../../db/tables/featureFlags";

export interface LeakedPasswordsLayoutProps {
type: LeakedPasswordsTypes;
subscriberEmails: string[];
data: StepDeterminationData;
isEligibleForPremium: boolean;
enabledFeatureFlags: FeatureFlagName[];
}

export function LeakedPasswordsLayout(props: LeakedPasswordsLayoutProps) {
Expand Down Expand Up @@ -193,7 +191,6 @@ export function LeakedPasswordsLayout(props: LeakedPasswordsLayoutProps) {
title={title}
illustration={illustration}
isPremiumUser={hasPremium(props.data.user)}
enabledFeatureFlags={props.enabledFeatureFlags}
cta={
!isStepDone && (
<>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ const LeakedPasswordsWrapper = (props: {
user: mockedSession.user,
}}
isEligibleForPremium={true}
enabledFeatureFlags={["SetExpectationsForUsers"]}
/>
</Shell>
);
Expand Down
Loading

0 comments on commit eb9437d

Please sign in to comment.