Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x | import React from 'react';
import { AiOutlineStar } from 'react-icons/ai';
import { useIntl } from 'react-intl';
import useGithubStars from '@/hooks/useGithubStars';
import RenderManager from '@/components/RenderManager';
import Tooltip from '@/components/Tooltip';
import styles from './starCounter.module.css';
/**
* @description Component that shows the number of stars of the repository
* @returns {JSX.Element} Component
* @exapmle <StarCounter />
*/
const StarCounter = () => {
const { data, error, loading } = useGithubStars();
const { formatMessage: f } = useIntl();
return (
<Tooltip>
<Tooltip.Trigger>
<a
className={styles.stars}
href="https://github.com/xabierlameiro/the-last-dance"
target="_blank"
rel="noopener noreferrer"
>
<AiOutlineStar />
<RenderManager
loading={loading}
error={error}
errorTitle={f({ id: 'starCounter.error' })}
loadingTitle={f({ id: 'starCounter.loading' })}
>
<span data-testid="star-counter">{data as string}</span>
</RenderManager>
</a>
</Tooltip.Trigger>
<Tooltip.Content>{f({ id: 'starCounter.tooltip' })}</Tooltip.Content>
</Tooltip>
);
};
export default StarCounter;
|