Spaces:
Runtime error
Runtime error
import clsx from "clsx"; | |
import React from "react"; | |
import { FaArrowRight } from "react-icons/fa"; | |
interface Props extends React.InputHTMLAttributes<HTMLInputElement> { | |
name: string; | |
attributes?: { [key: string]: string | number | string[] }; | |
icon?: React.ReactNode; | |
disabled?: boolean; | |
handleFocusChange?: (focused: boolean) => void; | |
onSubmit: () => void; | |
} | |
// Test stylized input component | |
const QuestionInput = (props: Props) => { | |
return ( | |
<div className="relative flex flex-col"> | |
<div className="flex flex-grow flex-row items-center gap-1"> | |
<input | |
type={props.type} | |
name={props.name} | |
id={props.name} | |
className="placeholder:text-color-tertiary w-full rounded-full border-2 border-slate-6 bg-slate-1 p-4 text-slate-12 caret-purple-400 ring-0 transition-colors duration-300 selection:bg-purple-300 hover:border-purple-200 focus:border-purple-400 focus:outline-0 focus:ring-0 sm:leading-6" | |
placeholder={props.placeholder} | |
value={props.value} | |
onChange={props.onChange} | |
disabled={props.disabled} | |
onFocus={() => props.handleFocusChange && props.handleFocusChange(true)} | |
onBlur={() => props.handleFocusChange && props.handleFocusChange(false)} | |
{...{ "aria-describedby": `${props.name}-description` }} | |
{...props.attributes} | |
/> | |
<div | |
className={clsx( | |
"absolute right-2 rounded-full p-3 text-white transition-colors duration-300", | |
props.value === "" | |
? "cursor-not-allowed bg-slate-8" | |
: "cursor-pointer bg-purple-300 hover:bg-purple-400" | |
)} | |
onClick={props.onSubmit} | |
> | |
<FaArrowRight size={20} /> | |
</div> | |
</div> | |
</div> | |
); | |
}; | |
export default QuestionInput; | |