@@ -7,12 +7,12 @@ import {
77 IoCalendar ,
88 IoDesktop ,
99 IoSettings ,
10- IoDocumentText ,
1110 IoChatbubble ,
1211 IoInformationCircle ,
1312 IoFlame ,
1413 IoCheckmarkCircle ,
1514 IoSparkles ,
15+ IoKey ,
1616} from "react-icons/io5" ;
1717import { motion } from "framer-motion" ;
1818import {
@@ -31,6 +31,7 @@ import {
3131import { usePremiumFeatures } from "../contexts/PremiumFeaturesContext" ;
3232import { LucideListTodo } from "lucide-react" ;
3333import { PiMonitorFill } from "react-icons/pi" ;
34+ import { UpdateChecker } from "./UpdateChecker" ;
3435
3536// ── 1. Grouped Navigation Data ──
3637
@@ -47,7 +48,7 @@ const proNav = [
4748
4849const systemNav = [
4950 { title : "Settings" , url : "/allSettings" , icon : IoSettings } ,
50- { title : "Activate License" , url : "/activatelicense" , icon : IoDocumentText } ,
51+ { title : "Activate License" , url : "/activatelicense" , icon : IoKey } ,
5152 {
5253 title : "Submit Feedback" ,
5354 url : "https://tally.so/r/wo0ZrN" ,
@@ -213,24 +214,70 @@ export function AppSidebar() {
213214
214215 { /* ── Footer ── */ }
215216 < SidebarFooter className = "p-2 pb-3" >
216- < SidebarMenu >
217- { isPaidUser ? (
218- < SidebarMenuItem >
219- < SidebarMenuButton
220- tooltip = "Pro Active"
221- className = "relative overflow-hidden cursor-default border border-green-500/25 dark:border-green-400/20 bg-green-500/5 dark:bg-green-400/5 hover:bg-green-500/5 dark:hover:bg-green-400/5 group"
222- >
223- { /* Green sweep */ }
217+ < SidebarMenu > { isPaidUser ? (
218+ < SidebarMenuItem >
219+ < SidebarMenuButton
220+ tooltip = "Pro Active"
221+ className = "relative overflow-hidden cursor-default border border-green-500/25 dark:border-green-400/20 bg-green-500/5 dark:bg-green-400/5 hover:bg-green-500/5 dark:hover:bg-green-400/5 group"
222+ >
223+ { /* Green sweep */ }
224+ < motion . div
225+ className = "absolute inset-0 z-0 pointer-events-none"
226+ style = { {
227+ background :
228+ "linear-gradient(90deg, transparent 0%, rgba(34,197,94,0.25) 40%, rgba(74,222,128,0.35) 50%, rgba(34,197,94,0.25) 60%, transparent 100%)" ,
229+ backgroundSize : "200% 100%" ,
230+ } }
231+ animate = { { backgroundPosition : [ "200% 0" , "-200% 0" ] } }
232+ transition = { {
233+ duration : 3 ,
234+ repeat : Infinity ,
235+ ease : "easeInOut" ,
236+ } }
237+ />
238+
239+ { /* White shimmer */ }
240+ < motion . div
241+ className = "absolute inset-0 z-0 pointer-events-none"
242+ style = { {
243+ background :
244+ "linear-gradient(110deg, transparent 30%, rgba(255,255,255,0.12) 45%, rgba(255,255,255,0.2) 50%, rgba(255,255,255,0.12) 55%, transparent 70%)" ,
245+ backgroundSize : "200% 100%" ,
246+ } }
247+ animate = { { backgroundPosition : [ "200% 0" , "-200% 0" ] } }
248+ transition = { {
249+ duration : 2.5 ,
250+ repeat : Infinity ,
251+ ease : "easeInOut" ,
252+ delay : 0.8 ,
253+ } }
254+ />
255+
256+ < IoCheckmarkCircle className = "relative z-10 text-[1.1rem] drop-shadow-[0_0_4px_rgba(34,197,94,0.5)] shrink-0 text-green-500 dark:text-green-400" />
257+ < span className = "relative z-10 font-heading text-[13px] font-semibold tracking-wide text-green-700 dark:text-green-400" >
258+ Activated
259+ </ span >
260+ </ SidebarMenuButton >
261+ </ SidebarMenuItem >
262+ ) : (
263+ < SidebarMenuItem >
264+ < SidebarMenuButton
265+ asChild
266+ tooltip = "Unlock Premium"
267+ className = "relative overflow-hidden border border-amber-500/25 dark:border-amber-400/20 bg-amber-500/5 dark:bg-amber-400/5 hover:border-amber-500/50 dark:hover:border-amber-400/35 shadow-sm transition-all group"
268+ >
269+ < Link to = "https://blinkeye.app/en/pricing" target = "_blank" >
270+ { /* Amber/rose sweep */ }
224271 < motion . div
225272 className = "absolute inset-0 z-0 pointer-events-none"
226273 style = { {
227274 background :
228- "linear-gradient(90deg, transparent 0%, rgba(34,197,94 ,0.25) 40 %, rgba(74,222,128 ,0.35 ) 50%, rgba(34,197,94 ,0.25) 60 %, transparent 100%)" ,
275+ "linear-gradient(90deg, transparent 0%, rgba(245,158,11 ,0.25) 35 %, rgba(225,29,72 ,0.3 ) 50%, rgba(245,158,11 ,0.25) 65 %, transparent 100%)" ,
229276 backgroundSize : "200% 100%" ,
230277 } }
231278 animate = { { backgroundPosition : [ "200% 0" , "-200% 0" ] } }
232279 transition = { {
233- duration : 3 ,
280+ duration : 2.5 ,
234281 repeat : Infinity ,
235282 ease : "easeInOut" ,
236283 } }
@@ -241,80 +288,36 @@ export function AppSidebar() {
241288 className = "absolute inset-0 z-0 pointer-events-none"
242289 style = { {
243290 background :
244- "linear-gradient(110deg, transparent 30%, rgba(255,255,255,0.12) 45%, rgba(255,255,255,0.2 ) 50%, rgba(255,255,255,0.12) 55%, transparent 70%)" ,
291+ "linear-gradient(110deg, transparent 30%, rgba(255,255,255,0.12) 45%, rgba(255,255,255,0.22 ) 50%, rgba(255,255,255,0.12) 55%, transparent 70%)" ,
245292 backgroundSize : "200% 100%" ,
246293 } }
247294 animate = { { backgroundPosition : [ "200% 0" , "-200% 0" ] } }
248295 transition = { {
249- duration : 2.5 ,
296+ duration : 2 ,
250297 repeat : Infinity ,
251298 ease : "easeInOut" ,
252- delay : 0.8 ,
299+ delay : 0.6 ,
253300 } }
254301 />
255302
256- < IoCheckmarkCircle className = "relative z-10 text-[1.1rem] drop-shadow-[0_0_4px_rgba(34,197,94,0.5)] shrink-0 text-green-500 dark:text-green-400" />
257- < span className = "relative z-10 font-heading text-[13px] font-semibold tracking-wide text-green-700 dark:text-green-400" >
258- Activated
259- </ span >
260- </ SidebarMenuButton >
261- </ SidebarMenuItem >
262- ) : (
263- < SidebarMenuItem >
264- < SidebarMenuButton
265- asChild
266- tooltip = "Unlock Premium"
267- className = "relative overflow-hidden border border-amber-500/25 dark:border-amber-400/20 bg-amber-500/5 dark:bg-amber-400/5 hover:border-amber-500/50 dark:hover:border-amber-400/35 shadow-sm transition-all group"
268- >
269- < Link to = "https://blinkeye.app/en/pricing" target = "_blank" >
270- { /* Amber/rose sweep */ }
271- < motion . div
272- className = "absolute inset-0 z-0 pointer-events-none"
273- style = { {
274- background :
275- "linear-gradient(90deg, transparent 0%, rgba(245,158,11,0.25) 35%, rgba(225,29,72,0.3) 50%, rgba(245,158,11,0.25) 65%, transparent 100%)" ,
276- backgroundSize : "200% 100%" ,
277- } }
278- animate = { { backgroundPosition : [ "200% 0" , "-200% 0" ] } }
279- transition = { {
280- duration : 2.5 ,
281- repeat : Infinity ,
282- ease : "easeInOut" ,
283- } }
284- />
285-
286- { /* White shimmer */ }
287- < motion . div
288- className = "absolute inset-0 z-0 pointer-events-none"
289- style = { {
290- background :
291- "linear-gradient(110deg, transparent 30%, rgba(255,255,255,0.12) 45%, rgba(255,255,255,0.22) 50%, rgba(255,255,255,0.12) 55%, transparent 70%)" ,
292- backgroundSize : "200% 100%" ,
293- } }
294- animate = { { backgroundPosition : [ "200% 0" , "-200% 0" ] } }
295- transition = { {
296- duration : 2 ,
297- repeat : Infinity ,
298- ease : "easeInOut" ,
299- delay : 0.6 ,
300- } }
301- />
302-
303- { /* Hover glow */ }
304- < div className = "absolute inset-0 z-0 bg-amber-500/10 opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none" />
303+ { /* Hover glow */ }
304+ < div className = "absolute inset-0 z-0 bg-amber-500/10 opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none" />
305305
306- < IoSparkles
307- className = "relative z-10 text-[1.1rem] drop-shadow-[0_0_4px_rgba(245,158,11,0.5)] shrink-0"
308- style = { { fill : "url(#amberGradient)" } }
309- />
310- < span className = "relative z-10 font-heading text-[13px] font-bold tracking-wide text-amber-700 dark:text-amber-400 group-hover:text-amber-800 dark:group-hover:text-amber-300 transition-colors" >
311- Unlock Premium
312- </ span >
313- </ Link >
314- </ SidebarMenuButton >
315- </ SidebarMenuItem >
316- ) }
306+ < IoSparkles
307+ className = "relative z-10 text-[1.1rem] drop-shadow-[0_0_4px_rgba(245,158,11,0.5)] shrink-0"
308+ style = { { fill : "url(#amberGradient)" } }
309+ />
310+ < span className = "relative z-10 font-heading text-[13px] font-bold tracking-wide text-amber-700 dark:text-amber-400 group-hover:text-amber-800 dark:group-hover:text-amber-300 transition-colors" >
311+ Unlock Premium
312+ </ span >
313+ </ Link >
314+ </ SidebarMenuButton >
315+ </ SidebarMenuItem >
316+ ) }
317317 </ SidebarMenu >
318+
319+ { /* ── Version & Update Check ── */ }
320+ < UpdateChecker />
318321 </ SidebarFooter >
319322 </ Sidebar >
320323 </ >
0 commit comments