File size: 2,027 Bytes
0bfe2e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import { Button } from '../ui/button';
import { useMenu } from '@/context/menu';
import { FaArrowLeft, FaArrowRight } from 'react-icons/fa6';

export function PageControls() {
  const {
    setSelectedMenu,
    selectedMenu,
    previousMenu,
    nextMenu,
    firstMenu,
    lastMenu,
  } = useMenu();

  return (
    <div className="flex flex-1 gap-4">
      <Button
        leftIcon={<FaArrowLeft />}
        intent="white"
        size="md"
        hideTextOnSmallScreen
        rounded
        className="min-w-[60px] md:min-w-[120px]"
        onClick={() => {
          previousMenu();
        }}
        onMouseDown={(e) => {
          // Only handle left click
          if (e.button === 0) {
            const timeout = setTimeout(() => {
              // firstMenu();
              setSelectedMenu(firstMenu);
            }, 500);
            // Cleanup timeout on mouse up
            const cleanup = () => {
              clearTimeout(timeout);
              window.removeEventListener('mouseup', cleanup);
            };
            window.addEventListener('mouseup', cleanup);
          }
        }}
        disabled={selectedMenu === firstMenu}
      >
        Previous
      </Button>
      <Button
        rightIcon={<FaArrowRight />}
        intent="white"
        size="md"
        hideTextOnSmallScreen
        rounded
        className="min-w-[60px] md:min-w-[120px]"
        onClick={() => {
          nextMenu();
        }}
        onMouseDown={(e) => {
          // Only handle left click
          if (e.button === 0) {
            const timeout = setTimeout(() => {
              setSelectedMenu(lastMenu);
            }, 500);
            // Cleanup timeout on mouse up
            const cleanup = () => {
              clearTimeout(timeout);
              window.removeEventListener('mouseup', cleanup);
            };
            window.addEventListener('mouseup', cleanup);
          }
        }}
        disabled={selectedMenu === lastMenu}
      >
        Next
      </Button>
    </div>
  );
}