saleor-dashboard/src/components/TableRowLink/TableRowLink.tsx
Michał Droń d5c9a3dae8
Add trailing commas (#2062)
* Require trailing commas

* Add trailing commas

* Add trailing commas in testUtils dir

* Add trailing commas
2022-06-21 11:36:55 +02:00

50 lines
1.1 KiB
TypeScript

import { TableRow, TableRowTypeMap } from "@material-ui/core";
import { makeStyles } from "@saleor/macaw-ui";
import { isExternalURL } from "@saleor/utils/urls";
import clsx from "classnames";
import React from "react";
import { Link } from "react-router-dom";
type MaterialTableRowPropsType = TableRowTypeMap["props"];
export interface TableRowLinkProps
extends Omit<MaterialTableRowPropsType, "onClick"> {
children: React.ReactNode;
href?: string;
className?: string;
linkClassName?: string;
}
const useStyles = makeStyles(
{
link: {
all: "inherit",
display: "contents",
},
},
{ name: "TableRowLink" },
);
const TableRowLink = ({
href,
children,
linkClassName,
...props
}: TableRowLinkProps) => {
const classes = useStyles();
if (!href || isExternalURL(href)) {
return <TableRow {...props}>{children}</TableRow>;
}
return (
<TableRow {...props}>
<Link className={clsx(classes.link, linkClassName)} to={href}>
{children}
</Link>
</TableRow>
);
};
TableRowLink.displayName = "TableRowLink";
export default TableRowLink;