diff --git a/src/assets/lang/de/banners.json b/src/assets/lang/de/banners.json index 8cdaa17b5..3b5f4cd3f 100644 --- a/src/assets/lang/de/banners.json +++ b/src/assets/lang/de/banners.json @@ -45,25 +45,36 @@ } }, "featuresBanner": { - "label": "Spare 80%", - "title": "Boo! Sparen Sie mit uns...", - "subtitle": "Gewinne unseren Premium-Rucksack mit unseren lebenslangen Plänen.", - "cta": "Plan wählen", - "guarantee": "30-Tage-Geld-zurück-Garantie", - "lastCta": "*Angebot gilt für kostenlose Konten oder neue Kunden", - "features": [ - "Spare bei allen lebenslangen Plänen", - "Privater, verschlüsselter Cloud-Speicher", - "Quelloffen und geprüft", - "End-to-End-verschlüsselte Übertragungen", - "Kein unbefugter Zugriff", - "Angebot endet am 3. Dezember" - ] + "label": { + "blueText": "Get 85% off", + "text": "in all Plans" + }, + "title": "Claim your exclusive discount!", + "subTitle": { + "blueText": "Special offer:", + "text": "store files in privacy for even less" + }, + "ctaGet": "Accept invite", + "ctaContinue": "Continue free", + "guarantee": "30-day money-back guarantee", + "products": { + "drive": "Drive", + "antivirus": "Antivirus", + "cleaner": "Cleaner", + "vpn": "VPN", + "meet": "Meet", + "mail": "Mail", + "ai": "AI" + } }, "s3StorageBanner": { "label": "Jetzt verfügbar!", "title": "S3-kompatibler Objektspeicher", - "feat": ["Bis zu 80% günstiger als AWS", "Sicher, skalierbar, S3-kompatibel", "Native Rclone-Unterstützung"], + "feat": [ + "Bis zu 80% günstiger als AWS", + "Sicher, skalierbar, S3-kompatibel", + "Native Rclone-Unterstützung" + ], "cta": "Holen Sie sich 1TB kostenlos", "offerEnds": "*Angebot nur für den ersten Monat" }, diff --git a/src/assets/lang/en/banners.json b/src/assets/lang/en/banners.json index 2870d215f..0c4206015 100644 --- a/src/assets/lang/en/banners.json +++ b/src/assets/lang/en/banners.json @@ -48,26 +48,36 @@ } }, "featuresBanner": { - "label": "Save 80% ", - "title": "Make your privacy play!", - "subtitle": "Special offer! Win two Internxt x Swiss Peak backpacks", - "cta": "Choose plan", + "label": { + "blueText": "Get 85% off", + "text": "in all Plans" + }, + "title": "Claim your exclusive discount!", + "subTitle": { + "blueText": "Special offer:", + "text": "store files in privacy for even less" + }, + "ctaGet": "Accept invite", + "ctaContinue": "Continue free", "guarantee": "30-day money-back guarantee", - "lastCta": "*Offer is for free accounts or new customers", - "features": [ - "A lifetime of privacy, one-time payment", - "End-to-end encrypted cloud storage", - "Open-source and audited", - "End-to-end encrypted transfers", - "No unauthorized access", - "Win two Internxt x Swiss Peak backpacks", - "Offer ends February 25" - ] + "products": { + "drive": "Drive", + "antivirus": "Antivirus", + "cleaner": "Cleaner", + "vpn": "VPN", + "meet": "Meet", + "mail": "Mail", + "ai": "AI" + } }, "s3StorageBanner": { "label": "Available now!", "title": "S3 compatible object storage", - "feat": ["Up to 80% cheaper than AWS", "Secure, scalable, S3-compatible", "Native Rclone support"], + "feat": [ + "Up to 80% cheaper than AWS", + "Secure, scalable, S3-compatible", + "Native Rclone support" + ], "cta": "Get 1TB for free", "offerEnds": "*Offer only for the first month" }, @@ -109,7 +119,10 @@ "line1": "Secure while you surf.", "blueText": "Enjoy a more private online experience with Internxt" }, - "SignUpVirusScannerBanner": { "line1": "Keep those now clean files safe,", "blueText": "join Internxt for free" }, + "SignUpVirusScannerBanner": { + "line1": "Keep those now clean files safe,", + "blueText": "join Internxt for free" + }, "SignUpMetadataRemoverBanner": { "line1": "Strip your files of revealing metadata.", "blueText": "Clean your digital footprint with Internxt" @@ -118,8 +131,14 @@ "line1": "Detect AI content, ensure authenticity, and", "blueText": "publish in confidence with Internxt" }, - "SignUpByteConverterBanner": { "line1": "Get bytes and bytes of secure cloud storage", "blueText": "with Internxt" }, - "SignUpTempMailBanner": { "line1": "Keep your email clean and your files safe", "blueText": "with Internxt" }, + "SignUpByteConverterBanner": { + "line1": "Get bytes and bytes of secure cloud storage", + "blueText": "with Internxt" + }, + "SignUpTempMailBanner": { + "line1": "Keep your email clean and your files safe", + "blueText": "with Internxt" + }, "SignUpSuccessStoriesBanner": { "line1": "Join the fight for privacy and build a better internet", "blueText": "with Internxt" diff --git a/src/assets/lang/es/banners.json b/src/assets/lang/es/banners.json index cb329ca44..d5f62b914 100644 --- a/src/assets/lang/es/banners.json +++ b/src/assets/lang/es/banners.json @@ -10,31 +10,45 @@ }, "FreeCardPromoBanner": { "title": "Obtén un descuento exclusivo!", - "subtitle": { "blue": "Oferta especial:", "normal": " almacena archivos de manera privada por menos" }, + "subtitle": { + "blue": "Oferta especial:", + "normal": " almacena archivos de manera privada por menos" + }, "getDealCta": "Obtener oferta", "freePlanCta": "Continuar con el plan gratuito", "guarantee": "Garantía de devolución de 30 días" }, "featuresBanner": { - "label": "¡Ahorra un 80%!", - "title": "Oferta para la semana de Privacidad de Datos.", - "subtitle": "80% en TODOS los planes lifetime", - "cta": "Consigue el tuyo", - "guarantee": "Garantía de devolución de 30 días", - "lastCta": "*La oferta es para cuentas gratuitas o nuevos clientes", - "features": [ - "Seguridad de por vida", - "Almacenamiento 100% privado y cifrado ", - "Código abierto y auditado", - "Cifrado de extremo a extremo", - "Cumple con RGPD", - "Oferta finaliza el 31 de enero" - ] + "label": { + "blueText": "Get 85% off", + "text": "in all Plans" + }, + "title": "Claim your exclusive discount!", + "subTitle": { + "blueText": "Special offer:", + "text": "store files in privacy for even less" + }, + "ctaGet": "Accept invite", + "ctaContinue": "Continue free", + "guarantee": "30-day money-back guarantee", + "products": { + "drive": "Drive", + "antivirus": "Antivirus", + "cleaner": "Cleaner", + "vpn": "VPN", + "meet": "Meet", + "mail": "Mail", + "ai": "AI" + } }, "s3StorageBanner": { "label": "¡Disponible ahora!", "title": "Almacenamiento de objetos compatible con S3", - "feat": ["Hasta un 80% más barato que AWS", "Seguro, escalable, compatible con S3", "Soporte nativo de Rclone"], + "feat": [ + "Hasta un 80% más barato que AWS", + "Seguro, escalable, compatible con S3", + "Soporte nativo de Rclone" + ], "cta": "Obtén 1TB gratis", "offerEnds": "*Oferta solo para el primer mes" }, @@ -43,7 +57,6 @@ "description": "Almacenamiento seguro de archivos con antivirus integrado.", "cta": "Regístrate gratis" }, - "tryOutInternxtGeneralBanner": { "title": "Pásate a Internxt", "description": "Almacenamiento seguro en la nube basado en la privacidad.", @@ -81,7 +94,10 @@ "line1": "Usa miles de bytes en la nube de almacenamiento segura", "blueText": "de Internxt" }, - "SignUpTempMailBanner": { "line1": "Mantén tu correo limpio y tus archivos a salvo", "blueText": "con Internxt" }, + "SignUpTempMailBanner": { + "line1": "Mantén tu correo limpio y tus archivos a salvo", + "blueText": "con Internxt" + }, "SignUpCyberAwareness": { "line1": "Mantén tu correo limpio y tus archivos a salvo", "blueText": "con Internxt" diff --git a/src/assets/lang/fr/banners.json b/src/assets/lang/fr/banners.json index 05501bf75..15299e368 100644 --- a/src/assets/lang/fr/banners.json +++ b/src/assets/lang/fr/banners.json @@ -19,25 +19,36 @@ "guarantee": "Garantie de remboursement de 30 jours" }, "featuresBanner": { - "label": "Économisez 80% !", - "title": "Les meilleures offres du Black Friday", - "subtitle": "Recevez notre sac à dos premium avec nos plans à vie.", - "cta": "Choisissez votre plan", - "guarantee": "Garantie de remboursement de 30 jours", - "lastCta": "*L'offre est valable pour les comptes gratuits ou les nouveaux clients", - "features": [ - "Économisez gros sur tous les plans premium", - "Stockage cloud privé et crypté", - "Open source et audité", - "Transferts cryptés de bout en bout", - "Aucun accès non autorisé", - "L'offre se termine le 3 décembre" - ] + "label": { + "blueText": "Get 85% off", + "text": "in all Plans" + }, + "title": "Claim your exclusive discount!", + "subTitle": { + "blueText": "Special offer:", + "text": "store files in privacy for even less" + }, + "ctaGet": "Accept invite", + "ctaContinue": "Continue free", + "guarantee": "30-day money-back guarantee", + "products": { + "drive": "Drive", + "antivirus": "Antivirus", + "cleaner": "Cleaner", + "vpn": "VPN", + "meet": "Meet", + "mail": "Mail", + "ai": "AI" + } }, "s3StorageBanner": { "label": "Disponible maintenant !", "title": "Stockage d'objets compatible S3", - "feat": ["Jusqu'à 80% moins cher que AWS", "Sécurisé, évolutif, compatible S3", "Support natif de Rclone"], + "feat": [ + "Jusqu'à 80% moins cher que AWS", + "Sécurisé, évolutif, compatible S3", + "Support natif de Rclone" + ], "cta": "Obtenez 1TB gratuitement", "offerEnds": "*Offre valable uniquement pour le premier mois" }, diff --git a/src/assets/lang/it/banners.json b/src/assets/lang/it/banners.json index 22560a2cd..258676217 100644 --- a/src/assets/lang/it/banners.json +++ b/src/assets/lang/it/banners.json @@ -10,7 +10,10 @@ }, "FreeCardPromoBanner": { "title": "Ottieni uno sconto esclusivo!", - "subtitle": { "blue": "Offerta speciale:", "normal": " archivia i file in modo privato a meno" }, + "subtitle": { + "blue": "Offerta speciale:", + "normal": " archivia i file in modo privato a meno" + }, "getDealCta": "Ottieni l'offerta", "freePlanCta": "Continua con il piano gratuito", "guarantee": "Garanzia di rimborso di 30 giorni" @@ -42,25 +45,36 @@ } }, "featuresBanner": { - "label": "Risparmia l'80%!", - "title": "Le migliori offerte del Black Friday", - "subtitle": "Ottieni il nostro zaino premium con i nostri piani a vita.", - "cta": "Scegli il tuo piano", - "guarantee": "Garanzia di rimborso di 30 giorni", - "lastCta": "*L'offerta è valida per account gratuiti o nuovi clienti", - "features": [ - "Risparmia su tutti i piani premium", - "Archivio cloud privato e crittografato", - "Open source e verificato", - "Trasferimenti crittografati end-to-end", - "Nessun accesso non autorizzato", - "L'offerta termina il 3 dicembre" - ] + "label": { + "blueText": "Get 85% off", + "text": "in all Plans" + }, + "title": "Claim your exclusive discount!", + "subTitle": { + "blueText": "Special offer:", + "text": "store files in privacy for even less" + }, + "ctaGet": "Accept invite", + "ctaContinue": "Continue free", + "guarantee": "30-day money-back guarantee", + "products": { + "drive": "Drive", + "antivirus": "Antivirus", + "cleaner": "Cleaner", + "vpn": "VPN", + "meet": "Meet", + "mail": "Mail", + "ai": "AI" + } }, "s3StorageBanner": { "label": "Disponibile ora!", "title": "Archiviazione di oggetti compatibile S3", - "feat": ["Fino all'80% più economico di AWS", "Sicuro, scalabile, compatibile S3", "Supporto nativo Rclone"], + "feat": [ + "Fino all'80% più economico di AWS", + "Sicuro, scalabile, compatibile S3", + "Supporto nativo Rclone" + ], "cta": "Ottieni 1TB gratis", "offerEnds": "*Offerta valida solo per il primo mese" }, @@ -98,7 +112,10 @@ "line1": "Rileva contenuti AI, garantisci l'autenticità e", "blueText": "pubblica con sicurezza con Internxt" }, - "SignUpByteConverterBanner": { "line1": "Ottieni byte e byte di cloud storage sicuro", "blueText": "con Internxt" }, + "SignUpByteConverterBanner": { + "line1": "Ottieni byte e byte di cloud storage sicuro", + "blueText": "con Internxt" + }, "SignUpTempMailBanner": { "line1": "Mantieni le tue e-mail pulite e i tuoi file al sicuro", "blueText": "con Internxt" @@ -148,7 +165,6 @@ "cta": "Scegli il tuo piano", "guarantee": "Garanzia di rimborso entro 30 giorni" }, - "BeforeCloseBanner": { "title": { "normal1": "Aspetta! Offerta speciale ", diff --git a/src/assets/lang/ru/banners.json b/src/assets/lang/ru/banners.json index 186b9aefd..7db766a3a 100644 --- a/src/assets/lang/ru/banners.json +++ b/src/assets/lang/ru/banners.json @@ -45,25 +45,36 @@ } }, "featuresBanner": { - "label": "Сэкономьте 80%!", - "title": "Лучшие предложения на Черную Пятницу", - "subtitle": "Получите наш премиум-рюкзак с нашими пожизненными планами.", - "cta": "Выберите свой план", - "guarantee": "30-дневная гарантия возврата денег", - "lastCta": "*Предложение действительно для бесплатных аккаунтов или новых клиентов", - "features": [ - "Сэкономьте на всех премиум-планах", - "Личное и зашифрованное облачное хранилище", - "Открытый исходный код и проверка", - "Зашифрованные передачи от конца до конца", - "Без несанкционированного доступа", - "Предложение заканчивается 3 декабря" - ] + "label": { + "blueText": "Get 85% off", + "text": "in all Plans" + }, + "title": "Claim your exclusive discount!", + "subTitle": { + "blueText": "Special offer:", + "text": "store files in privacy for even less" + }, + "ctaGet": "Accept invite", + "ctaContinue": "Continue free", + "guarantee": "30-day money-back guarantee", + "products": { + "drive": "Drive", + "antivirus": "Antivirus", + "cleaner": "Cleaner", + "vpn": "VPN", + "meet": "Meet", + "mail": "Mail", + "ai": "AI" + } }, "s3StorageBanner": { "label": "Доступно сейчас!", "title": "Объектное хранение, совместимое с S3", - "feat": ["На 80% дешевле, чем AWS", "Безопасное, масштабируемое, совместимое с S3", "Родная поддержка Rclone"], + "feat": [ + "На 80% дешевле, чем AWS", + "Безопасное, масштабируемое, совместимое с S3", + "Родная поддержка Rclone" + ], "cta": "Получите 1TB бесплатно", "offerEnds": "*Предложение действует только первый месяц" }, diff --git a/src/assets/lang/zh-tw/banners.json b/src/assets/lang/zh-tw/banners.json index 1f9e7a68f..6e5f4cba3 100644 --- a/src/assets/lang/zh-tw/banners.json +++ b/src/assets/lang/zh-tw/banners.json @@ -10,7 +10,10 @@ }, "FreeCardPromoBanner": { "title": "获取独家折扣!", - "subtitle": { "blue": "特别优惠:", "normal": "更便宜地私人存储文件" }, + "subtitle": { + "blue": "特别优惠:", + "normal": "更便宜地私人存储文件" + }, "getDealCta": "获取优惠", "freePlanCta": "继续使用免费计划", "guarantee": "30天退款保证" @@ -45,25 +48,36 @@ } }, "featuresBanner": { - "label": "节省80%!", - "title": "最佳黑色星期五优惠", - "subtitle": "赢取我们终身计划的高级背包。", - "cta": "选择计划", - "guarantee": "30天退款保证", - "lastCta": "*优惠仅适用于免费账户或新客户", - "features": [ - "所有高级计划均可节省大量费用", - "私人加密云存储", - "开源并经过审核", - "端到端加密传输", - "无未经授权的访问", - "优惠截止至12月3日" - ] + "label": { + "blueText": "Get 85% off", + "text": "in all Plans" + }, + "title": "Claim your exclusive discount!", + "subTitle": { + "blueText": "Special offer:", + "text": "store files in privacy for even less" + }, + "ctaGet": "Accept invite", + "ctaContinue": "Continue free", + "guarantee": "30-day money-back guarantee", + "products": { + "drive": "Drive", + "antivirus": "Antivirus", + "cleaner": "Cleaner", + "vpn": "VPN", + "meet": "Meet", + "mail": "Mail", + "ai": "AI" + } }, "s3StorageBanner": { "label": "现已上线!", "title": "兼容S3的对象存储", - "feat": ["比AWS便宜多达80%", "安全、可扩展、兼容S3", "原生Rclone支持"], + "feat": [ + "比AWS便宜多达80%", + "安全、可扩展、兼容S3", + "原生Rclone支持" + ], "cta": "免费获取1TB", "offerEnds": "*仅限首月优惠" }, @@ -93,7 +107,10 @@ "line1": "上网时保持安全。", "blueText": "使用 Internxt 享受更私密的在线体验" }, - "SignUpVirusScannerBanner": { "line1": "Keep those now clean files safe,", "blueText": "join Internxt for free" }, + "SignUpVirusScannerBanner": { + "line1": "Keep those now clean files safe,", + "blueText": "join Internxt for free" + }, "SignUpMetadataRemoverBanner": { "line1": "去除文件中暴露隐私的元数据。", "blueText": "用 Internxt 清理您的数字足迹" @@ -102,8 +119,14 @@ "line1": "检测AI内容,确保真实性,", "blueText": "安心发布,尽在Internxt" }, - "SignUpByteConverterBanner": { "line1": "Get bytes and bytes of secure cloud storage", "blueText": "with Internxt" }, - "SignUpTempMailBanner": { "line1": "Keep your email clean and your files safe", "blueText": "with Internxt" }, + "SignUpByteConverterBanner": { + "line1": "Get bytes and bytes of secure cloud storage", + "blueText": "with Internxt" + }, + "SignUpTempMailBanner": { + "line1": "Keep your email clean and your files safe", + "blueText": "with Internxt" + }, "SignUpCyberAwareness": { "line1": "Now that you’re aware, protect yourself with", "blueText": "Internxt secure cloud storage" diff --git a/src/assets/lang/zh/banners.json b/src/assets/lang/zh/banners.json index 9ffd45a90..8dc45f9aa 100644 --- a/src/assets/lang/zh/banners.json +++ b/src/assets/lang/zh/banners.json @@ -10,7 +10,10 @@ }, "FreeCardPromoBanner": { "title": "获取独家折扣!", - "subtitle": { "blue": "特别优惠:", "normal": "更便宜地私人存储文件" }, + "subtitle": { + "blue": "特别优惠:", + "normal": "更便宜地私人存储文件" + }, "getDealCta": "获取优惠", "freePlanCta": "继续使用免费计划", "guarantee": "30天退款保证" @@ -45,25 +48,36 @@ } }, "featuresBanner": { - "label": "节省80%!", - "title": "最佳黑色星期五优惠", - "subtitle": "赢取我们终身计划的高级背包。", - "cta": "选择计划", - "guarantee": "30天退款保证", - "lastCta": "*优惠仅适用于免费账户或新客户", - "features": [ - "所有高级计划均可节省大量费用", - "私人加密云存储", - "开源并经过审核", - "端到端加密传输", - "无未经授权的访问", - "优惠截止至12月3日" - ] + "label": { + "blueText": "Get 85% off", + "text": "in all Plans" + }, + "title": "Claim your exclusive discount!", + "subTitle": { + "blueText": "Special offer:", + "text": "store files in privacy for even less" + }, + "ctaGet": "Accept invite", + "ctaContinue": "Continue free", + "guarantee": "30-day money-back guarantee", + "products": { + "drive": "Drive", + "antivirus": "Antivirus", + "cleaner": "Cleaner", + "vpn": "VPN", + "meet": "Meet", + "mail": "Mail", + "ai": "AI" + } }, "s3StorageBanner": { "label": "现已上线!", "title": "兼容S3的对象存储", - "feat": ["比AWS便宜多达80%", "安全、可扩展、兼容S3", "原生Rclone支持"], + "feat": [ + "比AWS便宜多达80%", + "安全、可扩展、兼容S3", + "原生Rclone支持" + ], "cta": "免费获取1TB", "offerEnds": "*仅限首月优惠" }, @@ -93,7 +107,10 @@ "line1": "上网时保持安全。", "blueText": "使用 Internxt 享受更私密的在线体验" }, - "SignUpVirusScannerBanner": { "line1": "Keep those now clean files safe,", "blueText": "join Internxt for free" }, + "SignUpVirusScannerBanner": { + "line1": "Keep those now clean files safe,", + "blueText": "join Internxt for free" + }, "SignUpMetadataRemoverBanner": { "line1": "去除文件中暴露隐私的元数据。", "blueText": "用 Internxt 清理您的数字足迹" @@ -102,8 +119,14 @@ "line1": "检测AI内容,确保真实性,", "blueText": "安心发布,尽在Internxt" }, - "SignUpByteConverterBanner": { "line1": "Get bytes and bytes of secure cloud storage", "blueText": "with Internxt" }, - "SignUpTempMailBanner": { "line1": "Keep your email clean and your files safe", "blueText": "with Internxt" }, + "SignUpByteConverterBanner": { + "line1": "Get bytes and bytes of secure cloud storage", + "blueText": "with Internxt" + }, + "SignUpTempMailBanner": { + "line1": "Keep your email clean and your files safe", + "blueText": "with Internxt" + }, "SignUpCyberAwareness": { "line1": "Now that you’re aware, protect yourself with", "blueText": "Internxt secure cloud storage" diff --git a/src/assets/types/components/banners.ts b/src/assets/types/components/banners.ts index 619a3c7df..5983ce938 100644 --- a/src/assets/types/components/banners.ts +++ b/src/assets/types/components/banners.ts @@ -133,13 +133,21 @@ export interface ChangeEmailBanner { } export interface FeaturesBanner { - label: string; + label: { blueText: string; text: string }; title: string; - subtitle: string; - cta: string; + subTitle: { blueText: string; text: string }; + ctaGet: string; + ctaContinue: string; guarantee: string; - lastCta: string; - features: string[]; + products: { + drive: string; + antivirus: string; + cleaner: string; + vpn: string; + meet: string; + mail: string; + ai: string; + }; } export interface LifetimeBanner { diff --git a/src/components/banners/FeaturesBanner.tsx b/src/components/banners/FeaturesBanner.tsx index 1ca752380..fdbcbf920 100644 --- a/src/components/banners/FeaturesBanner.tsx +++ b/src/components/banners/FeaturesBanner.tsx @@ -1,19 +1,16 @@ import { useEffect, useState } from 'react'; import { useRouter } from 'next/router'; -import { CheckCircle, Flower, X } from '@phosphor-icons/react'; +import { X, CloudArrowUp, ShieldPlus, Sparkle, CellTower, VideoConference, Envelope, ShieldCheck, Brain } from '@phosphor-icons/react'; +import Image from 'next/image'; import { getImage } from '@/lib/getImage'; -const HIDE_BANNER_DATE = new Date('2024-01-03'); -const TODAY_DATE = new Date(); - -const shouldHideBannerAutomatically = TODAY_DATE > HIDE_BANNER_DATE; - -const FeaturesBanner = () => { +const FeaturesBanner = (): JSX.Element => { const router = useRouter(); const lang = router.locale; + const textContent = require(`@/assets/lang/${lang}/banners.json`); + const banner = textContent.featuresBanner; const [showBanner, setShowBanner] = useState(false); - const textContent = require(`@/assets/lang/${lang}/banners.json`); const handleClose = () => { sessionStorage.setItem('hideBanner', 'true'); @@ -21,91 +18,125 @@ const FeaturesBanner = () => { }; useEffect(() => { - if (shouldHideBannerAutomatically) { - setShowBanner(false); - return; - } + const hideBanner = sessionStorage.getItem('hideBanner'); + if (hideBanner) return; + + const timer = setTimeout(() => { + setShowBanner(true); + }, 30000); - const getSquareBannerSS = sessionStorage.getItem('hideBanner'); - if (getSquareBannerSS) { - setShowBanner(false); - } else { - setTimeout(() => { - setShowBanner(true); - }, 10000); - } + return () => clearTimeout(timer); }, []); const handleOnClick = () => { - router.push('/pricing'); + window.open( + 'https://internxt.com/specialoffer?utm_source=intranet&utm_medium=direct&utm_campaign=specialoffer', + '_blank', + 'noopener noreferrer', + ); handleClose(); }; + const products = [ + { id: 'drive', icon: CloudArrowUp, text: banner.products.drive }, + { id: 'antivirus', icon: ShieldPlus, text: banner.products.antivirus }, + { id: 'cleaner', icon: Sparkle, text: banner.products.cleaner }, + { id: 'vpn', icon: CellTower, text: banner.products.vpn }, + { id: 'meet', icon: VideoConference, text: banner.products.meet }, + { id: 'mail', icon: Envelope, text: banner.products.mail }, + { id: 'ai', icon: Brain, text: banner.products.ai }, + ]; + + const bgColor = 'linear-gradient(360deg, #E5EFFF 0%, #FFFFFF 100%)'; + return (
-
-
-
-

{textContent.featuresBanner.label}

+ +
+
+
+

+ {banner.label.blueText} +

+

+ {banner.label.text} +

+
+
+

+ {banner.title} +

+
+

{banner.subTitle.blueText}

+

{banner.subTitle.text}

+
-

- {textContent.featuresBanner.title} -

+
-
+
+
-
- -

- {textContent.featuresBanner.guarantee} -

-
-

{textContent.featuresBanner.lastCta}

+ +
+
+ +

+ {banner.guarantee} +

-
-
-
- {textContent.featuresBanner.features.map((card, index) => { - const isSecondLast = index === textContent.featuresBanner.features.length - 2; - return ( -
-
- -

{card}

-
-
- ); - })} + +
+ {products.map((feature) => ( +
+ +

+ {feature.text} +

-
+ ))}
+ +
+ Features Banner +
); diff --git a/src/hooks/useSpecialOfferConfig.ts b/src/hooks/useSpecialOfferConfig.ts index 9904f1e8e..cfac26da5 100644 --- a/src/hooks/useSpecialOfferConfig.ts +++ b/src/hooks/useSpecialOfferConfig.ts @@ -43,7 +43,8 @@ export const ALLOWED_PATHS = [ 'cooltechzone', 'lifetime', 'clubic', - 'morrolinux' + 'morrolinux', + 'heise' ]; export const ALTERNATE_RECOMENDATED_PLAN_PATHS = new Set([]); export const DARK_MODE_PATHS = new Set(['baity', 'xavier', 'oscar', 'rimembah', 'believemy', 'ghareeb']); @@ -95,6 +96,7 @@ export const COUPON_CODES = { lifetime: PromoCodeName.lifetime, clubic: PromoCodeName.clubic, morrolinux: PromoCodeName.morrolinux, + heise: PromoCodeName.heise, }; interface OfferConfig { diff --git a/src/lib/types/index.ts b/src/lib/types/index.ts index ed340b91a..ea0d7fc17 100644 --- a/src/lib/types/index.ts +++ b/src/lib/types/index.ts @@ -240,7 +240,8 @@ export enum PromoCodeName { MCAFEE85 = 'MCAFEE85', NORTON85 = 'NORTON85', morrolinux = 'MORROLINUX', - clubic = 'DRIVE87' + clubic = 'DRIVE87', + heise = 'HEISE' } export interface PromoCodeProps { diff --git a/src/pages/[filename].tsx b/src/pages/[filename].tsx index d4e2f3f0f..efbec6f06 100644 --- a/src/pages/[filename].tsx +++ b/src/pages/[filename].tsx @@ -89,7 +89,8 @@ const LANG_MAP = { cooltechzone: 'en', lifetime: 'en', clubic: 'fr', - morrolinux: 'it' + morrolinux: 'it', + heise: 'de' }; function CombinedSpecialOffer({ diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 1d87e656b..3b9914944 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -10,7 +10,6 @@ import ShowSnackbar from '@/components/Snackbar'; import BottomBanner from '@/components/banners/BottomBanner'; import { EXCLUDED_PATHS_FOR_BANNER } from '@/constants'; import { FreeCardPromoBanner } from '@/components/banners/FreeCardPromoBanner'; -import FeaturesBanner from '@/components/banners/FeaturesBanner'; const EXCLUDE_INTERCOM_PATHS = [ '/temporary-email', @@ -105,7 +104,6 @@ function MyApp({ Component, pageProps }: AppProps) { {shouldShowBanner ? ( <> - ) : undefined}
diff --git a/src/pages/temporary-email.tsx b/src/pages/temporary-email.tsx index e5f68b472..5bc06bf01 100644 --- a/src/pages/temporary-email.tsx +++ b/src/pages/temporary-email.tsx @@ -12,6 +12,7 @@ import Footer from '@/components/layout/footers/Footer'; import { sm_faq, sm_breadcrumb } from '@/components/utils/schema-markup-generator'; import { ActionBanner } from '@/components/temp-email/components/ActionBanner'; import { GlobalDialog, useGlobalDialog } from '@/contexts/GlobalUIManager'; +import FeaturesBanner from '@/components/banners/FeaturesBanner'; import { setup } from '@/lib/csrf'; import { GetServerSidePropsContext } from 'next'; @@ -40,6 +41,7 @@ const TempEmail = ({ lang, metatags, textContent, footerLang, navbarLang, toolsC {dialogAction.dialogIsOpen(GlobalDialog.TempMailAction) && } + diff --git a/src/pages/virus-scanner.tsx b/src/pages/virus-scanner.tsx index e507ab1b7..eaf3ff29a 100644 --- a/src/pages/virus-scanner.tsx +++ b/src/pages/virus-scanner.tsx @@ -40,7 +40,7 @@ const Scan = ({