aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/common/CollapseButton.tsx
blob: 03f42e73cbd6e2014f72c691feffe4784aeff0df (plain)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import React from 'react';

export interface CollapseButtonProps {
  collapse: boolean;
  toggle: (visibility: boolean) => void;
  className?: string;
}

const CollapseButton: React.FC<CollapseButtonProps> = (props) => {
  const { toggle, collapse, className } = props;

  const onClick = React.useCallback(() => {
    toggle(!collapse);
  }, [toggle, collapse]);

  return (
    <svg
      width="25"
      height="25"
      viewBox="0 0 100 100"
      className={className}
      onClick={onClick}
    >
      {(() => {
        if (collapse) {
          return (
            <>
              <line
                stroke="currentcolor"
                strokeWidth="14"
                x1="50"
                x2="90"
                y1="17"
                y2="17"
              />
              <line
                stroke="currentcolor"
                strokeWidth="14"
                x1="10"
                x2="50"
                y1="83"
                y2="83"
              />
              <line
                stroke="currentcolor"
                strokeWidth="14"
                x1="17"
                x2="17"
                y1="50"
                y2="90"
              />
              <line
                stroke="currentcolor"
                strokeWidth="14"
                x1="83"
                x2="83"
                y1="10"
                y2="50"
              />
            </>
          );
        } else {
          return (
            <>
              <line
                stroke="currentcolor"
                strokeWidth="14"
                x1="55"
                x2="95"
                y1="38"
                y2="38"
              />
              <line
                stroke="currentcolor"
                strokeWidth="14"
                x1="5"
                x2="45"
                y1="62"
                y2="62"
              />
              <line
                stroke="currentcolor"
                strokeWidth="14"
                x1="38"
                x2="38"
                y1="55"
                y2="95"
              />
              <line
                stroke="currentcolor"
                strokeWidth="14"
                x1="62"
                x2="62"
                y1="5"
                y2="45"
              />
            </>
          );
        }
      })()}
    </svg>
  );
};

export default CollapseButton;