"use client"; import { useRef, useState } from "react"; import { Button } from "@/components/ui/button"; import { Textarea } from "../ui/textarea"; import useAutosizeTextArea from "@/lib/hooks/useAutoSizeTextArea"; import { HiOutlinePhoto } from "react-icons/hi2"; import { cn } from "@/lib/utils"; interface ToolbarProps { initialData?: { title?: string; summary?: string; image?: string; }; preview?: boolean; onSubmit: ({ title, summary, image, }: { title: string; summary: string; image?: string; }) => void; } export const Toolbar = ({ initialData, preview, onSubmit }: ToolbarProps) => { const [loading, setLoading] = useState(false); const [title, setTitle] = useState(initialData?.title ?? ""); const [summary, setSummary] = useState(initialData?.summary ?? ""); const [image, setImage] = useState(initialData?.image); const titleRef = useRef(null); const summaryRef = useRef(null); useAutosizeTextArea(titleRef.current, title); useAutosizeTextArea(summaryRef.current, summary); const [isEditingTitle, setIsEditingTitle] = useState(false); const [isEditingSummary, setIsEditingSummary] = useState(false); const [value, setValue] = useState(initialData?.title); const update = () => { console.log("Update"); }; const enableInput = (type: "title" | "summary") => { if (preview) return; if (type === "title") { setIsEditingTitle(true); setTimeout(() => { titleRef.current?.focus(); }, 0); } else { summaryRef.current?.focus(); setIsEditingSummary(true); setTimeout(() => { summaryRef.current?.focus(); }, 0); } }; const disableInput = () => { setIsEditingTitle(false); setIsEditingSummary(false); }; const handleSubmit = async () => { try { setLoading(true); await onSubmit({ title, summary, image }); setLoading(false); } catch (err) { console.log("Error", err); } }; const onKeyDown = (event: React.KeyboardEvent) => { if (event.key === "Enter") { event.preventDefault(); disableInput(); } }; return (
{!initialData?.image && !preview && ( )}
{isEditingTitle && !preview ? (