Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
1.5 kB · 58 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859import { useEffect, useState } from 'react'import type { PastedContent } from 'src/utils/config.js'import { maybeTruncateInput } from './inputPaste.js'
type Props = { input: string pastedContents: Record<number, PastedContent> onInputChange: (input: string) => void setCursorOffset: (offset: number) => void setPastedContents: (contents: Record<number, PastedContent>) => void}
export function useMaybeTruncateInput({ input, pastedContents, onInputChange, setCursorOffset, setPastedContents,}: Props) { // Track if we've initialized this specific input value const [hasAppliedTruncationToInput, setHasAppliedTruncationToInput] = useState(false)
// Process input for truncation and pasted images from MessageSelector. useEffect(() => { if (hasAppliedTruncationToInput) { return }
if (input.length <= 10_000) { return }
const { newInput, newPastedContents } = maybeTruncateInput( input, pastedContents, )
onInputChange(newInput) setCursorOffset(newInput.length) setPastedContents(newPastedContents) setHasAppliedTruncationToInput(true) }, [ input, hasAppliedTruncationToInput, pastedContents, onInputChange, setPastedContents, setCursorOffset, ])
// Reset hasInitializedInput when input is cleared (e.g., after submission) useEffect(() => { if (input === '') { setHasAppliedTruncationToInput(false) } }, [input])}