aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/atoms/images/icons/svg-paths/svg-paths.tsx
blob: 88de5eff03900e4a5dcddbff45f5839366bc33b8 (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
import type { FC } from 'react';
import {
  ArrowIconPaths,
  type ArrowOrientation,
  CCBySAIconPaths,
  CareerIconPaths,
  CogIconPaths,
  ComputerIconPaths,
  EnvelopIconPaths,
  FeedIconPaths,
  HomeIconPaths,
  MagnifyingGlassIconPaths,
  MoonIconPaths,
  PostsStackIconPaths,
  SunIconPaths,
  CrossIconPaths,
  HelpIconPaths,
} from './icons-paths';

export type SVGIconOrientation = ArrowOrientation;

export type SVGIconShape =
  | 'arrow'
  | 'career'
  | 'cc-by-sa'
  | 'cog'
  | 'computer'
  | 'cross'
  | 'envelop'
  | 'feed'
  | 'help'
  | 'home'
  | 'magnifying-glass'
  | 'moon'
  | 'posts-stack'
  | 'sun';

export type SVGPathsProps = {
  /**
   * The icon orientation. Only used with arrow icon.
   *
   * @default 'right'
   */
  orientation?: SVGIconOrientation;
  /**
   * The icon shape.
   */
  shape: SVGIconShape;
};

export const SVGPaths: FC<SVGPathsProps> = ({
  orientation = 'right',
  shape,
}) => {
  switch (shape) {
    case 'arrow':
      return <ArrowIconPaths orientation={orientation} />;
    case 'career':
      return <CareerIconPaths />;
    case 'cc-by-sa':
      return <CCBySAIconPaths />;
    case 'cog':
      return <CogIconPaths />;
    case 'computer':
      return <ComputerIconPaths />;
    case 'cross':
      return <CrossIconPaths />;
    case 'envelop':
      return <EnvelopIconPaths />;
    case 'feed':
      return <FeedIconPaths />;
    case 'help':
      return <HelpIconPaths />;
    case 'home':
      return <HomeIconPaths />;
    case 'magnifying-glass':
      return <MagnifyingGlassIconPaths />;
    case 'moon':
      return <MoonIconPaths />;
    case 'posts-stack':
      return <PostsStackIconPaths />;
    case 'sun':
    default:
      return <SunIconPaths />;
  }
};