webamp/js/components/Character.tsx
2020-04-06 19:50:20 -07:00

25 lines
613 B
TypeScript

import React from "react";
import deburr from "lodash/deburr";
interface Props extends React.HTMLAttributes<HTMLSpanElement> {
children: string | number;
className?: string;
}
export const characterClassName = (char: string | number) =>
`character-${deburr(char.toString()).toLowerCase().charCodeAt(0)}`;
const Character = React.memo(
({ children: char, className, ...passThrough }: Props) => {
return (
<span
{...passThrough}
className={`${className || ""} character ${characterClassName(char)}`}
>
{char}
</span>
);
}
);
export default Character;