|
1 | 1 | "use client"; |
2 | 2 |
|
3 | | -import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; |
| 3 | +import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs"; |
4 | 4 | import Routes from "@/constants/routes"; |
| 5 | +import { useRouter, usePathname } from "next/navigation"; |
5 | 6 | import Link from "next/link"; |
6 | | -import { usePathname } from "next/navigation"; |
7 | 7 | import React from "react"; |
8 | 8 |
|
9 | 9 | const PageSwitcher: React.FC = () => { |
10 | 10 | const pathname = usePathname(); |
| 11 | + const router = useRouter(); |
| 12 | + |
| 13 | + const handleTabChange = (value: string) => { |
| 14 | + router.push(value === "customer" |
| 15 | + ? Routes.landing.customer |
| 16 | + : Routes.landing.visitor); |
| 17 | + }; |
11 | 18 |
|
12 | 19 | return ( |
13 | 20 | <div className="w-full fixed bottom-6 select-none"> |
14 | 21 | <Tabs |
15 | 22 | defaultValue="" |
16 | 23 | value={pathname.replace("/", "")} |
| 24 | + onValueChange={handleTabChange} |
17 | 25 | className="w-fit mx-auto" |
18 | 26 | > |
19 | | - <TabsList className="grid w-full grid-cols-2 bg-background/50 shadow-xs backdrop-blur-2xl"> |
20 | | - <Link href={Routes.landing.customer} scroll={false}> |
21 | | - <TabsTrigger value="customer"> |
| 27 | + <TabsList className="grid grid-cols-2 bg-background/50 shadow-xs backdrop-blur-2xl"> |
| 28 | + {/* |
| 29 | + Customer tab trigger: |
| 30 | + - value must match the TabsContent to show |
| 31 | + - id and aria-controls for accessibility |
| 32 | + */} |
| 33 | + <TabsTrigger value="customer" id="tab-trigger-customer" aria-controls="tab-content-customer"> |
| 34 | + <Link href={Routes.landing.customer} className="block w-full h-full"> |
22 | 35 | Je suis un potentiel client |
23 | | - </TabsTrigger> |
24 | | - </Link> |
| 36 | + </Link> |
| 37 | + </TabsTrigger> |
25 | 38 |
|
26 | | - <Link href={Routes.landing.visitor} scroll={false}> |
27 | | - <TabsTrigger value="">Je suis un simple visiteur</TabsTrigger> |
28 | | - </Link> |
| 39 | + <TabsTrigger value="" id="tab-trigger-visitor" aria-controls="tab-content-visitor"> |
| 40 | + <Link href={Routes.landing.visitor} className="block w-full h-full"> |
| 41 | + Je suis un simple visiteur |
| 42 | + </Link> |
| 43 | + </TabsTrigger> |
29 | 44 | </TabsList> |
| 45 | + {/* |
| 46 | + Corresponding content panels for each tab. |
| 47 | + They are empty since actual content is rendered elsewhere. |
| 48 | + */} |
| 49 | + <TabsContent value="customer" id="tab-content-customer" /> |
| 50 | + <TabsContent value="" id="tab-content-visitor" /> |
30 | 51 | </Tabs> |
31 | 52 | </div> |
32 | 53 | ); |
|
0 commit comments