import { Anchor, Avatar, Group, Pagination, Stack, Table, Text, Title, } from '@mantine/core'; import { usePagination } from '@mantine/hooks'; import { Trans, useTranslation } from 'next-i18next'; import CrowdinReport from '../../../../../data/crowdin-report.json'; const PAGINATION_ITEMS = 20; export function TranslatorsTable({ loadedLanguages }: { loadedLanguages: number }) { const { t } = useTranslation(['layout/modals/about']); const translators = CrowdinReport.data; const pagination = usePagination({ total: translators.length / PAGINATION_ITEMS, initialPage: 1, }); const rows = translators .slice( (pagination.active - 1) * PAGINATION_ITEMS, (pagination.active - 1) * PAGINATION_ITEMS + PAGINATION_ITEMS ) .map((translator) => ( {translator.user.fullName} {translator.translated} {translator.approved} {translator.target} {translator.languages.map((language, index) => ( {language.name}{(index < translator.languages.length - 1 ? ", " : "")} ))} )); return ( {t('translators', { count: translators.length })} , }} /> {rows}
Name Translated Approved Target Languages
pagination.next()} onPreviousPage={() => pagination.previous()} onChange={(targetPage) => pagination.setPage(targetPage)} />
); }