import React, { InputHTMLAttributes, useImperativeHandle, useRef, useState, } from "react" import { generatePromotionCode } from "../../../utils/generate-promotion-code" import RefreshIcon from "../../fundamentals/icons/refresh-icon" import InputContainer from "../../fundamentals/input-container" import InputHeader from "../../fundamentals/input-header" import { InputProps } from "../input" const GeneratingInput = React.forwardRef( ( { placeholder, label, name, required, deletable, onDelete, onChange, onFocus, tooltipContent, tooltip, props, className, value: valueProp, ...fieldProps }: Omit, ref ) => { const [value, setValue] = useState< InputHTMLAttributes["value"] >(valueProp || "") const inputRef = useRef(null) useImperativeHandle(ref, () => inputRef.current) const generateCode = () => { setValue(generatePromotionCode()) } const handleChange = (e: React.ChangeEvent) => { setValue(e.target.value) if (onChange) { onChange(e) } } return ( !fieldProps.disabled && inputRef?.current?.focus()} {...props} >
{!value && ( )}
{value && ( )}
) } ) export default GeneratingInput