import React, {FC, useEffect, useRef, useState} from "react"; import {useAtomValue} from "jotai/index"; import {FloatingHeaderHeightAtom, sidebarEdgeOffsetAtom} from "./atoms"; import AutosizeInput from 'react-input-autosize'; import {useCopyToClipboard} from 'react-use'; import toast from 'react-hot-toast'; import {motion} from 'motion/react'; import {__, CouponsPlus} from "../globals"; import classNames from "classnames"; import {nanoid} from "nanoid"; import {useIsMobile} from "./hooks"; export type TreeHeaderProps = { } export const TreeHeader: FC = ({}) => { const edgeOffset = useAtomValue(sidebarEdgeOffsetAtom) const [inputValue, setInputValue] = useState((CouponsPlus.state as any).code || '') const [, copyToClipboard] = useCopyToClipboard() const [isFocused, setIsFocused] = useState(false) const height = useAtomValue(FloatingHeaderHeightAtom) const inputRef = useRef(null); const isMobile = useIsMobile() useEffect(() => { const wpInput = document.querySelector('input[name="post_title"]') if (wpInput) { wpInput.value = inputValue } }, [inputValue]) const handleGenerate = () => { setInputValue(nanoid(8)) } const handleCopy = () => { if (inputValue) { copyToClipboard(inputValue) toast.custom(() => ( {__('Copied to clipboard!')} ), { duration: 3000, }) } } // Hide on mobile - the mobile view is handled in TreeSidebarRight if (isMobile) { return null } return
inputRef.current?.focus()}> setInputValue(e.target.value)} inputStyle={{ backgroundColor: 'transparent', border: 'none', outline: 'none', fontSize: '14px', color: 'rgba(55, 65, 81, 0.8)', }} placeholderStyle={{ color: 'rgba(55, 65, 81, 0.4)', }} onFocus={() => setIsFocused(true)} onBlur={() => setIsFocused(false)} />
; }