diff --git a/apps/web/public/eventools-logo.png b/apps/web/public/eventools-logo.png new file mode 100644 index 0000000..7cc536a Binary files /dev/null and b/apps/web/public/eventools-logo.png differ diff --git a/apps/web/src/components/DeprecationNoticeModal.tsx b/apps/web/src/components/DeprecationNoticeModal.tsx new file mode 100644 index 0000000..91520a8 --- /dev/null +++ b/apps/web/src/components/DeprecationNoticeModal.tsx @@ -0,0 +1,84 @@ +import React from "react"; +import { X, ExternalLink, Download, Server } from "lucide-react"; + +interface DeprecationNoticeModalProps { + isOpen: boolean; + onClose: () => void; +} + +const DeprecationNoticeModal: React.FC = ({ isOpen, onClose }) => { + if (!isOpen) return null; + + return ( +
+
e.stopPropagation()} + > +
+
+ +
+ +
+ eventools + +

We're Building Something New!

+ +
+

+ We're excited to announce that we're working on{" "} + eventools — the next + generation of event production tools. +

+ +

SoundDocs will be transitioning to eventools in the near future.

+ +
+

Don't worry — we'll provide:

+
    +
  • + + Instructions for downloading your data +
  • +
  • + + Self-hosting documentation for SoundDocs +
  • +
+
+
+ +
+ + Sign Up for eventools Beta + + + +
+
+
+
+
+ ); +}; + +export default DeprecationNoticeModal; diff --git a/apps/web/src/hooks/useDeprecationNotice.ts b/apps/web/src/hooks/useDeprecationNotice.ts new file mode 100644 index 0000000..9f3bd2a --- /dev/null +++ b/apps/web/src/hooks/useDeprecationNotice.ts @@ -0,0 +1,21 @@ +import { useState, useEffect } from "react"; + +const DEPRECATION_NOTICE_KEY = "sounddocs-deprecation-notice-dismissed"; + +export const useDeprecationNotice = () => { + const [isOpen, setIsOpen] = useState(false); + + useEffect(() => { + const dismissed = localStorage.getItem(DEPRECATION_NOTICE_KEY) === "true"; + if (!dismissed) { + setIsOpen(true); + } + }, []); + + const onClose = () => { + localStorage.setItem(DEPRECATION_NOTICE_KEY, "true"); + setIsOpen(false); + }; + + return { isOpen, onClose }; +}; diff --git a/apps/web/src/pages/Dashboard.tsx b/apps/web/src/pages/Dashboard.tsx index da45092..b2e675a 100644 --- a/apps/web/src/pages/Dashboard.tsx +++ b/apps/web/src/pages/Dashboard.tsx @@ -5,6 +5,8 @@ import { useAuth } from "../lib/AuthContext"; import Header from "../components/Header"; import Footer from "../components/Footer"; import AcoustIqBanner from "../components/AcoustIqBanner"; +import DeprecationNoticeModal from "@/components/DeprecationNoticeModal"; +import { useDeprecationNotice } from "@/hooks/useDeprecationNotice"; import { Info, Loader, @@ -21,6 +23,8 @@ import { const Dashboard = () => { const navigate = useNavigate(); const { user: authUser, loading: authLoading } = useAuth(); + const { isOpen: showDeprecationModal, onClose: handleDismissDeprecation } = + useDeprecationNotice(); const [loading, setLoading] = useState(true); const [userName, setUserName] = useState(""); @@ -264,6 +268,7 @@ const Dashboard = () => {