@@ -12,48 +12,63 @@ import { ConnectionStats } from '@/components/connections/ConnectionStats'
1212export default function ConnectionsPage ( ) {
1313 const [ searchQuery , setSearchQuery ] = useState ( '' )
1414 const [ activeTab , setActiveTab ] = useState ( 'following' )
15+ const [ announcement , setAnnouncement ] = useState ( '' )
16+
17+ const handleTabChange = ( tab : string ) => {
18+ setActiveTab ( tab )
19+ const tabNames : Record < string , string > = {
20+ following : 'Following' ,
21+ followers : 'Followers' ,
22+ search : 'Search'
23+ }
24+ setAnnouncement ( `Switched to ${ tabNames [ tab ] } tab` )
25+ }
1526
1627 return (
1728 < div className = "flex flex-col h-[calc(100vh-4rem)] bg-black" >
29+ { /* Screen reader announcements */ }
30+ < div role = "status" aria-live = "polite" aria-atomic = "true" className = "sr-only" >
31+ { announcement }
32+ </ div >
1833 { /* Header */ }
1934 < div className = "border-b p-4" >
2035 < div className = "max-w-7xl mx-auto" >
2136 < div className = "flex items-center gap-3 mb-4" >
2237 < Users className = "h-6 w-6 text-primary" />
2338 < h1 className = "text-xl md:text-2xl font-bold" > Connections</ h1 >
2439 </ div >
25- < ConnectionStats onTabChange = { setActiveTab } />
40+ < ConnectionStats onTabChange = { handleTabChange } />
2641 </ div >
2742 </ div >
2843
2944 { /* Main Content */ }
3045 < div className = "flex-1 overflow-hidden" >
3146 < div className = "max-w-7xl mx-auto h-full flex flex-col p-4" >
32- < Tabs value = { activeTab } onValueChange = { setActiveTab } className = "flex-1 flex flex-col" >
33- < TabsList className = "grid w-full grid-cols-3 mb-4" >
34- < TabsTrigger value = "following" className = "gap-2 " >
47+ < Tabs value = { activeTab } onValueChange = { handleTabChange } className = "flex-1 flex flex-col" >
48+ < TabsList className = "grid w-full grid-cols-3 mb-4 h-auto " >
49+ < TabsTrigger value = "following" className = "gap-1 sm:gap-2 flex-col sm:flex-row py-2 sm:py-1.5 " >
3550 < UserPlus className = "h-4 w-4" />
36- < span > Following</ span >
51+ < span className = "text-xs sm:text-sm" > Following</ span >
3752 </ TabsTrigger >
38- < TabsTrigger value = "followers" className = "gap-2 " >
53+ < TabsTrigger value = "followers" className = "gap-1 sm:gap-2 flex-col sm:flex-row py-2 sm:py-1.5 " >
3954 < Users className = "h-4 w-4" />
40- < span > Followers</ span >
55+ < span className = "text-xs sm:text-sm" > Followers</ span >
4156 </ TabsTrigger >
42- < TabsTrigger value = "search" className = "gap-2 " >
57+ < TabsTrigger value = "search" className = "gap-1 sm:gap-2 flex-col sm:flex-row py-2 sm:py-1.5 " >
4358 < Search className = "h-4 w-4" />
44- < span > Search</ span >
59+ < span className = "text-xs sm:text-sm" > Search</ span >
4560 </ TabsTrigger >
4661 </ TabsList >
4762
48- < TabsContent value = "following" className = "flex-1 overflow-y-auto space-y-3" >
63+ < TabsContent value = "following" className = "flex-1 overflow-y-auto space-y-3 animate-fadeIn " >
4964 < FollowingList />
5065 </ TabsContent >
5166
52- < TabsContent value = "followers" className = "flex-1 overflow-y-auto space-y-3" >
67+ < TabsContent value = "followers" className = "flex-1 overflow-y-auto space-y-3 animate-fadeIn " >
5368 < FollowersList />
5469 </ TabsContent >
5570
56- < TabsContent value = "search" className = "flex-1 overflow-y-auto space-y-3" >
71+ < TabsContent value = "search" className = "flex-1 overflow-y-auto space-y-3 animate-fadeIn " >
5772 < div className = "relative mb-4" >
5873 < Search className = "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none" />
5974 < Input
0 commit comments