46 lines
977 B
TypeScript
46 lines
977 B
TypeScript
import classNames from 'classnames';
|
|
import { NavLink } from 'react-router-dom';
|
|
|
|
import type { MastodonLocationDescriptor } from 'mastodon/components/router';
|
|
|
|
import classes from './styles.module.scss';
|
|
|
|
export const NumberFields: React.FC<React.ComponentPropsWithoutRef<'ul'>> = ({
|
|
children,
|
|
className,
|
|
}) => {
|
|
return <ul className={classNames(classes.list, className)}>{children}</ul>;
|
|
};
|
|
|
|
interface ItemProps extends React.ComponentPropsWithoutRef<'li'> {
|
|
label: React.ReactNode;
|
|
hint?: string;
|
|
link?: MastodonLocationDescriptor;
|
|
}
|
|
|
|
export const NumberFieldsItem: React.FC<ItemProps> = ({
|
|
label,
|
|
hint,
|
|
link,
|
|
children,
|
|
className,
|
|
...restProps
|
|
}) => {
|
|
return (
|
|
<li
|
|
{...restProps}
|
|
className={classNames(classes.item, className)}
|
|
title={hint}
|
|
>
|
|
{label}
|
|
{link ? (
|
|
<NavLink exact to={link}>
|
|
{children}
|
|
</NavLink>
|
|
) : (
|
|
<strong>{children}</strong>
|
|
)}
|
|
</li>
|
|
);
|
|
};
|