File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import { MobileMenu } from "../components/mobile-menu";
1111import { Pricing } from "../components/pricing" ;
1212import { ReviewCard } from "../components/review-card" ;
1313import SavingsCalculator from "../components/savings-calculator" ;
14+ import { GmailNotification } from "../components/gmail-notification" ;
1415import { TargetAudience } from "../components/target-audience" ;
1516import { TrackCard } from "../components/track-card" ;
1617import { UseItYourWay } from "../components/use-it-your-way" ;
@@ -28,6 +29,7 @@ export default async function Page(props: {
2829
2930 return (
3031 < >
32+ < GmailNotification />
3133 < header className = "sticky top-3 z-50 mx-3 flex items-center justify-between gap-2 p-4.5 py-2.5 pr-2.5 max-sm:pr-4.5" >
3234 < div className = "border-border bg-background/80 absolute top-0 left-0 h-full w-full rounded-lg border backdrop-blur-[12px]" />
3335
Original file line number Diff line number Diff line change 1+ "use client" ;
2+
3+ import { useState , useEffect } from "react" ;
4+
5+ export function GmailNotification ( ) {
6+ const [ isVisible , setIsVisible ] = useState ( false ) ;
7+
8+ useEffect ( ( ) => {
9+ // Show notification after a short delay when component mounts
10+ const timer = setTimeout ( ( ) => {
11+ setIsVisible ( true ) ;
12+ } , 1500 ) ;
13+
14+ return ( ) => {
15+ clearTimeout ( timer ) ;
16+ } ;
17+ } , [ ] ) ;
18+
19+ return (
20+ < div
21+ className = { `fixed top-20 right-2 z-[60] transition-all duration-500 ease-out p-2 ${
22+ isVisible
23+ ? "translate-x-0 opacity-100"
24+ : "translate-x-full opacity-0"
25+ } `}
26+ >
27+ { /* macOS notification container - glass effect */ }
28+ < div className = "bg-black/20 backdrop-blur-3xl rounded-xl shadow-2xl w-96 overflow-hidden border border-white/10 ring-1 ring-black/5" >
29+ { /* Main content */ }
30+ < div className = "px-4 pb-4 pt-4" >
31+ < div className = "flex items-center gap-3" >
32+ { /* Gmail logo */ }
33+ < div className = "w-16 h-16 bg-white rounded-full flex items-center justify-center flex-shrink-0 shadow-sm" >
34+ < img
35+ src = "/gmail-icon.png"
36+ alt = "Gmail"
37+ className = "w-12 h-12 object-contain"
38+ />
39+ </ div >
40+
41+ { /* Email content */ }
42+ < div className = "flex-1 min-w-0" >
43+ < div className = "mb-1" >
44+ < span className = "text-white font-medium text-sm" > What has been done this week?</ span >
45+ </ div >
46+
47+ < p className = "text-white/80 text-sm leading-relaxed" >
48+ Hi, I'm your manager. It's time for portion of annoying questions about your work that has been done, or avoid this shit and use AsyncStatus.
49+ </ p >
50+ </ div >
51+ </ div >
52+ </ div >
53+ </ div >
54+ </ div >
55+ ) ;
56+ }
You can’t perform that action at this time.
0 commit comments