1 import { c } from 'ttag';
3 import { ButtonLike } from '@proton/atoms';
4 import { BRAND_NAME, VPN_APP_NAME } from '@proton/shared/lib/constants';
5 import { getKnowledgeBaseUrl, getStaticURL } from '@proton/shared/lib/helpers/url';
6 import alias from '@proton/styles/assets/img/breach-alert/img-alias.svg';
7 import darkweb from '@proton/styles/assets/img/breach-alert/img-dark-web.svg';
8 import netShield from '@proton/styles/assets/img/breach-alert/img-net-shield.svg';
9 import allGood from '@proton/styles/assets/img/breach-alert/img-no-breaches-found.svg';
10 import pwdManager from '@proton/styles/assets/img/breach-alert/img-password-manager.svg';
12 interface RecommendedTech {
21 const protonTech = (): RecommendedTech[] => [
25 title: c('Title').t`What is the dark web?`,
27 .t`The dark web is a hidden part of the internet where stolen personal information, like identities, can be bought and sold.`,
28 link: c('Link').t`Learn more`,
29 href: getStaticURL('/blog/what-is-dark-web'),
34 title: c('Title').t`What is an alias?`,
35 link: c('Link').t`Create an alias`,
37 .t`An email alias works like an email address, but reduces spam and keeps your actual email address and identity hidden.`,
38 href: getKnowledgeBaseUrl('/addresses-and-aliases'),
43 title: c('Title').t`Block trackers and malware`,
44 link: c('Link').t`Get ${VPN_APP_NAME}`,
46 .t`NetShield is an ad-blocking feature from ${VPN_APP_NAME} that protects your device from ads, trackers, and malware.`,
47 href: getStaticURL('/vpn'),
52 title: c('Title').t`Passwords made easy`,
53 link: c('Link').t`Get ${BRAND_NAME} Pass`,
55 .t`Use a password manager to generate and securely store your passwords, ensuring strong passwords and easier sign-ins.`,
56 href: getStaticURL('/pass'),
60 const NoBreachesView = () => {
63 <div className="flex flex-column flex-nowrap mb-8">
64 <img src={allGood} alt="" className="m-auto" />
65 <h3 className="color-success text-center m-auto text-rg text-semibold">{c('Title')
66 .t`No account information was found in any data breaches`}</h3>
69 <h4 className="text-xl text-bold">{c('Info').t`Want to learn more?`}</h4>
70 <p className="mt-4">{c('Info')
71 .t`Keep your info more secure and private with these guides and tips.`}</p>
72 <div className="flex flex-column items-stretch md:flex-row lg:flex-nowrap gap-4">
73 {protonTech().map((tech) => {
76 className="flex flex-column flex-nowrap flex-auto md:w-1/3 lg:w-auto p-4 border border-weak rounded"
79 <img src={tech.img} className="m-auto block" alt="" />
81 className="mt-4 text-rg text-semibold md:min-h-custom"
82 style={{ '--md-min-h-custom': '2em' }}
86 <p className="text-sm color-weak mt-4 mb-2 flex-auto">{tech.desc}</p>
88 className="mt-auto mr-auto text-left"
106 export default NoBreachesView;