• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mozilla / fx-private-relay / 85cda637-2ac9-4d08-9727-ee8e8a702875

06 Sep 2024 09:48PM CUT coverage: 85.506%. First build
85cda637-2ac9-4d08-9727-ee8e8a702875

push

circleci

jwhitlock
Handle Twilio errors when relaying messages

When a Relay user replies 'STOP', they are unsubscribed from Twilio and
we can't send them any more messages.

When a contact replies 'STOP', the Relay user can't reply to them
anymore.

There are other errors, but those haven't happened to us yet. Log as
errors.

4111 of 5264 branches covered (78.1%)

Branch coverage included in aggregate %.

133 of 134 new or added lines in 2 files covered. (99.25%)

16130 of 18408 relevant lines covered (87.62%)

10.34 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/frontend/src/components/landing/DemoPhone.tsx
1
import { StaticImageData } from "next/image";
2
import styles from "./DemoPhone.module.scss";
×
3
import BgImage from "./images/hero-image-bg.svg";
×
4
import PremiumScreenshot from "./images/hero-image-premium.svg";
×
5
import PremiumScreenshotFr from "./images/hero-image-premium-fr.svg";
×
6
import PremiumScreenshotDe from "./images/hero-image-premium-de.svg";
×
7
import NoPremiumScreenshot from "./images/hero-image-nopremium.svg";
×
8
import FgImage from "./images/hero-image-fg.svg";
×
9
import FgImageDe from "./images/hero-image-fg-de.svg";
×
10
import FgImageFr from "./images/hero-image-fg-fr.svg";
×
11
import Image from "../Image";
×
12
import { getLocale } from "../../functions/getLocale";
×
13
import { useL10n } from "../../hooks/l10n";
×
14

15
export type Props = {
16
  premium?: boolean;
17
};
18

19
/**
20
 * Image of a phone showing the Relay interface, either the Premium or regular UI as desired.
21
 */
22

23
export const DemoPhone = (props: Props) => {
×
24
  const l10n = useL10n();
×
25
  const lang = getLocale(l10n).split("-")[0] ?? "en";
×
26

27
  const getScreenshotImage = (
×
28
    isPremium: boolean,
29
    lang: string,
30
  ): StaticImageData => {
31
    if (lang === "fr") {
×
32
      return PremiumScreenshotFr;
×
33
    }
34
    if (lang === "de") {
×
35
      return PremiumScreenshotDe;
×
36
    }
37
    // If Premium is not availabe in the country,
38
    // show no premium demo phone state
39
    if (!isPremium) {
×
40
      return NoPremiumScreenshot;
×
41
    }
42
    return PremiumScreenshot;
×
43
  };
44

45
  const getForegroundImage = (lang: string): StaticImageData => {
×
46
    if (lang === "fr") {
×
47
      return FgImageFr;
×
48
    }
49
    if (lang === "de") {
×
50
      return FgImageDe;
×
51
    }
52
    return FgImage;
×
53
  };
54

55
  return (
56
    <div className={styles.container}>
57
      <Image src={BgImage} alt="" className={styles.background} />
58

59
      <Image
60
        src={getScreenshotImage(props.premium ?? false, lang)}
×
61
        className={styles.phone}
62
        alt=""
63
      />
64
      <Image
65
        src={getForegroundImage(lang)}
66
        alt=""
67
        className={styles.foreground}
68
      />
69
    </div>
70
  );
71
};
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc