|
1 | | -import { mdiChevronDown, mdiChevronUp } from '@mdi/js' |
2 | 1 | import classNames from 'classnames' |
3 | | -import { FC, useState } from 'react' |
4 | | -import { MdiIcon } from '../Icon/MdiIcon' |
5 | | -import { JumpLink } from './JumpLink' |
| 2 | +import { FC } from 'react' |
6 | 3 | import { links } from '../../links' |
7 | 4 | import { useAllLinksInGroupAreHidden } from '../../stores/hiddenLinks/hiddenLinksHooks' |
| 5 | +import { useToggleJumpLinks } from '../App/useToggleJumpLinks' |
| 6 | +import { JumpLink } from './JumpLink' |
8 | 7 |
|
9 | 8 | export const JumpLinks: FC = () => { |
10 | 9 | const allLinksInGroupAreHidden = useAllLinksInGroupAreHidden() |
11 | | - |
12 | | - const [isOpen, setIsOpen] = useState(false) |
13 | | - |
14 | | - function handleToggleClick() { |
15 | | - setIsOpen(!isOpen) |
16 | | - } |
| 10 | + const toggleJumpLinks = useToggleJumpLinks() |
17 | 11 |
|
18 | 12 | return ( |
19 | | - <div className="jump-links px-page w-[300px] py-4"> |
20 | | - <div |
21 | | - className="flex cursor-default select-none items-center gap-x-2 dark:text-white md:hidden" |
22 | | - onClick={handleToggleClick} |
23 | | - > |
24 | | - <MdiIcon path={isOpen ? mdiChevronUp : mdiChevronDown}></MdiIcon> |
25 | | - <div>Jump to</div> |
26 | | - </div> |
27 | | - <div |
28 | | - className={classNames('flex flex-col gap-1 md:flex', { |
29 | | - hidden: !isOpen, |
30 | | - block: isOpen, |
31 | | - })} |
32 | | - > |
| 13 | + <div |
| 14 | + className={classNames( |
| 15 | + 'fixed top-10 lg:static', |
| 16 | + 'bg-white dark:bg-black lg:bg-white/20 dark:lg:bg-black/20', |
| 17 | + 'jump-links px-page w-[300px] py-4', |
| 18 | + { |
| 19 | + 'left-0': toggleJumpLinks.showJumpLinksMobile, |
| 20 | + '-left-full': !toggleJumpLinks.showJumpLinksMobile, |
| 21 | + }, |
| 22 | + )} |
| 23 | + > |
| 24 | + <div className={classNames('flex flex-col gap-1 md:flex')}> |
33 | 25 | {links.items |
34 | 26 | .filter((group) => !allLinksInGroupAreHidden(group)) |
35 | 27 | .map((linkGroup, index) => ( |
|
0 commit comments