mirror of
https://github.com/luminous-devs/lume.git
synced 2024-09-18 11:13:30 +00:00
added active link
This commit is contained in:
parent
ca3ee550f7
commit
66e45937de
25
src/components/activeLink.tsx
Normal file
25
src/components/activeLink.tsx
Normal file
@ -0,0 +1,25 @@
|
||||
'use client';
|
||||
|
||||
import Link from 'next/link';
|
||||
import { useSelectedLayoutSegment } from 'next/navigation';
|
||||
|
||||
export const ActiveLink = ({
|
||||
href,
|
||||
className,
|
||||
activeClassName,
|
||||
children,
|
||||
}: {
|
||||
href: string;
|
||||
className: string;
|
||||
activeClassName: string;
|
||||
children: React.ReactNode;
|
||||
}) => {
|
||||
const segment = useSelectedLayoutSegment();
|
||||
const isActive = href.includes(segment);
|
||||
|
||||
return (
|
||||
<Link href={href} className={`${className}` + ' ' + (isActive ? `${activeClassName}` : '')}>
|
||||
{children}
|
||||
</Link>
|
||||
);
|
||||
};
|
@ -1,8 +1,9 @@
|
||||
'use client';
|
||||
|
||||
import { ActiveLink } from '@components/activeLink';
|
||||
|
||||
import * as Collapsible from '@radix-ui/react-collapsible';
|
||||
import { NavArrowUp } from 'iconoir-react';
|
||||
import Link from 'next/link';
|
||||
import { useState } from 'react';
|
||||
|
||||
export default function Newsfeed() {
|
||||
@ -22,20 +23,20 @@ export default function Newsfeed() {
|
||||
<h3 className="text-[11px] font-bold uppercase tracking-widest text-zinc-600">Newsfeed</h3>
|
||||
</Collapsible.Trigger>
|
||||
<Collapsible.Content className="flex flex-col text-zinc-400">
|
||||
<Link
|
||||
href={`/newsfeed/following`}
|
||||
//activeClassName="dark:bg-zinc-900 dark:text-zinc-100 hover:dark:bg-zinc-800"
|
||||
<ActiveLink
|
||||
href="/newsfeed/following"
|
||||
activeClassName="dark:bg-zinc-900 dark:text-zinc-100 hover:dark:bg-zinc-800"
|
||||
className="flex h-8 items-center gap-2.5 rounded-md px-2.5 text-sm font-medium hover:text-zinc-200"
|
||||
>
|
||||
<span>Following</span>
|
||||
</Link>
|
||||
<Link
|
||||
href={`/newsfeed/circle`}
|
||||
//activeClassName="dark:bg-zinc-900 dark:text-zinc-100 hover:dark:bg-zinc-800"
|
||||
</ActiveLink>
|
||||
<ActiveLink
|
||||
href="/newsfeed/circle"
|
||||
activeClassName="dark:bg-zinc-900 dark:text-zinc-100 hover:dark:bg-zinc-800"
|
||||
className="flex h-8 items-center gap-2.5 rounded-md px-2.5 text-sm font-medium hover:text-zinc-200"
|
||||
>
|
||||
<span>Circle</span>
|
||||
</Link>
|
||||
</ActiveLink>
|
||||
</Collapsible.Content>
|
||||
</div>
|
||||
</Collapsible.Root>
|
||||
|
Loading…
Reference in New Issue
Block a user