|
'use client'; |
|
import { TitleBar } from "@/components/title-bar/TitleBar"; |
|
import { useTextStore } from "./TextStore"; |
|
import { useDebouncedCallback } from "use-debounce"; |
|
import wordsCount from "words-count"; |
|
|
|
export function TextWidget() { |
|
const { text, updateText } = useTextStore(); |
|
|
|
const debounced = useDebouncedCallback( |
|
(content: string) => { |
|
updateText(content); |
|
}, |
|
1000 |
|
) |
|
|
|
return ( |
|
<section className="w-full flex flex-col"> |
|
<TitleBar label="Text Content"> |
|
{wordsCount(text)} words |
|
</TitleBar> |
|
<textarea |
|
onInput={(e) => debounced(e.currentTarget.value)} |
|
defaultValue={text} |
|
className="w-full min-h-52 md:min-h-0 h-full outline-none p-12 text-lg" |
|
placeholder="Begin writing..." |
|
/> |
|
</section> |
|
|
|
) |
|
} |
|
|