diff --git a/src/App.jsx b/src/App.jsx index 66026c9..72ef02d 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -49,6 +49,7 @@ import CustomerEstimateWizard from './modules/estimateWizard/CustomerEstimateWiz import EstimateWizardAdmin from './modules/estimateWizard/EstimateWizardAdmin'; import SocialAdsEngine from './modules/socialAdsEngine/SocialAdsEngine'; import PublicAdLanding from './modules/socialAdsEngine/PublicAdLanding'; +import CampaignXComingSoon from './pages/CampaignXComingSoon'; // ... (existing imports) const ProtectedRoute = ({ children, allowedRoles }) => { @@ -93,6 +94,12 @@ function App() { } /> + {/* CampaignX — placeholder teaser screen for the upcoming marketing module (Owner/Admin) */} + + + + } /> { ...commonItems, { to: "/estimate-wizard/admin", icon: Settings, label: "Wizard Admin" }, { to: "/marketing", icon: Megaphone, label: "Ad Engine" }, + { type: "section", label: "Upcoming Features" }, + { to: "/campaignx", icon: Rocket, label: CampaignX }, ]; case 'ADMIN': return [ @@ -183,6 +185,8 @@ const Layout = () => { ...commonItems, { to: "/estimate-wizard/admin", icon: Settings, label: "Wizard Admin" }, { to: "/marketing", icon: Megaphone, label: "Ad Engine" }, + { type: "section", label: "Upcoming Features" }, + { to: "/campaignx", icon: Rocket, label: CampaignX }, ]; case 'CONTRACTOR': case 'SUBCONTRACTOR': @@ -288,16 +292,32 @@ const Layout = () => { {/* 2. Navigation Items */} {/* 3. User Profile & Footer */} diff --git a/src/pages/CampaignXComingSoon.jsx b/src/pages/CampaignXComingSoon.jsx new file mode 100644 index 0000000..3a51e1c --- /dev/null +++ b/src/pages/CampaignXComingSoon.jsx @@ -0,0 +1,144 @@ +/** + * CampaignXComingSoon — placeholder / teaser screen for the upcoming CampaignX module. + * + * Rendered at /campaignx. This is intentionally a "coming soon" experience: a hero + * that explains what CampaignX is, followed by a vertical timeline of the upcoming + * features that will ship with the module. No real functionality is wired yet. + */ +import React from 'react'; +import { motion } from 'framer-motion'; +import { + Rocket, Sparkles, Target, BarChart3, Bot, Layers, Send, Clock, +} from 'lucide-react'; + +const UPCOMING = [ + { + icon: Target, + title: 'Multi-Channel Campaign Orchestration', + desc: 'Design once and launch across email, SMS, social and ads from a single canvas — with audience targeting baked in.', + }, + { + icon: Bot, + title: 'AI Campaign Copilot', + desc: 'Generate copy, subject lines and creative variants instantly, then let the assistant recommend the best-performing mix.', + }, + { + icon: Layers, + title: 'Visual Journey Builder', + desc: 'Drag-and-drop branching journeys with triggers, delays and conditions to nurture every lead automatically.', + }, + { + icon: Send, + title: 'Smart Send-Time Optimization', + desc: 'CampaignX learns when each contact is most likely to engage and schedules delivery for peak response.', + }, + { + icon: BarChart3, + title: 'Real-Time Performance Analytics', + desc: 'Track opens, clicks, conversions and ROI live, with attribution that ties revenue back to every touchpoint.', + }, +]; + +export default function CampaignXComingSoon() { + return ( +
+
+ + {/* --- Hero --- */} + +
+ + Coming Soon +
+ +
+
+
+
+ +
+
+
+ +

+ CampaignX +

+

+ Your next-generation marketing command center. CampaignX brings every channel, + audience and automation into one intelligent workspace — so you can launch + smarter campaigns and turn more leads into jobs. +

+ +
+ + We're building something special. Stay tuned. +
+ + + {/* --- Upcoming features timeline --- */} + +

+ What's coming to CampaignX +

+ + {/* Vertical line + feature items */} +
+ {/* The vertical line */} +
+ +
+ {UPCOMING.map((feature, i) => { + const Icon = feature.icon; + return ( + + {/* Node on the line */} +
+ +
+ +

+ {feature.title} +

+

+ {feature.desc} +

+
+ ); + })} +
+
+ + + {/* --- Footer note --- */} + +
+

+ CampaignX is currently in active development — it'll appear here the moment it's ready. +

+
+
+
+
+ ); +}