Skip to content

Commit 710f086

Browse files
committed
feat: add Gmail notification component and icon to marketing app
1 parent d1a527a commit 710f086

3 files changed

Lines changed: 58 additions & 0 deletions

File tree

17.9 KB
Loading

apps/marketing-app/src/app/(app)/page.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { MobileMenu } from "../components/mobile-menu";
1111
import { Pricing } from "../components/pricing";
1212
import { ReviewCard } from "../components/review-card";
1313
import SavingsCalculator from "../components/savings-calculator";
14+
import { GmailNotification } from "../components/gmail-notification";
1415
import { TargetAudience } from "../components/target-audience";
1516
import { TrackCard } from "../components/track-card";
1617
import { 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

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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+
}

0 commit comments

Comments
 (0)