From 77cdd394b947a99b70654cd1f5aff3ee724b76fc Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Thu, 1 Jan 2026 02:46:29 +0100 Subject: Add enmarcha announcement --- .../app/components/EnMarchaAnnouncement.tsx | 119 +++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 src/frontend/app/components/EnMarchaAnnouncement.tsx (limited to 'src/frontend/app/components/EnMarchaAnnouncement.tsx') diff --git a/src/frontend/app/components/EnMarchaAnnouncement.tsx b/src/frontend/app/components/EnMarchaAnnouncement.tsx new file mode 100644 index 0000000..0e7d0dd --- /dev/null +++ b/src/frontend/app/components/EnMarchaAnnouncement.tsx @@ -0,0 +1,119 @@ +import { AlertCircle, CheckCircle2, ExternalLink, Smartphone, X } from "lucide-react"; +import React from "react"; +import { useTranslation } from "react-i18next"; +import { Sheet } from "react-modal-sheet"; + +interface EnMarchaAnnouncementProps { + isOpen: boolean; + onClose: () => void; +} + +export const EnMarchaAnnouncement: React.FC = ({ + isOpen, + onClose, +}) => { + const { t } = useTranslation(); + + const features = [ + "feature_planner", + "feature_realtime", + "feature_operators", + "feature_ui", + "feature_more", + ]; + + return ( + + + + +
+
+

+ {t("enmarcha_announcement.title")} +

+ +
+ +
+
+ +

+ {t("enmarcha_announcement.discontinuation_notice")} +

+
+ +

+ {t("enmarcha_announcement.description")} +

+ +
+

+ {t("enmarcha_announcement.features_title")} +

+
    + {features.map((feature) => ( +
  • + + {t(`enmarcha_announcement.${feature}`)} +
  • + ))} +
+
+ + + {t("enmarcha_announcement.link_text")} + + +
+ +
+
+ +

+ {t("enmarcha_announcement.install_title")} +

+
+ +
+
+

Android

+
+

{t("enmarcha_announcement.android_chrome")}

+

{t("enmarcha_announcement.android_firefox")}

+
+
+ +
+

iOS

+

+ {t("enmarcha_announcement.ios_safari")} +

+
+
+
+ + +
+
+
+ +
+ ); +}; -- cgit v1.3