summaryrefslogtreecommitdiffstats
path: root/src/components/PaginationCursor/PaginationCursor.tsx
blob: d64f96164d74d1b2f255e93db89235d644f86a0f (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
import { useIntl } from 'react-intl';
import styles from './PaginationCursor.module.scss';

const PaginationCursor = ({
  current,
  total,
}: {
  current: number;
  total: number;
}) => {
  const intl = useIntl();

  return (
    <div className={styles.wrapper}>
      <div className={styles.info}>
        {intl.formatMessage(
          {
            defaultMessage:
              '{articlesCount, plural, =0 {# loaded articles} one {# loaded article} other {# loaded articles}} out of a total of {total}',
            description: 'PaginationCursor: loaded articles count message',
            id: 'du4MLN',
          },
          { articlesCount: current, total }
        )}
      </div>
      <progress
        className={styles.bar}
        max={total}
        value={current}
        aria-valuemin={0}
        aria-valuemax={total}
        aria-label={intl.formatMessage({
          defaultMessage:
            'Number of articles loaded out of the total available.',
          description: 'PaginationCursor: loaded articles count aria-label',
          id: 'mC21ht',
        })}
      ></progress>
    </div>
  );
};

export default PaginationCursor;