Files
Mickael Kerjean 79ca486841 fix (textarea): firefox was acting weird so we simplified the code
I think the idea behind that feature was to trigger
the submit flow when user was pressing enter on a form instead of
going to the new line which was usefull when user was using the
textarea as a way to copy and paste their private key. Now there's
a better approach for this, this was likely dead code
2022-01-21 00:53:16 +11:00

36 lines
969 B
JavaScript

import React, { useRef, useState, useLayoutEffect } from "react";
import "./textarea.scss";
export function Textarea({ ...props }) {
const $el = useRef();
const [className, setClassName] = useState(
"component_textarea" +
(/Firefox/.test(navigator.userAgent) ? " firefox" : "") +
(props.value && props.value.length > 0 ? " hasText" : ""),
);
useLayoutEffect(() => {
if ($el.current && $el.current.value.length > 0 &&
className.indexOf("hasText") === -1) {
setClassName(`${className} hasText`);
}
}, []);
const inputProps = (p) => {
return Object.keys(p).reduce((acc, key) => {
if (key === "disabledEnter") return acc;
acc[key] = p[key];
return acc;
}, {});
};
return (
<textarea
{...inputProps(props)}
className={className}
ref={$el}>
</textarea>
);
}