aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/molecules/copyright/copyright.tsx
blob: cef8ecb0d9f956d5b24214fb099b5a0bcfee8f97 (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
import type { FC, HTMLAttributes } from 'react';
import { Time } from '../../atoms';
import styles from './copyright.module.scss';

export type CopyrightProps = Omit<
  HTMLAttributes<HTMLSpanElement>,
  'children'
> & {
  /**
   * The start year of the copyright.
   */
  from: string;
  /**
   * The end year of the copyright.
   */
  to?: string;
  /**
   * The copyright owner.
   */
  owner: string;
};

export const Copyright: FC<CopyrightProps> = ({
  className = '',
  from,
  owner,
  to,
  ...props
}) => {
  const wrapperClass = `${styles.wrapper} ${className}`;

  /* eslint-disable react/jsx-no-literals -- Symbols allowed */
  return (
    <span {...props} className={wrapperClass}>
      &copy;
      <Time date={from} hideDay hideMonth />
      {to ? (
        <>
          {'-'}
          <Time date={to} hideDay hideMonth />
        </>
      ) : null}{' '}
      {owner}
      {'.'}
    </span>
  );
  /* eslint-enable react/jsx-no-literals */
};