diff --git a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx index ea413086..67da05b7 100644 --- a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx +++ b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx @@ -94,11 +94,24 @@ const Inputbar: FC = ({ assistant: _assistant, setActiveTopic }) => { const showKnowledgeIcon = useSidebarIconShow('knowledge') - const estimateTextTokens = useCallback(debounce(estimateTxtTokens, 1000), []) - const inputTokenCount = useMemo( - () => (showInputEstimatedTokens ? estimateTextTokens(text) || 0 : 0), - [estimateTextTokens, showInputEstimatedTokens, text] + const [tokenCount, setTokenCount] = useState(0) + + const debouncedEstimate = useCallback( + debounce((newText) => { + if (showInputEstimatedTokens) { + const count = estimateTxtTokens(newText) || 0 + setTokenCount(count) + } + }, 500), + [showInputEstimatedTokens] ) + + useEffect(() => { + debouncedEstimate(text) + }, [text, debouncedEstimate]) + + const inputTokenCount = showInputEstimatedTokens ? tokenCount : 0 + const newTopicShortcut = useShortcutDisplay('new_topic') const newContextShortcut = useShortcutDisplay('toggle_new_context') const cleanTopicShortcut = useShortcutDisplay('clear_topic')