import { Omit } from "@material-ui/core"; import { createStyles, withStyles, WithStyles } from "@material-ui/core/styles"; import Table from "@material-ui/core/Table"; import TableBody from "@material-ui/core/TableBody"; import TableCell from "@material-ui/core/TableCell"; import TableFooter from "@material-ui/core/TableFooter"; import TableHead from "@material-ui/core/TableHead"; import TableRow from "@material-ui/core/TableRow"; import classNames from "classnames"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { ListProps } from "../../../types"; import Skeleton from "@saleor/components/Skeleton"; import TablePagination from "@saleor/components/TablePagination"; import { maybe, renderCollection } from "../../../misc"; export interface TranslatableEntity { id: string; name: string; completion: { current: number; max: number; }; } export interface TranslationsEntitiesListProps extends Omit { entities: TranslatableEntity[]; onRowClick: (code: string) => void; } const styles = createStyles({ tableRow: { cursor: "pointer" }, textRight: { textAlign: "right" }, wideColumn: { width: "80%" } }); const TranslationsEntitiesList = withStyles(styles, { name: "TranslationsEntitiesList" })( ({ classes, disabled, entities, onNextPage, onPreviousPage, onRowClick, pageInfo }: TranslationsEntitiesListProps & WithStyles) => { const intl = useIntl(); return ( {renderCollection( entities, entity => ( onRowClick(entity.id) : undefined} key={entity ? entity.id : "skeleton"} > {maybe(() => entity.name, )} {maybe( () => intl.formatMessage( { defaultMessage: "{current} of {max}", description: "translation progress" }, entity.completion ), )} ), () => ( ) )}
); } ); TranslationsEntitiesList.displayName = "TranslationsEntitiesList"; export default TranslationsEntitiesList;